X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Ftimer.h;h=a75adfd26e1ec8dc8e5077cdeb38a7981b18d339;hb=5b25ae54d86d894e5d01adeef10938df1bb10e16;hp=bb8c89dda02c34ce168e6cc7bbb937752528236e;hpb=5f6b4b226d25c237d9d0831785f19acd1d7fb316;p=bertos.git diff --git a/drv/timer.h b/drv/timer.h index bb8c89dd..a75adfd2 100755 --- a/drv/timer.h +++ b/drv/timer.h @@ -15,6 +15,15 @@ /*#* *#* $Log$ + *#* Revision 1.21 2004/12/09 08:35:21 bernie + *#* Replace IPTR with iptr_t. + *#* + *#* Revision 1.20 2004/12/08 08:56:41 bernie + *#* Rename sigset_t to sigmask_t; Reformat. + *#* + *#* Revision 1.19 2004/12/08 08:30:37 bernie + *#* Convert to mtime_t; timer_minutes(): Remove. + *#* *#* Revision 1.18 2004/11/16 23:09:52 bernie *#* Disable timer_minutes() for targets with 16bit time_t. *#* @@ -68,17 +77,17 @@ #ifndef DRV_TIMER_H #define DRV_TIMER_H -#include "cpu.h" -#include "compiler.h" -#include #include +#include +#include +#include /*! Number of timer ticks per second. */ -#define TICKS_PER_SEC ((time_t)1000) +#define TICKS_PER_SEC ((mtime_t)1000) /* Function protos */ extern void timer_init(void); -extern void timer_delay(time_t time); +extern void timer_delay(mtime_t time); #ifndef CONFIG_TIMER_DISABLE_UDELAY extern void timer_udelay(utime_t utime); @@ -102,10 +111,10 @@ extern void timer_udelay(utime_t utime); */ typedef struct Timer { - Node link; /*!< Link into timers queue */ - time_t delay; /*!< Timer delay in ms */ - time_t tick; /*!< Timer will expire at this tick */ - Event expire; /*!< Event to execute when the timer expires */ + Node link; /*!< Link into timers queue */ + mtime_t delay; /*!< Timer delay in ms */ + mtime_t tick; /*!< Timer will expire at this tick */ + Event expire; /*!< Event to execute when the timer expires */ } Timer; extern void timer_add(Timer *timer); @@ -114,7 +123,7 @@ extern Timer *timer_abort(Timer *timer); #if defined(CONFIG_KERN_SIGNALS) && CONFIG_KERN_SIGNALS /*! Set the timer so that it sends a signal when it expires */ -INLINE void timer_set_event_signal(Timer* timer, struct Process* proc, sigset_t sigs) +INLINE void timer_set_event_signal(Timer *timer, struct Process *proc, sigmask_t sigs) { event_initSignal(&timer->expire, proc, sigs); } @@ -122,20 +131,20 @@ INLINE void timer_set_event_signal(Timer* timer, struct Process* proc, sigset_t #endif /* CONFIG_KERN_SIGNALS */ /*! Set the timer so that it calls an user hook when it expires */ -INLINE void timer_set_event_softint(Timer* timer, Hook func, void* user_data) +INLINE void timer_set_event_softint(Timer *timer, Hook func, iptr_t user_data) { event_initSoftInt(&timer->expire, func, user_data); } /*! Set the timer delay (the time before the event will be triggered) */ -INLINE void timer_set_delay(Timer* timer, time_t delay) +INLINE void timer_set_delay(Timer *timer, mtime_t delay) { timer->delay = delay; } #endif /* CONFIG_TIMER_DISABLE_EVENTS */ -extern volatile time_t _clock; +extern volatile mtime_t _clock; /*! * \brief Return the system tick counter (expressed in ms) @@ -146,7 +155,7 @@ extern volatile time_t _clock; * The following code is safe: * * \code - * time_t tea_start_time = get_tick(); + * mtime_t tea_start_time = get_tick(); * * boil_water(); * @@ -154,16 +163,16 @@ extern volatile time_t _clock; * printf("Your tea, Sir.\n"); * \endcode * - * When the tick counter increments every millisecond and time_t + * When the tick counter increments every millisecond and mtime_t * is 32bit wide, the tick count will overflow every 49.7 days. * * \note This function must disable interrupts on 8/16bit CPUs because the * clock variable is larger than the processor word size and can't * be copied atomically. */ -INLINE time_t timer_ticks(void) +INLINE mtime_t timer_ticks(void) { - time_t result; + mtime_t result; cpuflags_t flags; DISABLE_IRQSAVE(flags); @@ -181,31 +190,9 @@ INLINE time_t timer_ticks(void) * * \sa timer_ticks */ -INLINE time_t timer_ticks_unlocked(void) +INLINE mtime_t timer_ticks_unlocked(void) { return _clock; } - -/* - * timer_minutes() makes no sense when time_t is 16bit because - * it overflows every 65.536 seconds. - */ -#if SIZEOF_TIME_T >= 4 - -/*! - * Return the minutes passed since timer start. - * - * The minutes uptime is computed directly from system tick counter: - * in case of a 4 bytes time_t after 71582 minutes the value will - * wrap around. - */ -INLINE time_t timer_minutes(void) -{ - return timer_ticks() / (TICKS_PER_SEC * 60); -} - -#endif /* SIZEOF_TIME_T >= 4 */ - #endif /* DRV_TIMER_H */ -