Where is the Linux ISR Entry Point

2019-01-26 16:58发布

问题:

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?

回答1:

CONFIG_X86_32

  1. arch/x86/kernel/entry_32.S:system_call (INT $0x80)
  2. arch/x86/kernel/entry_32.S:ia32_sysenter_target (SYSENTER)

CONFIG_X86_64

  1. arch/x86/kernel/entry_64.S:system_call (SYSCALL, 64bit)

CONFIG_X86_64 and CONFIG_IA32_EMULATION

  1. arch/x86/ia32/ia32entry.S:ia32_sysenter_target (SYSENTER)
  2. arch/x86/ia32/ia32entry.S:ia32_cstar_target (SYSCALL, 32bit)
  3. arch/x86/ia32/ia32entry.S:ia32_syscall (INT $0x80)