Il s'agit de l'appel de fonction void spin_lock_irqsave(spinlock_t *lock, unsigned long flags);
. Il est mentionné que l'état d'interruption précédent est stocké dans des drapeaux et que nous pouvons les restaurer en passant cette fonction à spin_unlock_irqrestore
. Mais je n'ai pas compris comment les drapeaux passés par les valeurs capturent l'état d'interruption précédent quand spin_lock_irqsave
est appelé.Attribut des indicateurs SpinLock read_lock_irqsave
0
A
Répondre
4
spin_lock_irqsave
est une macro, pas une fonction. Il peut donc être affecté à flags
même s'il est apparemment passé en valeur.
Voir:
http://lxr.linux.no/#linux+v2.6.35.4/include/linux/spinlock.h#L312
http://lxr.linux.no/#linux+v2.6.35.4/include/linux/spinlock.h#L187