X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Ftimer.c;h=aa671dc4d9423e8f50c0008ffc237212ec58a9e5;hb=57408cb30e19f535e59dc2f47418e032dbe59076;hp=0e756dbb6cb01c435062380cbd60536d0e165520;hpb=791e167e053bdd9250d34a9a5ccae6ccde4d6679;p=bertos.git diff --git a/bertos/drv/timer.c b/bertos/drv/timer.c index 0e756dbb..aa671dc4 100644 --- a/bertos/drv/timer.c +++ b/bertos/drv/timer.c @@ -27,26 +27,28 @@ * the GNU General Public License. * * Copyright 2003, 2004, 2005, 2006 Develer S.r.l. (http://www.develer.com/) - * Copyright 2000 Bernardo Innocenti + * Copyright 2000 Bernie Innocenti * * --> * * \brief Hardware independent timer driver (implementation) * * \version $Id$ - * \author Bernardo Innocenti + * \author Bernie Innocenti */ #include "timer.h" -#include -#include -#include - +#include "cfg/cfg_timer.h" +#include "cfg/cfg_wdt.h" +#include "cfg/cfg_kern.h" #include #include #include -#include + +#include +#include +#include /* * Include platform-specific binding code if we're hosted. @@ -73,7 +75,6 @@ #endif #if CONFIG_KERNEL - #include #if CONFIG_KERN_PREEMPTIVE #include #endif @@ -162,7 +163,9 @@ void timer_add(Timer *timer) /** - * Remove a timer from the timer queue before it has expired. + * Remove a timer from the timers queue before it has expired. + * \note Attempting to remove a timer already expired cause + * undefined behaviour. */ Timer *timer_abort(Timer *timer) { @@ -180,11 +183,12 @@ Timer *timer_abort(Timer *timer) */ void timer_delayTicks(ticks_t delay) { -#if defined(IRQ_ENABLED) +#if defined(IRQ_ENABLED) && (!(ARCH & ARCH_EMUL)) /* We shouldn't sleep with interrupts disabled */ ASSERT(IRQ_ENABLED()); #endif + #if defined(CONFIG_KERN_SIGNALS) && CONFIG_KERN_SIGNALS Timer t;