diff options
Diffstat (limited to 'src/lib/syscall.zig')
-rw-r--r-- | src/lib/syscall.zig | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/lib/syscall.zig b/src/lib/syscall.zig index 4fed39b..db2136f 100644 --- a/src/lib/syscall.zig +++ b/src/lib/syscall.zig @@ -8,7 +8,6 @@ const instructions = @import("instructions.zig"); const mem = @import("mem.zig"); const paging = @import("paging.zig"); const process = @import("process.zig"); -const sysexchange = @import("sysexchange.zig"); const trap = @import("trap.zig"); pub const Error = error{ @@ -20,14 +19,13 @@ pub const HandleError = error{ }; pub fn handler(proc: *process.Info, trap_frame: *trap.Frame) !void { - const ret = sysexchange.frameReturn; switch (trap_frame.general_purpose_registers[17]) { - 100000 => ret(trap_frame, uprint(trap_frame)), - 100001 => ret(trap_frame, launch(trap_frame)), - 100002 => ret(trap_frame, end(proc)), - 100003 => ret(trap_frame, terminate(proc, trap_frame)), - 100004 => ret(trap_frame, processId(proc)), - 100005 => ret(trap_frame, threadId(proc)), + 100000 => trap_frame.setReturnValue(uprint(trap_frame)), + 100001 => trap_frame.setReturnValue(launch(trap_frame)), + 100002 => trap_frame.setReturnValue(end(proc)), + 100003 => trap_frame.setReturnValue(terminate(proc, trap_frame)), + 100004 => trap_frame.setReturnValue(processId(proc)), + 100005 => trap_frame.setReturnValue(threadId(proc)), else => return HandleError.UnknownSyscall, } } |