#include "thread.h" #include <limits.h> #include <sys/cpu.h> static void default_idle_thread_hook(void) { } void (*idle_thread_hook)(void) = default_idle_thread_hook; static void idle_thread_func(void *dummy) { (void)dummy; for (;;) { cli(); idle_thread_hook(); __schedule(); asm volatile("sti ; hlt" : : : "memory"); } } void start_idle_thread(void) { start_thread("idle", 4096, IDLE_THREAD_PRIORITY, idle_thread_func, NULL); }