Files
my-kern/kernel/cpu/syscall_handler.c

30 lines
691 B
C

//
// Created by rick on 24-02-21.
//
#include "syscall_handler.h"
#include <libk/syscall.h>
#include <tasks/task.h>
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;
}
}