aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-05-12 20:44:14 +0200
committerHimbeer <himbeer@disroot.org>2024-05-12 20:44:14 +0200
commit8230f828b5050e5f5772590836eaf247f725a89b (patch)
tree0e90b31fa7cc3b8e4965af2b496a58b8333675e4 /src
parent95f2d9ac91a9c35dc7b13899520fd6facc614769 (diff)
process: Fix syntax errors
Diffstat (limited to 'src')
-rw-r--r--src/process.zig21
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 {