Service de noyau w_clear

Objectif

Supprime un temporisateur de surveillance de la liste des temporisateurs de surveillance connus du noyau.

Syntaxe

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/watchdog.h>
int w_clear ( w)
struct watchdog *w;

Paramètre

Article Descriptif
w Indique la structure du temporisateur de surveillance.

Descriptif

Les services de temporisation du programme de surveillance, y compris le service de noyau W_clear , sont généralement utilisés pour vérifier qu'une opération d'E-S se termine dans un délai raisonnable.

Lorsque le service de noyau W_clear supprime le temporisateur de surveillance, le nombre de surveillance W-> nombre n'est plus décrémenté. En outre, la fonction de temporisateur du programme de surveillance W-> func n'est plus appelée.

Dans un environnement uniprocesseur, l'appel réussit toujours. Cela n'est pas vrai dans un environnement multiprocesseur, où l'appel échouera si le temporisateur de surveillance est géré par un autre processeur. Par conséquent, la fonction a désormais une valeur de retour, qui est définie sur 0 en cas de succès, ou-1 sinon. Les pilotes de périphérique à coque n'ont pas besoin de vérifier la valeur de retour car ils s'exécutent dans un environnement uniprocesseur logique. Les pilotes de périphérique multiprocesseur et multiprocesseur doivent vérifier la valeur de retour dans une boucle. En outre, si un pilote utilise le verrouillage, il doit libérer et récupérer son verrou dans cette boucle, comme indiqué ci-dessous:

while (w_clear(&watchdog))
  release_then_reacquire_dd_lock;  
                    /* null statement if locks not used */
Remarque: Le service de noyau W_clear efface tous les attributs précédemment définis à l'aide du service de noyau W_setattr () .

Environnement d'exécution

Le service de noyau W_clear peut être appelé à partir de l'environnement Processus uniquement.

Valeurs renvoyées

Article Descriptif
0 % Indique que le temporisateur de surveillance a été supprimé.
-1 Indique que le temporisateur de surveillance n'a pas pu être supprimé.