#include #include "scheduler.h" typedef struct registers { uint32_t gs, fs, es, ds; // Pushed manually uint32_t edi, esi, ebp, esp, ebx, edx, ecx, eax; // Pushed by pusha uint32_t int_no, err_code; // Pushed manually uint32_t eip, cs, eflags, useresp, ss; // Pushed automatically by CPU } registers_t; int32_t sys_exit(); int32_t sys_read(); int32_t sys_write(); int32_t sys_open(); int32_t sys_close(); int32_t sys_brk(); int32_t syscall(registers_t* regs) { switch(regs->eax) { case 1: return sys_exit(); case 3: return sys_read(); case 4: return sys_write(); case 5: return sys_open(); case 6: return sys_close(); case 12: return sys_brk(); default: return -1; } } int32_t sys_exit() { exit(); return 0; } int32_t sys_read() { return 0; } int32_t sys_write() { return 0; }