From ef3698135e78d64311acba1295dae2419ea91bd7 Mon Sep 17 00:00:00 2001 From: Attila BODY Date: Fri, 15 Nov 2019 20:44:54 +0100 Subject: [PATCH] IrqLock (c++) --- inc/irqlock.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 inc/irqlock.h diff --git a/inc/irqlock.h b/inc/irqlock.h new file mode 100644 index 0000000..a2cda22 --- /dev/null +++ b/inc/irqlock.h @@ -0,0 +1,27 @@ +#ifndef _IRQLOCK_H_INCLUDED +#define _IRQLOCK_H_INCLUDED + +#include +#include + +namespace f4ll { + +class IrqLock { +public: + inline IrqLock() : m_primask(__get_PRIMASK()) { + __disable_irq(); + } + inline void Release() { + __set_PRIMASK(m_primask); + } + + inline ~IrqLock() { + __set_PRIMASK(m_primask); + } +private: + uint32_t m_primask; +}; + +} + +#endif // _IRQLOCK_H_INCLUDED