diff options
author | Himbeer <himbeer@disroot.org> | 2024-08-01 12:59:30 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-08-01 12:59:30 +0200 |
commit | 017c63d49f4c6fdd2f762dd7d14323fbbdb7775e (patch) | |
tree | 37aba07371d316e63ee8543ba5789dd22ab91639 /src/lib | |
parent | b2e908aa7a503037ebb95df3860fdb196aacdf30 (diff) |
Remove userinit entirely, directly embedding the init ELF instead
Closes #69.
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/process.zig | 23 | ||||
-rw-r--r-- | src/lib/userinit.zig | 5 |
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"); |