* the GNU General Public License.
*
* Copyright 2003, 2004, 2005, 2006 Develer S.r.l. (http://www.develer.com/)
- * Copyright 2000 Bernie Innocenti <bernie@codewiz.org>
- *
+ * Copyright 2000, 2008 Bernie Innocenti <bernie@codewiz.org>
* -->
*
* \brief Hardware independent timer driver (implementation)
/**
* Remove a timer from the timers queue before it has expired.
+ *
* \note Attempting to remove a timer already expired cause
* undefined behaviour.
*/
*/
void timer_delayTicks(ticks_t delay)
{
-#if defined(IRQ_ENABLED) && (!(ARCH & ARCH_EMUL))
/* We shouldn't sleep with interrupts disabled */
- ASSERT(IRQ_ENABLED());
-#endif
-
+ ASSERT_IRQ_ENABLED();
#if defined(CONFIG_KERN_SIGNALS) && CONFIG_KERN_SIGNALS
Timer t;
MOD_INIT(timer);
}
+
+
+#if (ARCH & ARCH_EMUL)
+/**
+ * Stop timer (only used by emulator)
+ */
+void timer_cleanup(void)
+{
+ MOD_CLEANUP(timer);
+
+ timer_hw_cleanup();
+
+ // Hmmm... apparently, the demo app does not cleanup properly
+ //ASSERT(LIST_EMPTY(&timers_queue));
+}
+#endif /* ARCH_EMUL */