#pragma once #ifndef __x86_64__ #include "aum1_cm1.h" struct InterruptLock { uint32_t old_primask; InterruptLock() : old_primask(__get_PRIMASK()) { __disable_irq(); } ~InterruptLock() { __set_PRIMASK(old_primask); } }; #else // __x86_64__ #include struct InterruptLock { static std::recursive_mutex m; InterruptLock() { m.lock(); } ~InterruptLock() { m.unlock(); } }; #endif // __x86_64__