diff options
author | Himbeer <himbeer@disroot.org> | 2024-06-17 11:57:29 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-06-17 11:57:29 +0200 |
commit | 1b55ab26c2832739f00d84caa10763f625ed4161 (patch) | |
tree | 7f522d525fcf586e703985bc21282d2071aa75ec /src | |
parent | 50fe6fe03a6db4f293c1921d69a06f4a6facc7be (diff) |
syscall: Expect ID to be passed in a7
This is consistent with Linux and pk and may help with adding compatibility in the future.
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/interrupts.zig | 4 | ||||
-rw-r--r-- | src/lib/syscall.zig | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/interrupts.zig b/src/lib/interrupts.zig index a91e079..1750b5b 100644 --- a/src/lib/interrupts.zig +++ b/src/lib/interrupts.zig @@ -156,8 +156,8 @@ export fn handleTrap(epc: usize, tval: usize, cause_bits: usize, frame: *trap.Fr .ecall => { syscall.handle(frame) catch |err| switch (err) { syscall.Error.UnknownSyscall => { - const a0 = frame.general_purpose_registers[10]; - w.print("Hart {d}: Unknown syscall, a0 = 0x{x:0>16}\r\n", .{ frame.hart_id, a0 }) catch unreachable; + const a7 = frame.general_purpose_registers[17]; + w.print("Hart {d}: Unknown syscall, a7 = 0x{x:0>16}\r\n", .{ frame.hart_id, a7 }) catch unreachable; }, }; diff --git a/src/lib/syscall.zig b/src/lib/syscall.zig index 692507e..8f30972 100644 --- a/src/lib/syscall.zig +++ b/src/lib/syscall.zig @@ -9,7 +9,7 @@ pub const Error = error{ }; pub fn handle(trap_frame: *const trap.Frame) !void { - switch (trap_frame.general_purpose_registers[10]) { + switch (trap_frame.general_purpose_registers[17]) { else => return Error.UnknownSyscall, } } |