diff options
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( |