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