/kernel/trunk/arch/amd64/include/types.h |
---|
48,6 → 48,7 |
typedef __u64 ipl_t; |
typedef __u64 __native; |
typedef __s64 __snative; |
typedef struct page_specifier pte_t; |
/kernel/trunk/arch/amd64/src/syscall.c |
---|
62,12 → 62,11 |
} |
/** Dispatch system call */ |
__native syscall_handler(__native id, __native a1, __native a2, __native a3) |
__native syscall_handler(__native a1, __native a2, __native a3, |
__native id) |
{ |
interrupts_enable(); |
if (id < SYSCALL_END) |
return syscall_table[id](a1,a2,a3); |
else |
panic("Undefined syscall %d", id); |
interrupts_disable(); |
} |
/kernel/trunk/arch/amd64/src/asm_utils.S |
---|
207,9 → 207,11 |
# Switch back to remain consistent |
swapgs |
sti |
movq %r9, %rcx # Exchange last parameter as a third |
call syscall_handler |
cli # We will be touching stack pointer |
popq %r11 |
popq %rcx |
movq 0(%rsp), %rsp |