diff options
author | Himbeer <himbeer@disroot.org> | 2024-05-12 20:44:14 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-05-12 20:44:14 +0200 |
commit | 8230f828b5050e5f5772590836eaf247f725a89b (patch) | |
tree | 0e90b31fa7cc3b8e4965af2b496a58b8333675e4 | |
parent | 95f2d9ac91a9c35dc7b13899520fd6facc614769 (diff) |
process: Fix syntax errors
-rw-r--r-- | src/process.zig | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/process.zig b/src/process.zig index a343cd6..b5de131 100644 --- a/src/process.zig +++ b/src/process.zig @@ -2,7 +2,7 @@ // // SPDX-License-Identifier: AGPL-3.0-or-later -const std=@import("std"); +const std = @import("std"); const interrupts = @import("interrupts.zig"); const paging = @import("paging.zig"); @@ -35,7 +35,7 @@ pub const Info = extern struct { } }; -fn new(entry: *fn() void) !Info { +fn new(entry: *fn () void) !Info { const stack = try paging.alloc(num_stack_pages); errdefer paging.free(stack); @@ -43,18 +43,18 @@ fn new(entry: *fn() void) !Info { errdefer paging.free(procmem); const proc = .{ - id= next_pid++, - trap_frame= std.mem.zeroInit(interrupts.TrapFrame), - stack= stack, - pc= @ptrCast(entry), - page_table= procmem, - state= .waiting, + .id = next_pid, + .trap_frame = std.mem.zeroInit(interrupts.TrapFrame), + .stack = stack, + .pc = @ptrCast(entry), + .page_table = procmem, + .state = .waiting, }; const stack_top = proc.stack + num_stack_pages * paging.page_size; proc.trap_frame.general_purpose_registers[2] = stack_top; - try procmem.map(@intFromPtr(entry), @intFromPtr(entry), ., paging.EntryFlags.userReadExec); + try procmem.map(@intFromPtr(entry), @intFromPtr(entry), paging.EntryFlags.userReadExec, 0); // Not using identityMapRange because this is going to be expanded for non-relocatable binaries. for (0..num_stack_pages) |page| { const vaddr = page * paging.page_size; @@ -62,6 +62,9 @@ fn new(entry: *fn() void) !Info { try procmem.map(vaddr, paddr, paging.EntryFlags.userReadWrite, 0); } + + next_pid += 1; + return proc; } pub fn nextScheduled() ?Info { |