timer: Convert to new-style CONFIG_XYZ parameters
[bertos.git] / bertos / drv / timer.h
index 4d781549f4dd025519516221c274854b794f5486..aaa35dc6732fca49ccce295ead3b98b264f5bf56 100644 (file)
 #include <cfg/debug.h>
 #include <cfg/compiler.h>
 
-#include <mware/list.h>
+#include <struct/list.h>
 
+/*
+ * Sanity check for config parameters required by this module.
+ */
+#if !defined(CONFIG_TIMER_EVENTS) || ((CONFIG_TIMER_EVENTS != 0) && CONFIG_TIMER_EVENTS != 1)
+       #error CONFIG_TIMER_EVENTS must be set to either 0 or 1 in cfg_timer.h
+#endif
+#if !defined(CONFIG_TIMER_UDELAY) || ((CONFIG_TIMER_UDELAY != 0) && CONFIG_TIMER_EVENTS != 1)
+       #error CONFIG_TIMER_UDELAY must be set to either 0 or 1 in cfg_timer.h
+#endif
+#if defined(CONFIG_TIMER_DISABLE_UDELAY)
+       #error Obosolete config option CONFIG_TIMER_DISABLE_UDELAY.  Use CONFIG_TIMER_UDELAY
+#endif
+#if defined(CONFIG_TIMER_DISABLE_EVENTS)
+       #error Obosolete config option CONFIG_TIMER_DISABLE_EVENTS.  Use CONFIG_TIMER_EVENTS
+#endif
 
 extern volatile ticks_t _clock;
 
@@ -178,15 +193,20 @@ INLINE utime_t hptime_to_us(hptime_t hpticks)
 #endif /* TIMER_HW_HPTICKS_PER_SEC < 100000UL */
 }
 
-
-void timer_init(void);
 void timer_delayTicks(ticks_t delay);
 INLINE void timer_delay(mtime_t delay)
 {
        timer_delayTicks(ms_to_ticks(delay));
 }
 
-#if !defined(CONFIG_TIMER_DISABLE_UDELAY)
+void timer_init(void);
+void timer_cleanup(void);
+
+int timer_testSetup(void);
+int timer_testRun(void);
+int timer_testTearDown(void);
+
+#if CONFIG_TIMER_UDELAY
 void timer_busyWait(hptime_t delay);
 void timer_delayHp(hptime_t delay);
 INLINE void timer_udelay(utime_t delay)
@@ -195,7 +215,7 @@ INLINE void timer_udelay(utime_t delay)
 }
 #endif
 
-#ifndef CONFIG_TIMER_DISABLE_EVENTS
+#if CONFIG_TIMER_EVENTS
 
 #include <mware/event.h>
 
@@ -219,22 +239,25 @@ typedef struct Timer
 #define TIMER_MAGIC_ACTIVE    0xABBA
 #define TIMER_MAGIC_INACTIVE  0xBAAB
 
-extern void timer_add(Timer *timer);
-extern Timer *timer_abort(Timer *timer);
+void timer_add(Timer *timer);
+Timer *timer_abort(Timer *timer);
 
 /** Set the timer so that it calls an user hook when it expires */
-INLINE void timer_set_event_softint(Timer *timer, Hook func, iptr_t user_data)
+INLINE void timer_setSoftInt(Timer *timer, Hook func, iptr_t user_data)
 {
        event_initSoftInt(&timer->expire, func, user_data);
 }
 
+// OBSOLETE
+#define  timer_set_event_softint timer_setSoftInt
+
 /** Set the timer delay (the time before the event will be triggered) */
 INLINE void timer_setDelay(Timer *timer, ticks_t delay)
 {
        timer->_delay = delay;
 }
 
-#endif /* CONFIG_TIMER_DISABLE_EVENTS */
+#endif /* CONFIG_TIMER_EVENTS */
 
 #if defined(CONFIG_KERN_SIGNALS) && CONFIG_KERN_SIGNALS