aboutsummaryrefslogtreecommitdiff
path: root/src/lib/syscall.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/syscall.zig')
-rw-r--r--src/lib/syscall.zig14
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,
}
}