aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-08-01 12:59:30 +0200
committerHimbeer <himbeer@disroot.org>2024-08-01 12:59:30 +0200
commit017c63d49f4c6fdd2f762dd7d14323fbbdb7775e (patch)
tree37aba07371d316e63ee8543ba5789dd22ab91639 /src/lib
parentb2e908aa7a503037ebb95df3860fdb196aacdf30 (diff)
Remove userinit entirely, directly embedding the init ELF instead
Closes #69.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/process.zig23
-rw-r--r--src/lib/userinit.zig5
2 files changed, 2 insertions, 26 deletions
diff --git a/src/lib/process.zig b/src/lib/process.zig
index b59d255..b5afade 100644
--- a/src/lib/process.zig
+++ b/src/lib/process.zig
@@ -318,27 +318,8 @@ pub fn create(allocator: Allocator, elf_buf: []align(@alignOf(elf.Elf64_Ehdr)) c
return &proc_node.data;
}
-pub fn runInit(allocator: Allocator, reader: anytype) !noreturn {
- var file_name_buffer: [4096]u8 = undefined;
- var link_name_buffer: [4096]u8 = undefined;
-
- var it = std.tar.iterator(reader, .{
- .file_name_buffer = file_name_buffer[0..],
- .link_name_buffer = link_name_buffer[0..],
- });
- const exe = while (try it.next()) |file| {
- if (std.mem.eql(u8, file.name, "./init")) {
- break file;
- }
- } else return Error.NoInit;
-
- const alignment = @alignOf(elf.Elf64_Ehdr);
-
- var exe_list = std.ArrayListAligned(u8, alignment).init(allocator);
- defer exe_list.deinit();
- try exe.reader().readAllArrayListAligned(alignment, &exe_list, exe.size);
-
- const proc = try create(allocator, exe_list.items);
+pub fn run(allocator: Allocator, bytes: []align(@alignOf(elf.Elf64_Ehdr)) const u8) !noreturn {
+ const proc = try create(allocator, @alignCast(bytes[0..]));
try time.interruptInMillis(schedule_interval_millis);
switchTo(proc);
diff --git a/src/lib/userinit.zig b/src/lib/userinit.zig
deleted file mode 100644
index 8c77cdd..0000000
--- a/src/lib/userinit.zig
+++ /dev/null
@@ -1,5 +0,0 @@
-// SPDX-FileCopyrightText: 2024 Himbeer <himbeer@disroot.org>
-//
-// SPDX-License-Identifier: AGPL-3.0-or-later
-
-pub const tarball = @embedFile("cfg/userinit.tar");