forked from xamidev/pepperOS
Scheduler returns to IDLE when.. idle.
This commit is contained in:
16
src/kmain.c
16
src/kmain.c
@@ -50,16 +50,24 @@ extern volatile struct limine_kernel_address_request kerneladdr_request;
|
||||
|
||||
extern struct process_t* processes_list;
|
||||
extern struct process_t* current_process;
|
||||
struct process_t* idle_proc;
|
||||
|
||||
bool iran = false;
|
||||
|
||||
// Never gets executed although pedicel is scheduled?
|
||||
void pedicel_main(void* arg)
|
||||
{
|
||||
bool iran = true;
|
||||
// FROM THE NEXT LINE ONWARDS, CANNOT WRITE TO FRAMEBUFFER WITHOUT PAGE FAULT!
|
||||
//printf("\n\nWelcome to PepperOS! Pedicel speaking.\nNothing left to do, halting the system!");
|
||||
}
|
||||
|
||||
void idle_main(void* arg)
|
||||
{
|
||||
for(;;)asm("hlt");
|
||||
for (;;)
|
||||
{
|
||||
asm("hlt");
|
||||
}
|
||||
}
|
||||
|
||||
extern uintptr_t kheap_start;
|
||||
@@ -94,17 +102,13 @@ void kmain()
|
||||
idt_init();
|
||||
|
||||
process_init();
|
||||
struct process_t* idle_proc = process_create("idle", (void*)idle_main, 0);
|
||||
idle_proc = process_create("idle", (void*)idle_main, 0);
|
||||
struct process_t* pedicel = process_create("pedicel", (void*)pedicel_main, 0);
|
||||
|
||||
process_display_list(processes_list);
|
||||
|
||||
scheduler_init();
|
||||
|
||||
current_process = idle_proc;
|
||||
current_process->status = RUNNING;
|
||||
|
||||
kputs(PEPPEROS_SPLASH);
|
||||
//panic(NULL, "Test panic");
|
||||
idle();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user