linux/arch/x86/kernel/asm-offsets_64.c
<<
>>
Prefs
   1#include <asm/ia32.h>
   2
   3#define __NO_STUBS 1
   4#undef __SYSCALL
   5#undef _ASM_X86_UNISTD_64_H
   6#define __SYSCALL(nr, sym) [nr] = 1,
   7static char syscalls[] = {
   8#include <asm/unistd.h>
   9};
  10
  11int main(void)
  12{
  13#ifdef CONFIG_PARAVIRT
  14        OFFSET(PV_IRQ_adjust_exception_frame, pv_irq_ops, adjust_exception_frame);
  15        OFFSET(PV_CPU_usergs_sysret32, pv_cpu_ops, usergs_sysret32);
  16        OFFSET(PV_CPU_usergs_sysret64, pv_cpu_ops, usergs_sysret64);
  17        OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs);
  18        BLANK();
  19#endif
  20
  21#ifdef CONFIG_IA32_EMULATION
  22        OFFSET(TI_sysenter_return, thread_info, sysenter_return);
  23        BLANK();
  24
  25#define ENTRY(entry) OFFSET(IA32_SIGCONTEXT_ ## entry, sigcontext_ia32, entry)
  26        ENTRY(ax);
  27        ENTRY(bx);
  28        ENTRY(cx);
  29        ENTRY(dx);
  30        ENTRY(si);
  31        ENTRY(di);
  32        ENTRY(bp);
  33        ENTRY(sp);
  34        ENTRY(ip);
  35        BLANK();
  36#undef ENTRY
  37
  38        OFFSET(IA32_RT_SIGFRAME_sigcontext, rt_sigframe_ia32, uc.uc_mcontext);
  39        BLANK();
  40#endif
  41
  42#define ENTRY(entry) OFFSET(pt_regs_ ## entry, pt_regs, entry)
  43        ENTRY(bx);
  44        ENTRY(bx);
  45        ENTRY(cx);
  46        ENTRY(dx);
  47        ENTRY(sp);
  48        ENTRY(bp);
  49        ENTRY(si);
  50        ENTRY(di);
  51        ENTRY(r8);
  52        ENTRY(r9);
  53        ENTRY(r10);
  54        ENTRY(r11);
  55        ENTRY(r12);
  56        ENTRY(r13);
  57        ENTRY(r14);
  58        ENTRY(r15);
  59        ENTRY(flags);
  60        BLANK();
  61#undef ENTRY
  62
  63#define ENTRY(entry) OFFSET(saved_context_ ## entry, saved_context, entry)
  64        ENTRY(cr0);
  65        ENTRY(cr2);
  66        ENTRY(cr3);
  67        ENTRY(cr4);
  68        ENTRY(cr8);
  69        BLANK();
  70#undef ENTRY
  71
  72        OFFSET(TSS_ist, tss_struct, x86_tss.ist);
  73        BLANK();
  74
  75        DEFINE(__NR_syscall_max, sizeof(syscalls) - 1);
  76
  77        return 0;
  78}
  79
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.