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