aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-11-03 04:38:05 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-11-03 04:38:05 +0000
commitebe025a2c7c3024a61ded1bfd01557fa26c813ff (patch)
tree44649feb4becd6116ae8277d4b1167be82c8f048
parent388c5bea2c3423ad09666a2e7a28238cfdb9cc91 (diff)
replace idle whith macro
-rw-r--r--kernel/dmx.c3
-rw-r--r--kernel/kernel.c8
-rw-r--r--kernel/kernel.h2
3 files changed, 3 insertions, 10 deletions
diff --git a/kernel/dmx.c b/kernel/dmx.c
index 66e2f7c..fa1399c 100644
--- a/kernel/dmx.c
+++ b/kernel/dmx.c
@@ -52,8 +52,7 @@ main()
exec(ppm, &ppmarg, DEFSTACK);
#endif
- for (;;)
- _NOP();
+ IDLE();
return 0;
}
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 7fe821e..51532b5 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -25,7 +25,6 @@
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/power.h>
-#include <avr/sleep.h>
#include <avr/wdt.h>
#include "kernel.h"
#include "stack.h"
@@ -298,10 +297,3 @@ reboot(void)
{
kern.reboot = 1;
}
-
-void
-idle(void)
-{
- for (;;)
- sleep_mode();
-}
diff --git a/kernel/kernel.h b/kernel/kernel.h
index 47dc79a..198e10e 100644
--- a/kernel/kernel.h
+++ b/kernel/kernel.h
@@ -72,6 +72,8 @@
enum Prio { High, Low = 2, Idle, nPrio };
enum SysRQ { nTask, Prio };
+#define IDLE() do { for (;;) asm volatile ("nop"); } while (0)
+
/* __BEGIN_DECLS */
void init(uint8_t sema);