Ras_register et ras_unregister Services de noyau exportés

Objectif

Enregistre et désenregistre un composant RAS.

Syntaxe

#include <sys/ras.h>
kerrno_t ras_register (
ras_block_t * rasbp,
char * name,
ras_block_t parent,
ras_type_t typesubtype,
char * desc,
long flags,
ras_callback_t ras_callback,
void * private_data);

kerrno_t ras_unregister (ras_block_t ras_blk);

Descriptif

Le service de noyau Ras_register et le service de noyau Ras_unregister enregistrent et désenregistrent les gestionnaires RAS qui sont appelés par le noyau lorsque le système doit communiquer diverses commandes RAS à chaque composant.

Le service de noyau Ras_register enregistre un composant portant le nom indiqué sous Parent . Si le parent est NULL, le service du noyau Ras_register enregistre le nom en tant que composant de base, mais le paramètre Typesubtype doit être fourni. Le paramètre Nom indique le nom du sous-composant ou du composant de base (il ne s'agit pas d'un chemin de composant complet). La zone Indicateurs permet de spécifier les aspects de RAS compris par le composant. Le Ras_callback est le mécanisme par lequel le sous-système RAS communique différentes commandes au composant, en fonction des aspects de RAS compris par le composant. Le paramètre Desc fournit une brève description du composant en tant qu'aide de service.

Le service de noyau Ras_register alloue un membre ras_block_t et renvoie le bloc de contrôle du composant via l'argument Rasbp . Ce bloc de contrôle peut être utilisé dans les appels Commande ras_control et les appels Ras_register supplémentaires (pour allouer des enfants, par exemple).

Si l'enregistrement échoue en raison du manque de mémoire du système, la valeur de l'argument Rasbp est définie sur RAS_BLOCK_NULL. Toutes les fonctions RAS de ce composant sont désactivées. Les services de noyau RAS acceptent les blocs de contrôle RAS_BLOCK_NULL mais ne prennent aucune action. Si le bloc de contrôle est défini sur RAS_BLOCK_NULLRAS, les fonctions liées au domaine (telles que les macros CT_HOOKx et CT_GEN ) s'exécutent correctement mais ne prennent aucune action. Cette action permet d'ignorer les échecs de type ENOMEM du service de noyau Ras_register . La valeur de l'argument Rasbp pour tous les autres types d'erreur n'est pas définie.

Le service de noyau Ras_unregister désenregistre un composant précédemment enregistré avec le service de noyau Ras_register . Le paramètre Ras_blk ne doit pas avoir d'autres enfants.

Paramètres

Article Descriptif
Rasbp Membre ras_block_t nouvellement alloué.
nom Nom du composant et non son chemin d'accès complet. Les noms de noeud individuels sont limités au nombre de caractères spécifié par la valeur du paramètre NOM_RAS_MAX (y compris le caractère de fin NULL). Le chemin complet du composant (les noms concaténés d'un composant enfant et de tous ses ancêtres) est limité au nombre de caractères spécifié par la valeur du paramètre CHEMIN_ACCÈS_MAX (y compris le caractère NULL de fin). Le service de noyau Ras_register reconstruit le chemin du composant complet et rejette les enregistrements pour les composants dont le chemin d'accès complet dépasse la valeur du paramètre CHEMIN_ACCÈS_MAX . Les noms de noeud sont limités au jeu de caractères “A-Z”,”a-z”,”0-9” et " _.
parent Pointeur facultatif vers le composant parent ou NULL, le cas échéant.
Typesubtype Si le parent est NULL, le paramètre obligatoire est utilisé pour catégoriser le composant. Les 16 premiers bits de la partie inférieure de cette zone sont de type, et les 16 bits inférieurs sont le sous-type. Typesubtype est un membre ras_type_t, qui est un enum. Pour une description des types disponibles, voir le fichier sys/ras_base.h . Si le parent n'est pas NULL, ce paramètre doit être la valeur du paramètre TYPE_RAS_ENFANT .
desc Chaîne de description courte pour le composant. La chaîne Desc est limitée au nombre de caractères spécifié par la valeur du paramètre RAS_DESC_MAX (y compris la valeur null de fin). La chaîne Desc ne comporte aucune restriction de jeu de caractères. Tous les éléments statiques de la chaîne doivent être aux U.S. Anglais, mais les éléments dynamiques n'ont aucune restriction.
Flags Indique le type de systèmes RAS dont ce composant est conscient. Les choix valides sont les suivants:
  • RASF_TRACE_CONSCIENT: le composant est conscient de la trace de composant.
  • RASF_ERROR_CONSCIENT: le composant est conscient de l'erreur.
Ces indicateurs sont définis dans le fichier sys/ras.h .
Ras_callback Pointeur de fonction fourni par l'inscrit et appelé par la structure chaque fois qu'un événement externe modifie une propriété du composant. Voir la spécification d'interface Ras_callback .
Données_privées_données Pointeur facultatif vers une zone de mémoire privée de composant transmise à la fonction Ras_callback lors du rappel.
Ras_blk Bloc de contrôle à supprimer.

Environnement d'exécution

Le service de noyau Ras_register et le service de noyau Ras_unregister doivent être appelés à partir de l'environnement de processus.

Valeurs renvoyées

Les valeurs de retour du service de noyau Ras_register sont les suivantes.

Article Descriptif
0 % .
différent de zéro Inréussi.

Les valeurs de retour du service de noyau Ras_unregister sont les suivantes.

Article Descriptif
0 % .
différent de zéro Inréussi.