- 论坛徽章:
- 20
|
本帖最后由 nswcfd 于 2016-03-09 16:50 编辑
--------------- 先忽略这条回复吧 ------------------
参考arch/x86/kernel/entry_64.S
或者
http://lxr.free-electrons.com/source/arch/x86/entry/entry_64.S
174 testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
175 jnz tracesys <=================== trace-syscall发生在call sys_call_table之前
176 entry_SYSCALL_64_fastpath:
177 #if __SYSCALL_MASK == ~0
178 cmpq $__NR_syscall_max, %rax
179 #else
180 andl $__SYSCALL_MASK, %eax
181 cmpl $__NR_syscall_max, %eax
182 #endif
183 ja 1f /* return -ENOSYS (already in pt_regs->ax) */
184 movq %r10, %rcx
185 call *sys_call_table(, %rax, <=================== 系统调用在这里
186 movq %rax, RAX(%rsp) |
|