timer: Convert to new-style CONFIG_XYZ parameters
[bertos.git] / bertos / drv / ser.c
index 5f2b6fcd66af4298bdae8d95891c31276854ed57..bf0d91c1872cc0b12e8c3dd47649210227625f26 100644 (file)
 
 #include <mware/formatwr.h>
 
-#include <string.h> /* memset */
+#include <cpu/power.h> /* cpu_relax() */
+
+#include <string.h> /* memset() */
 
 /*
  * Sanity check for config parameters required by this module.
  */
 #if !defined(CONFIG_KERNEL) || ((CONFIG_KERNEL != 0) && CONFIG_KERNEL != 1)
-       #error CONFIG_KERNEL must be set to either 0 or 1 in config.h
+       #error CONFIG_KERNEL must be set to either 0 or 1 in cfg_kern.h
 #endif
 #if !defined(CONFIG_SER_RXTIMEOUT)
-       #error CONFIG_SER_TXTIMEOUT missing in config.h
+       #error CONFIG_SER_TXTIMEOUT missing in cfg_ser.h
 #endif
 #if !defined(CONFIG_SER_RXTIMEOUT)
-       #error CONFIG_SER_RXTIMEOUT missing in config.h
+       #error CONFIG_SER_RXTIMEOUT missing in cfg_ser.h
 #endif
 #if !defined(CONFIG_SER_DEFBAUDRATE)
-       #error CONFIG_SER_DEFBAUDRATE missing in config.h
-#endif
-
-#if CONFIG_KERNEL && CONFIG_KERN_SCHED
-       #include <kern/proc.h>
-#else
-       #define proc_yield() do {} while(0)
-#endif
-
-#if CONFIG_SER_TXTIMEOUT != -1 || CONFIG_SER_RXTIMEOUT != -1
-       #include <drv/timer.h>
+       #error CONFIG_SER_DEFBAUDRATE missing in cfg_ser.h
 #endif
 
 
@@ -114,9 +106,7 @@ static int ser_putchar(int c, struct Serial *port)
                /* Wait while buffer is full... */
                do
                {
-                       /* Give up timeslice to other processes. */
-                       proc_yield();
-                       wdt_reset();
+                       cpu_relax();
 
 #if CONFIG_SER_TXTIMEOUT != -1
                        if (timer_clock() - start_time >= port->txtimeout)
@@ -162,9 +152,7 @@ static int ser_getchar(struct Serial *port)
                /* Wait while buffer is empty */
                do
                {
-                       /* Give up timeslice to other processes. */
-                       proc_yield();
-                       wdt_reset();
+                       cpu_relax();
 
 #if CONFIG_SER_RXTIMEOUT != -1
                        if (timer_clock() - start_time >= port->rxtimeout)
@@ -354,11 +342,7 @@ static int ser_flush(struct KFile *fd)
         */
        while (!fifo_isempty(&fds->txfifo)
               || fds->hw->table->txSending(fds->hw))
-       {
-                       /* Give up timeslice to other processes. */
-                       proc_yield();
-                       wdt_reset();
-       }
+               cpu_relax();
        return 0;
 }