.extern _kernel_task_sp .extern syscall_handler .global syscall_entry .type syscall_entry @function syscall_entry: swapgs movq %rsp, %rax movq _kernel_task_bp, %rsp pushq %rax pushq %rbp pushq %rcx pushq %r11 call syscall_handler popq %r11 popq %rcx popq %rbp popq %rsp swapgs sysretq .global syscall_setup_syscall .type syscall_setup_syscall @function syscall_setup_syscall: movq $0xc0000080, %rcx rdmsr or $1, %eax wrmsr movq $0xc0000081, %rcx rdmsr mov $0x001b0008, %edx wrmsr movq $0xc0000082, %rcx leaq syscall_entry, %rdx mov %edx, %eax shr $32, %rdx wrmsr retq