Home | History | Annotate | Download | only in thread
      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