diff options
author | Himbeer <himbeer@disroot.org> | 2024-07-09 16:57:42 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-07-09 16:57:42 +0200 |
commit | 1224390526a195f464838d6550110691e40809e9 (patch) | |
tree | 6532f0bd6815860c0a3de66bb0ad046747c229bd /src/lib/syscall.zig | |
parent | 439fd6152386408a244fdcb035323cdbfba31461 (diff) |
syscall: Implement mkdir
Diffstat (limited to 'src/lib/syscall.zig')
-rw-r--r-- | src/lib/syscall.zig | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/syscall.zig b/src/lib/syscall.zig index 3c01879..3d60776 100644 --- a/src/lib/syscall.zig +++ b/src/lib/syscall.zig @@ -23,7 +23,7 @@ pub fn handler(proc: *process.Info, trap_frame: *trap.Frame) !void { 100003 => provideStream(proc, trap_frame), 100004 => provideFile(proc, trap_frame), 100005 => provideHook(proc, trap_frame), - 100006 => mkdir(trap_frame), + 100006 => mkdir(proc, trap_frame), 100007 => provideDirHook(proc, trap_frame), 100008 => remove(trap_frame), 100009 => read(proc, trap_frame), @@ -137,11 +137,11 @@ fn provideHook(proc: *const process.Info, trap_frame: *trap.Frame) void { // mkdir( // path_c: [*:0]const u8, // fixme: Kernel panic if null pointer // ) Result(void) -fn mkdir(trap_frame: *trap.Frame) void { +fn mkdir(proc: *const process.Info, trap_frame: *trap.Frame) void { const path_c: [*:0]const u8 = @ptrFromInt(trap_frame.general_purpose_registers[10]); - - _ = path_c; - unreachable; + sysexchange.frameReturn(null, trap_frame, vfs.provideResourceZ(path_c, .{ + .dir = vfs.Tree.init(vfs.treeRoot().allocator), + }, proc.id)); } // provideDirHook( |