Linux |
CentOS 5.3 |
|
save_flags(9) |
save_flags, restore_flags − sauve/restaure l’état du processeur et les masques d’interruptions |
#include <asm/system.h> unsigned long drapeaux; |
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. |
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). |
Linux 1.0+ |
cli(9) |
Stephen Williams (steve@icarus.com) |
Comment ces routines réagissent-elles sur une machine SMP (multi-processeurs) ? |
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999 |
save_flags(9) |