1cffd7144Slogin #pragma once 2*66f67c6aSlogin #include <asm/asm.h> 3cffd7144Slogin // 保存当前rflags的值到变量x内并关闭中断 4cffd7144Slogin #define local_irq_save(x) __asm__ __volatile__("pushfq ; popq %0 ; cli" \ 5cffd7144Slogin : "=g"(x)::"memory") 6cffd7144Slogin // 恢复先前保存的rflags的值x 7cffd7144Slogin #define local_irq_restore(x) __asm__ __volatile__("pushq %0 ; popfq" ::"g"(x) \ 8cffd7144Slogin : "memory") 9cffd7144Slogin #define local_irq_disable() cli(); 10cffd7144Slogin #define local_irq_enable() sti(); 11