Service de noyau eeh_slot_error
Objectif
Ce service consigne une erreur temporaire ou permanente et, le cas échéant, l'emplacement est définitivement indisponible.
Syntaxe
#include <sys/eeh.h>
long eeh_slot_error(handle, flag, dd_buf, dd_buf_length)
eeh_handle_t handle;
int flag;
char *dd_buf;
long dd_buf_length;
Paramètres
| Article | Descriptif |
|---|---|
| gestionnaire | Descripeur EEH obtenu à partir de Eeh_init ou Eeh_init_multifunc |
| option | EEH_RESET_TEMP ou EEH_RESET_PERM |
| Dd_buf | Adresse du tampon du journal des erreurs du pilote de périphérique |
| Dd_buf_length | Longueur de la mémoire tampon du journal des erreurs du pilote d'unité en octets |
Descriptif
Ce service effectue un certain nombre de tâches:
- Il collecte des données matérielles pour aider à comprendre la nature et la source d'un événement EEH
- Il combine le journal des données de débogage fourni par le pilote de périphérique avec le journal des données matérielles et crée une entrée dans le journal des erreurs.
- En option, elle marque l'emplacement en permanence indisponible de sorte que les appels Eeh_read_slot_state () suivants renvoient EEH_UNAVAILABLE avec une valeur Retry_delay de 0
Le comportement de ce service de noyau est contrôlé par deux valeurs Indicateur :
| Article | Descriptif |
|---|---|
| EEH_RESET_TEMP | Cette option n'effectue que les deux premières tâches précédentes. |
| EEH_RESET_PERM | Cet indicateur effectue les trois tâches. |
En fonction de l'état matériel de l'emplacement, il se peut que ce service ne puisse pas collecter les données matérielles. Ainsi, le service réussit mais ne consigne pas de données. Si EEH_RESET_PERM a été fournie, elle marque toujours l'indisponibilité permanente de l'emplacement.
Les paramètres Dd_buf et Dd_buf_length permettent de combiner le journal des erreurs du pilote de périphérique avec le journal matériel. L'argument Dd_buf est l'adresse d'une mémoire tampon du journal des erreurs qui contient les données du pilote de périphérique. L'argument Dd_buf_length est la longueur de cette mémoire tampon. Si la longueur dépasse TAPE_FICHIER_JOURNAL_MAX_MAX octets, les données de journal du pilote sont tronquées. Si Dd_buf est NULL, le journal des erreurs contient uniquement des données matérielles, le cas échéant.
Pilote à fonction unique: Le service de noyau fonctionne comme dans la description précédente. Si elle échoue en raison du matériel ou du microprogramme, EEH_FAIL est renvoyée et une erreur est consignée.
Pilote multifonction: Pour les pilotes multifonctions, ce service fonctionne comme dans la description précédente, sauf que si EEH_RESET_PERM a été fournie, le message EEH_DD_DEAD est diffusé.
La macro EEH_SLOT_ERROR(Descripteur, Indicateur, Dd_buf, Dd_buf_length) est fournie aux pilotes de périphérique pour appeler ce service.
Environnement d'exécution
Ce service de noyau peut être appelé à partir du processus ou de l'environnement d'interruption.
Valeurs renvoyées
| Article | Descriptif |
|---|---|
| EEH_SUCC | Erreur consignée avec succès |
| EEH_FAIL | Echec de la consignation de l'erreur et éventuellement l'indisponibilité permanente de l'emplacement |