diff options
Diffstat (limited to 'src/lib/vfs.zig')
-rw-r--r-- | src/lib/vfs.zig | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/vfs.zig b/src/lib/vfs.zig index 71dda98..46f01d6 100644 --- a/src/lib/vfs.zig +++ b/src/lib/vfs.zig @@ -72,7 +72,7 @@ pub const File = extern struct { pub const Hook = extern struct { callback: Callback, - pub const Callback = *allowzero const fn (pid: u16, data: usize) callconv(.C) sysexchange.Result(usize); + pub const Callback = *allowzero const fn (pid: u16, thread_id: usize, data: usize) callconv(.C) sysexchange.Result(usize); }; // A directory hook is a resource that provides other resources via driver callbacks. @@ -380,8 +380,8 @@ fn call(proc: *process.Info, function: *const anyopaque, args: anytype, cleanup_ fn crossProcessReturn(context: *anyopaque, driver: *const process.Info) void { const proc: *process.Info = @alignCast(@ptrCast(context)); - proc.trap_frame.general_purpose_registers[10] = driver.trap_frame.general_purpose_registers[10]; - proc.trap_frame.general_purpose_registers[11] = driver.trap_frame.general_purpose_registers[11]; + proc.trap_frame.general_purpose_registers[10] = driver.trap_frame.general_purpose_registers[12]; + proc.trap_frame.general_purpose_registers[11] = driver.trap_frame.general_purpose_registers[13]; proc.pc += 4; // Skip ecall instruction proc.state = .waiting; // Scheduler is called by the "terminate" syscall after two layers of returning. |