From 1b55ab26c2832739f00d84caa10763f625ed4161 Mon Sep 17 00:00:00 2001 From: Himbeer Date: Mon, 17 Jun 2024 11:57:29 +0200 Subject: syscall: Expect ID to be passed in a7 This is consistent with Linux and pk and may help with adding compatibility in the future. --- src/lib/interrupts.zig | 4 ++-- src/lib/syscall.zig | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') 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, } } -- cgit v1.2.3