about summary refs log tree commit diff stats
path: root/kernel.soso/sleep.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel.soso/sleep.c')
-rw-r--r--kernel.soso/sleep.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel.soso/sleep.c b/kernel.soso/sleep.c
new file mode 100644
index 00000000..2120a192
--- /dev/null
+++ b/kernel.soso/sleep.c
@@ -0,0 +1,17 @@
+#include "sleep.h"
+#include "timer.h"
+
+void sleepMilliseconds(Thread* thread, uint32 ms)
+{
+    uint32 uptime = getUptimeMilliseconds();
+
+    //target uptime to wakeup
+    uint32 target = uptime + ms;
+
+    thread->state = TS_SLEEP;
+    thread->state_privateData = (void*)target;
+
+    enableInterrupts();
+
+    halt();
+}