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