diff options
Diffstat (limited to 'arch/x86_64/kapi/interrupts.cpp')
| -rw-r--r-- | arch/x86_64/kapi/interrupts.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/arch/x86_64/kapi/interrupts.cpp b/arch/x86_64/kapi/interrupts.cpp index 85acc0fa..37745122 100644 --- a/arch/x86_64/kapi/interrupts.cpp +++ b/arch/x86_64/kapi/interrupts.cpp @@ -1,16 +1,26 @@ #include <kapi/interrupts.hpp> +#include <arch/cpu/flags.hpp> + namespace kapi::interrupts { - auto enable() -> void + auto enabled() -> bool { - asm volatile("sti"); + return arch::cpu::check_flags<arch::cpu::flags::interrupt>(); } - auto disable() -> void + auto enabled(bool value) -> void { - asm volatile("cli"); + // NOLINTNEXTLINE(bugprone-branch-clone) + if (value) + { + asm volatile("sti"); + } + else + { + asm volatile("cli"); + } } -} // namespace kapi::interrupts
\ No newline at end of file +} // namespace kapi::interrupts |
