diff options
Diffstat (limited to 'Kernel/Arch')
-rw-r--r-- | Kernel/Arch/i386/CPU.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Kernel/Arch/i386/CPU.h b/Kernel/Arch/i386/CPU.h index 5fa9057bb1..27d7d132f4 100644 --- a/Kernel/Arch/i386/CPU.h +++ b/Kernel/Arch/i386/CPU.h @@ -289,6 +289,21 @@ private: u32 m_flags; }; +inline bool cli_and_save_interrupt_flag() +{ + u32 flags = cpu_flags(); + cli(); + return flags & 0x200; +} + +inline void restore_interrupt_flag(bool flag) +{ + if (flag) + sti(); + else + cli(); +} + class InterruptDisabler { public: InterruptDisabler() |