aboutsummaryrefslogtreecommitdiff
path: root/src/lib/process.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/process.zig')
-rw-r--r--src/lib/process.zig23
1 files changed, 2 insertions, 21 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);