10static inline void raw_enable_interrupts() {
14static inline void raw_disable_interrupts() {
18static inline auto interrupts_disabled() ->
bool {
20 asm volatile(
"pushfq\n"
28static inline auto raw_disable_interrupts_and_save_previous_state() ->
bool {
30 asm volatile(
"pushfq\n"
38 raw_disable_interrupts();
44 InterruptDisabler() { m_had_interrupts_disabled = raw_disable_interrupts_and_save_previous_state(); }
47 if (!m_had_interrupts_disabled) {
48 raw_enable_interrupts();
53 bool m_had_interrupts_disabled {
false };
InterruptDisabler()
Definition interrupt_disabler.h:44
~InterruptDisabler()
Definition interrupt_disabler.h:46
__UINT64_TYPE__ u64
Definition integers.h:12
Definition cxx_init.cpp:12
constexpr di::u64 interrupt_enable_flag
Definition interrupt_disabler.h:7
Definition cxx_init.cpp:12