aboutsummaryrefslogtreecommitdiff
path: root/src/lib/process.zig
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-30 12:24:01 +0200
committerHimbeer <himbeer@disroot.org>2024-07-30 12:24:01 +0200
commit270c8f02867bf959fa86a44fcb76bb0680571695 (patch)
treed60a5eb5ab50533176cb67d2fb57c2934c4cf6d6 /src/lib/process.zig
parent864b96499db9e9233465b79cbbc3a32399fcf946 (diff)
syscall: Provide userinit access (permissions controlled via paging in the future)
Fixes #69.
Diffstat (limited to 'src/lib/process.zig')
-rw-r--r--src/lib/process.zig4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/process.zig b/src/lib/process.zig
index c8e6d5e..99a89bd 100644
--- a/src/lib/process.zig
+++ b/src/lib/process.zig
@@ -235,6 +235,10 @@ pub fn create(allocator: Allocator, elf_buf: []align(@alignOf(elf.Elf64_Ehdr)) c
try procmem.mapKernel();
+ const userinit_start = @intFromPtr(paging.userinit_start);
+ const userinit_end = @intFromPtr(paging.userinit_end);
+ try procmem.identityMapRange(userinit_start, userinit_end, paging.EntryFlags.userReadOnly);
+
const parse_source = std.io.fixedBufferStream(elf_buf);
var it = hdr.program_header_iterator(parse_source);