I'm trying to understand the system call interface and implementation in the Linux kernel. I know about entry.S
and the relationship between libc
headers and implementation. What I want to know is where in the kernel is the int 80h
received for the first time i.e. the place that decides that it's actually the 80h interrupt. Can anyone point me to the LXR link for this please?
4
votes
Will this question's answers help?
– Alexey Frunze
Hnn. It does help actually. It appears that 0x80 is no longer used. It's now a SYSENTER/SYSEXIT based approach which is explained very nice here: articles.manugarg.com/systemcallinlinux2_6.html
– recluze
1 Answers
1
votes
CONFIG_X86_32
- arch/x86/kernel/entry_32.S:system_call (INT $0x80)
- arch/x86/kernel/entry_32.S:ia32_sysenter_target (SYSENTER)
CONFIG_X86_64
- arch/x86/kernel/entry_64.S:system_call (SYSCALL, 64bit)
CONFIG_X86_64 and CONFIG_IA32_EMULATION
- arch/x86/ia32/ia32entry.S:ia32_sysenter_target (SYSENTER)
- arch/x86/ia32/ia32entry.S:ia32_cstar_target (SYSCALL, 32bit)
- arch/x86/ia32/ia32entry.S:ia32_syscall (INT $0x80)