zion - save_flags
Nom
save_flags, restore_flags - sauve/restaure l'état du processeur et les masques d'interruptions
Résumé
#include <asm/system.h> unsigned long drapeaux ; void save_flags( drapeaux ) void restore_flags( drapeaux )
Description
Les macros save_flags et restore_flags coopèrent avec la fonction cli pour fournir une protection contre les interruptions pour les portions de code critique. La fonction save_flags sauve le contexte du processeur (son état courant), en particulier le niveau de priorité des interruptions, dans interrupt priority level, dans les drapeaux (qui doivent être des expressions affectables (l-value)). Ces drapeaux DOIVENT être ensuite passés à la fonction restore_flags afin de restaurer l'état du processeur.
La macro save_flags n'affecte pas l'état du processeur, mais les pilotes peuvent utiliser les fonctions cli (9) et sti pour désactiver et rétablir les interruptions après avoir sauvé les drapeaux courants. Dès la fin de la portion de code critique, la fonction restore_flags replace le processor dans son état initial (quand l'appel correspondant de save_flags fut executé).
Seules les valeurs renvoyées par save_flags peuvent être passées à restore_flags. Toute autre valeur peut provoquer des résultats imprévisibles et est certainement non portable.
Valeur de retour
La macro restore_flags sauve l'état du processeur dans le paramètre drapeaux qui doit être une expression affectable non constante (non-const l-value).
Disponibilité
Linux 1.0+
Voir aussi
cli (9)
Auteur
Stephen Williams (steve@icarus.com)
Bugs
Comment ces routines réagissent-elles sur une machine SMP (multi-processeurs) ?
Traduction
Thierry Vignaud < tvignaud@mandrakesoft.com >, 1999
Poster un commentaire