1 #include "thread.h"
2 #include <limits.h>
3 #include <sys/cpu.h>
4 
5 static void default_idle_thread_hook(void)
6 {
7 }
8 
9 void (*idle_thread_hook)(void) = default_idle_thread_hook;
10 
11 static void idle_thread_func(void *dummy)
12 {
13     (void)dummy;
14 
15     for (;;) {
16 	cli();
17 	idle_thread_hook();
18 	__schedule();
19 	asm volatile("sti ; hlt" : : : "memory");
20     }
21 }
22 
23 void start_idle_thread(void)
24 {
25     start_thread("idle", 4096, IDLE_THREAD_PRIORITY, idle_thread_func, NULL);
26 }
27 
28