// // Created by rick on 24-02-21. // #include "syscall_handler.h" #include #include void syscall_handle(isr_registers_t *registers) { switch (registers->eax) { case SYSCALL_START_SCHEDULER: task_start_first(); break; case SYSCALL_YIELD_JOB: task_ensure_enabled(); task_switch_next(); break; case SYSCALL_YIELD_IRQ: task_ensure_enabled(); task_wait_irq(registers->ebx); break; case SYSCALL_SUSPEND: task_ensure_enabled(); task_suspend(); break; default: break; } }