Ядро Linux в комментариях

       

__Global_cli


Копирует регистр EFLAGS процессора в локальную переменную flags.

Флажок Interrupts Enabled в архитектуре х86— это девятый бит регистра EFLAGS, что позволяет понять определение EFLAG_IF_SHIFT в строке . Эта переменная применяется для проверки того, были ли прерывания уже отменены, и в этом случае больше ничего не нужно делать для их отмены.

Запрещает прерывания на этом процессоре.

Если этот процессор еще не обрабатывает запрос на прерывание, функция __global_cli вызывает функцию get_irqlock (строка ) для приобретения глобальной блокировки прерываний. Если процессор уже обрабатывает какой-то запрос на прерывание, то он уже владеет глобальной блокировкой прерываний, как будет показано ниже.

Теперь прерывания на этом процессоре запрещены и этот процессор владеет глобальной блокировкой прерываний, поэтому работа выполнена.



Содержание раздела