#include #include #include "cpu.h" #include "mem.h" #include "syscall.h" #define arg(n) load(GPR[SP] + 4*n) void do_syscall(void) { switch (arg(0)) { case SYS_exit: exit(arg(1)); break; case SYS_read: push(read(arg(1), &MEM[arg(2)], arg(3))); break; case SYS_write: push(write(arg(1), &MEM[arg(2)], arg(3))); break; default: push(-1); } }