aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-02-13 14:51:28 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-02-13 14:51:28 +0000
commit51649e040ba68812ae3666c1f1418642b734ae55 (patch)
treedadda4b2d93c8da5ad44b4fa081b85e11d8f4e21
parent799100520ee8ba98980de6a6f7097ec17922ccb5 (diff)
add yield
-rw-r--r--kernel/kernel.c8
-rw-r--r--kernel/kernel.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 7d2d6c2..7d04a56 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -257,6 +257,14 @@ sleep(uint32_t ticks)
SCHEDULE();
}
+void
+yield(void)
+{
+ cli();
+
+ SCHEDULE();
+}
+
uint32_t
now(void)
{
diff --git a/kernel/kernel.h b/kernel/kernel.h
index 172fad7..ed409b5 100644
--- a/kernel/kernel.h
+++ b/kernel/kernel.h
@@ -104,6 +104,7 @@ void signal(uint8_t sema);
void suspend(void);
void sleep(uint32_t ticks);
+void yield(void);
uint32_t now(void);
uint8_t running(void);