X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Ftimer.c;h=c1f161454f7deea37dc1d429f487c7b7408eabc7;hb=b789df33d4351094e16168425c7f2c20f26965fc;hp=00cd7cfd2a265e98432bb9d8e5019c72d1bf1a4b;hpb=807d2fde65d730b10f548cd3d77d69238e226133;p=bertos.git diff --git a/drv/timer.c b/drv/timer.c index 00cd7cfd..c1f16145 100755 --- a/drv/timer.c +++ b/drv/timer.c @@ -14,6 +14,12 @@ /*#* *#* $Log$ + *#* Revision 1.24 2005/04/11 19:10:28 bernie + *#* Include top-level headers from cfg/ subdir. + *#* + *#* Revision 1.23 2004/12/13 12:07:06 bernie + *#* DISABLE_IRQSAVE/ENABLE_IRQRESTORE: Convert to IRQ_SAVE_DISABLE/IRQ_RESTORE. + *#* *#* Revision 1.22 2004/12/08 09:12:09 bernie *#* Rename time_t to mtime_t. *#* @@ -80,11 +86,11 @@ *#*/ #include "timer.h" -#include +#include #include #include CPU_HEADER(timer) -#include -#include +#include +#include /* * Sanity check for config parameters required by this module. @@ -146,7 +152,7 @@ void timer_add(Timer *timer) Timer *node; cpuflags_t flags; - DISABLE_IRQSAVE(flags); + IRQ_SAVE_DISABLE(flags); /* Calculate expiration time for this timer */ timer->tick = _clock + timer->delay; @@ -172,19 +178,16 @@ void timer_add(Timer *timer) /* Enqueue timer request into the list */ INSERTBEFORE(&timer->link, &node->link); - ENABLE_IRQRESTORE(flags); + IRQ_RESTORE(flags); } /*! - * Remove a timer from the timer queue before it has expired + * Remove a timer from the timer queue before it has expired. */ Timer *timer_abort(Timer *timer) { - cpuflags_t flags; - DISABLE_IRQSAVE(flags); - REMOVE(&timer->link); - ENABLE_IRQRESTORE(flags); + ATOMIC(REMOVE(&timer->link)); return timer; } @@ -193,7 +196,7 @@ Timer *timer_abort(Timer *timer) /*! - * Wait for the specified amount of time (expressed in ms) + * Wait for the specified amount of time (expressed in ms). */ void timer_delay(mtime_t time) { @@ -229,7 +232,7 @@ void timer_delay(mtime_t time) #ifndef CONFIG_TIMER_DISABLE_UDELAY /*! - * Wait for the specified amount of time (expressed in microseconds) + * Wait for the specified amount of time (expressed in microseconds). * * \bug In AVR arch the maximum amount of time that can be used as * delay could be very limited, depending on the hardware timer