From f8182bd38671e87bf2f3611fb78b447629df1a86 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Sat, 22 Feb 2025 23:01:48 +0100 Subject: [PATCH] init: Use getThreadId() instead of relying on a fixed PID --- system/init/main.zig | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/system/init/main.zig b/system/init/main.zig index 1b519e0..f813e78 100644 --- a/system/init/main.zig +++ b/system/init/main.zig @@ -7,14 +7,12 @@ const buffer = system.ring_buffer; // FIXME: Make arch-specific. const PAGE_SIZE = 4096; -const SELF_PID = 1; - fn setupKernelRingBuffer(base: u64) !buffer.RingBuffer { const phys = vm.PhysFrame{ .address = try syscalls.allocFrame() }; const data: [*]u8 = @ptrCast(phys.virtualPointer(u8, base)); - try syscalls.setEventQueue(SELF_PID, phys.address); + try syscalls.setEventQueue(syscalls.getThreadId(), phys.address); return buffer.RingBuffer.init(data, PAGE_SIZE, true); } @@ -23,9 +21,8 @@ fn setTokens() void { var tokens: u64 = 0; tokens |= @intFromEnum(system.kernel.Token.Root); tokens |= @intFromEnum(system.kernel.Token.PhysicalMemory); - tokens |= @intFromEnum(system.kernel.Token.EventQueue); - tokens |= @intFromEnum(system.kernel.Token.VirtualMemory); - syscalls.setTokens(SELF_PID, tokens) catch {}; + tokens |= @intFromEnum(system.kernel.Token.CreateProcess); + syscalls.setTokens(syscalls.getThreadId(), tokens) catch {}; } export fn _start(base: u64, address: u64) callconv(.C) noreturn {