diff options
Diffstat (limited to 'src/lib/resources.zig')
-rw-r--r-- | src/lib/resources.zig | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/lib/resources.zig b/src/lib/resources.zig index 769de4f..5c19aa2 100644 --- a/src/lib/resources.zig +++ b/src/lib/resources.zig @@ -55,6 +55,14 @@ const processfs = struct { std.debug.panic("Unable to schedule because all processes are terminated: {any}", .{err}); }; } + + fn id(pid: u16, _: usize, _: usize) callconv(.C) Result(usize) { + return Result(usize).fromAnyTypeOrError(pid); + } + + fn threadId(_: u16, thread_id: usize, _: usize) callconv(.C) Result(usize) { + return Result(usize).fromAnyTypeOrError(thread_id); + } }; const CreationContext = struct { @@ -231,6 +239,28 @@ fn provideProcessSelf() !void { }, 0, .{ .reclaimable = false, }); + + try vfs.provideResource("/process/self/id", .{ + .tag = .hook, + .data = .{ + .hook = .{ + .callback = processfs.self.id, + }, + }, + }, 0, .{ + .reclaimable = false, + }); + + try vfs.provideResource("/process/self/thread_id", .{ + .tag = .hook, + .data = .{ + .hook = .{ + .callback = processfs.self.threadId, + }, + }, + }, 0, .{ + .reclaimable = false, + }); } fn addFile(path: []const u8, file: File) !void { |