Switch to new kernel config files.
[bertos.git] / bertos / drv / ser.c
index 5f2b6fcd66af4298bdae8d95891c31276854ed57..bd27486b189beea4bdf3a8506beb5936a1d6949c 100644 (file)
 
 #include "ser.h"
 #include "wdt.h"
+#include "timer.h"
 #include "ser_p.h"
 
 #include "cfg/cfg_ser.h"
-#include "cfg/cfg_kern.h"
+#include "cfg/cfg_proc.h"
 #include <cfg/debug.h>
 
 #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
+#if !defined(CONFIG_KERN) || ((CONFIG_KERN != 0) && CONFIG_KERN != 1)
+       #error CONFIG_KERN 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 +107,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 +153,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 +343,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;
 }