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 {