monitor: Space pointers by one space to make the actuaqlly readable
[bertos.git] / bertos / cpu / irq.h
index 290b73d722d920380593d94dd4233da287abe39f..3a84dcb33b225c8ea5fc80d3b417d446647bbebb 100644 (file)
        #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 IRQ_ASSERT_ENABLED()  ASSERT(IRQ_ENABLED())
+
+       /// Ensure interrupts are not enabled
+       #define IRQ_ASSERT_DISABLED() ASSERT(!IRQ_ENABLED())
+#else
+       #define IRQ_ASSERT_ENABLED() do {} while(0)
+       #define IRQ_ASSERT_DISABLED() do {} while(0)
+#endif
+
+// OBSOLETE names
+#define ASSERT_IRQ_ENABLED()  IRQ_ASSERT_ENABLED()
+#define ASSERT_IRQ_DISABLED() IRQ_ASSERT_DISABLED()
 
 /**
  * Execute \a CODE atomically with respect to interrupts.