timer: Convert to new-style CONFIG_XYZ parameters
[bertos.git] / bertos / drv / timer.h
index f251ff82e697c0645db73962850a84a73922e2fb..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,18 +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));
 }
+
+void timer_init(void);
+void timer_cleanup(void);
+
 int timer_testSetup(void);
 int timer_testRun(void);
 int timer_testTearDown(void);
 
-#if !defined(CONFIG_TIMER_DISABLE_UDELAY)
+#if CONFIG_TIMER_UDELAY
 void timer_busyWait(hptime_t delay);
 void timer_delayHp(hptime_t delay);
 INLINE void timer_udelay(utime_t delay)
@@ -198,7 +215,7 @@ INLINE void timer_udelay(utime_t delay)
 }
 #endif
 
-#ifndef CONFIG_TIMER_DISABLE_EVENTS
+#if CONFIG_TIMER_EVENTS
 
 #include <mware/event.h>
 
@@ -226,18 +243,21 @@ 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