ASIM team
LIP6 Laboratory
Paris, France

next up previous contents
Next: demande d'attribution de MI Up: PUT mode noyau Previous: Accès au numéro de

Enregistrement en tant qu'utilisateur de la couche PUT

Pour pouvoir utiliser la couche PUT, il faut s'enregistrer. En effet, plusieurs applications utilisant cette couche peuvent fonctionner simultanément sur la machine MPC, il faut donc pouvoir les différencier, afin de leur distribuer des plages de MI disjointes et de déterminer laquelle des applications prévenir à chaque interruption.

Lors de son enregistrement, l'application fournit donc deux fonctions qui seront appelées par les routines de traitement d'interruption de PUT : l'une en cas de données venant de quitter le noeud, l'autre en cas de données venant d'entrer dans le noeud. Elles prennent en premier paramètre le numéro de la carte réseau HSL qui a généré l'interruption ; le numéro de MI correspondant leur est aussi fourni. La fonction d'interruption pour des données ayant quitté le système reçoit, en plus, l'entrée de LPE correspondante.

La fonction put_register_SAP()[*] permet de s'enregistrer :



/*
 ************************************************************
 * put_register_SAP(minor, send, received) : register a user of
 * the PUT interface for one board.
 * minor    : the board number.
 * sent     : the interrupt procedure for data sent.
 * received : the interrupt procedure for data received.
 *
 * return values : -1 on error.
 *                 the registration number for this SAP on success.
 ************************************************************
 */

int
put_register_SAP(minor, sent, received)
                 int minor;
                 void (*sent) __P((int, mi_t, lpe_entry_t));
                 void (*received) __P((int, mi_t));




Les deux paramètres sent et received sont des fonctions fournies par l'utilisateur, pour qu'il soit prévenu en cas d'interruption. La première reçoit en paramètres le numéro de la carte qui a généré l'interruption, le MI correspondant et dans le cas de sent l'entrée de LPE correspondante.

La fonction put_unregister_SAP() permet de terminer un enregistrement :



/*
 ************************************************************
 * put_unregister_SAP(minor, id) : unregister a user of the PUT
 * interface.
 * minor : the board number.
 * id    : the registration number for the SAP.
 *
 * return values : ENXIO  : not enough structures allocated at
 *                          compilation time to handle this board.
 *                 ENOENT : this board is not initialized.
 *                 EBADF  : id out of range.
 ************************************************************
 */

int
put_unregister_SAP(minor, id)
                 int minor, id;






Footnotes

...put_register_SAP()
SAP: Service Access Point


next up previous contents
Next: demande d'attribution de MI Up: PUT mode noyau Previous: Accès au numéro de

Server design A. Fenyö
mpc@mpc.lip6.fr - contact people
About this Web Site
$Date: 1998/02/14 17:06:25 $
Copyright © 1997-1998 UPMC/LIP6
All rights reserved