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?
Asked
Active
Viewed 1,273 times
4

recluze
- 1,920
- 4
- 21
- 34
-
1Will [this question's answers](http://stackoverflow.com/questions/499188/how-is-the-system-call-in-linux-implemented) help? – Alexey Frunze Feb 11 '12 at 07:02
-
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: http://articles.manugarg.com/systemcallinlinux2_6.html – recluze Feb 11 '12 at 13:56
1 Answers
1
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)

Ilya Matveychikov
- 3,936
- 2
- 27
- 42