File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -94,6 +94,8 @@ extern "C" fn asm_syscall_handler() {
9494
9595 swapgs # TODO: fix the kernel to not rely on the KERNEL_GS_BASE MSR containing the cpu_data
9696
97+ and rsp, -16 # align stack to 16 bytes
98+
9799 # backup registers for sysretq
98100 push rbp
99101 push rbx # save callee-saved registers
@@ -167,7 +169,8 @@ fn syscall_arg_to_string(ptr: usize) -> Option<String> {
167169}
168170
169171#[ no_mangle]
170- extern "sysv64" fn general_syscall_handler ( data : SyscallData ) -> i64 {
172+ extern "sysv64" fn general_syscall_handler ( data : * const SyscallData ) -> i64 {
173+ let data = unsafe { & * data } ;
171174 // println!("general_syscall_handler: {:#x?}", data);
172175
173176 let result = match data. syscall_number {
@@ -188,7 +191,7 @@ extern "sysv64" fn general_syscall_handler(data: SyscallData) -> i64 {
188191
189192 match message {
190193 Some ( message) => {
191- info ! ( "{}" , message) ;
194+ dbg ! ( "{}" , message) ;
192195 Ok ( 0 )
193196 }
194197 None => Err ( SyscallError :: InvalidArgument ) ,
You can’t perform that action at this time.
0 commit comments