diff options
author | Himbeer <himbeer@disroot.org> | 2024-07-03 13:20:25 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-07-03 13:20:25 +0200 |
commit | bff30d54233ba53560029e43dd4fd3e74cb86fcd (patch) | |
tree | 945e96b207accad34b7f80c5b714e5c3786a7d76 | |
parent | 892245e3eac32d8237cb4f851ae72b3d887e1e9d (diff) |
syscall: Supply VFS resource providing functions with provider PID
-rw-r--r-- | src/lib/syscall.zig | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/lib/syscall.zig b/src/lib/syscall.zig index 715bcdb..c800ef0 100644 --- a/src/lib/syscall.zig +++ b/src/lib/syscall.zig @@ -24,11 +24,11 @@ pub fn handler(proc: *process.Info, trap_frame: *trap.Frame) !void { 100000 => uprint(trap_frame), 100001 => open(proc, trap_frame), 100002 => close(proc, trap_frame), - 100003 => provideStream(trap_frame), - 100004 => provideFile(trap_frame), - 100005 => provideHook(trap_frame), + 100003 => provideStream(proc, trap_frame), + 100004 => provideFile(proc, trap_frame), + 100005 => provideHook(proc, trap_frame), 100006 => mkdir(trap_frame), - 100007 => provideDirHook(trap_frame), + 100007 => provideDirHook(proc, trap_frame), 100008 => remove(trap_frame), 100009 => read(proc, trap_frame), 100010 => write(proc, trap_frame), @@ -82,7 +82,7 @@ fn close(proc: *process.Info, trap_frame: *const trap.Frame) void { // readFn: ?vfs.Stream.ReadFn, // writeFn: ?vfs.Stream.WriteFn, // ) Result(void) -fn provideStream(trap_frame: *trap.Frame) void { +fn provideStream(proc: *const process.Info, trap_frame: *trap.Frame) void { setUserMemoryAccess(true); defer setUserMemoryAccess(false); @@ -95,7 +95,7 @@ fn provideStream(trap_frame: *trap.Frame) void { .readFn = readFn, .writeFn = writeFn, }, - })); + }, proc.id)); } // provideFile( @@ -105,7 +105,7 @@ fn provideStream(trap_frame: *trap.Frame) void { // writeFn: ?vfs.File.WriteFn, // closeFn: ?vfs.File.CloseFn, // ) Result(void) -fn provideFile(trap_frame: *trap.Frame) void { +fn provideFile(proc: *const process.Info, trap_frame: *trap.Frame) void { setUserMemoryAccess(true); defer setUserMemoryAccess(false); @@ -122,14 +122,14 @@ fn provideFile(trap_frame: *trap.Frame) void { .writeFn = writeFn, .closeFn = closeFn, }, - })); + }, proc.id)); } // provideHook( // path_c: [*:0]const u8, // fixme: Kernel panic if null pointer // callback: vfs.Hook.Callback, // ) Result(void) -fn provideHook(trap_frame: *trap.Frame) void { +fn provideHook(proc: *const process.Info, trap_frame: *trap.Frame) void { setUserMemoryAccess(true); defer setUserMemoryAccess(false); @@ -140,7 +140,7 @@ fn provideHook(trap_frame: *trap.Frame) void { .hook = .{ .callback = callback, }, - })); + }, proc.id)); } // mkdir( @@ -162,7 +162,7 @@ fn mkdir(trap_frame: *trap.Frame) void { // findFn: vfs.DirHook.FindFn, // removeFn: vfs.DirHook.RemoveFn, // ) Result(void) -fn provideDirHook(trap_frame: *trap.Frame) void { +fn provideDirHook(proc: *const process.Info, trap_frame: *trap.Frame) void { setUserMemoryAccess(true); defer setUserMemoryAccess(false); @@ -177,7 +177,7 @@ fn provideDirHook(trap_frame: *trap.Frame) void { .findFn = findFn, .removeFn = removeFn, }, - })); + }, proc.id)); } // remove(path_c: [*:0]const u8) Result(void) // fixme: Kernel panic if null pointer |