X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Firq.h;h=5fddfdc9cee57f08da34b6cbd70db60579a8e3fa;hb=547a273e4edd84b2a2e2d69b5698a7b88374578c;hp=290b73d722d920380593d94dd4233da287abe39f;hpb=3e2d80120922e13d77e2497290f96a3f0ed08488;p=bertos.git diff --git a/bertos/cpu/irq.h b/bertos/cpu/irq.h index 290b73d7..5fddfdc9 100644 --- a/bertos/cpu/irq.h +++ b/bertos/cpu/irq.h @@ -232,6 +232,27 @@ #define IRQ_EXIT() /* NOP */ #endif +#ifdef IRQ_RUNNING + /// Ensure callee is running within an interrupt + #define ASSERT_IRQ_CONTEXT() ASSERT(IRQ_RUNNING()) + + /// Ensure callee is not running within an interrupt + #define ASSERT_USER_CONTEXT() ASSERT(!IRQ_RUNNING()) +#else + #define ASSERT_USER_CONTEXT() do {} while(0) + #define ASSERT_IRQ_CONTEXT() do {} while(0) +#endif + +#ifdef IRQ_ENABLED + /// Ensure interrupts are enabled + #define ASSERT_IRQ_ENABLED() ASSERT(IRQ_ENABLED()) + + /// Ensure interrupts are not enabled + #define ASSERT_IRQ_DISABLED() ASSERT(IRQ_ENABLED()) +#else + #define ASSERT_IRQ_ENABLED() do {} while(0) + #define ASSERT_IRQ_DISABLED() do {} while(0) +#endif /** * Execute \a CODE atomically with respect to interrupts.