diff --git a/core/src/arch/x86_64/thread.zig b/core/src/arch/x86_64/thread.zig index 60fbd4f..ae89acf 100644 --- a/core/src/arch/x86_64/thread.zig +++ b/core/src/arch/x86_64/thread.zig @@ -51,8 +51,9 @@ pub fn setAddress(regs: *interrupts.InterruptStackFrame, address: u64) void { regs.rip = address; } -pub fn setArgument(regs: *interrupts.InterruptStackFrame, argument: u64) void { - regs.rdi = argument; +pub fn setArguments(regs: *interrupts.InterruptStackFrame, arg0: u64, arg1: u64) void { + regs.rdi = arg0; + regs.rsi = arg1; } pub fn setStack(regs: *interrupts.InterruptStackFrame, stack: u64) void { diff --git a/core/src/main.zig b/core/src/main.zig index 7b88bee..30db693 100644 --- a/core/src/main.zig +++ b/core/src/main.zig @@ -71,7 +71,7 @@ export fn _start(magic: u32, info: MultibootInfo) callconv(.C) noreturn { init.mapper = mapper; init.user_priority = 255; thread.arch.initUserRegisters(&init.regs); - thread.arch.setArgument(&init.regs, base); + thread.arch.setArguments(&init.regs, base, mapper.phys.address); const ctx = Context{ .allocator = &allocator, .mapper = mapper, .regs = &init.regs };