1 #include <asm/ia32.h> 2 3 #define __SYSCALL_64(nr, sym, compat) [nr] = 1, 4 #define __SYSCALL_COMMON(nr, sym, compat) [nr] = 1, 5 #ifdef CONFIG_X86_X32_ABI 6 # define __SYSCALL_X32(nr, sym, compat) [nr] = 1, 7 #else 8 # define __SYSCALL_X32(nr, sym, compat) /* nothing */ 9 #endif 10 static char syscalls_64[] = { 11 #include <asm/syscalls_64.h> 12 }; 13 #define __SYSCALL_I386(nr, sym, compat) [nr] = 1, 14 static char syscalls_ia32[] = { 15 #include <asm/syscalls_32.h> 16 }; 17 18 int main(void) 19 { 20 #ifdef CONFIG_PARAVIRT 21 OFFSET(PV_IRQ_adjust_exception_frame, pv_irq_ops, adjust_exception_frame); 22 OFFSET(PV_CPU_usergs_sysret32, pv_cpu_ops, usergs_sysret32); 23 OFFSET(PV_CPU_usergs_sysret64, pv_cpu_ops, usergs_sysret64); 24 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs); 25 BLANK(); 26 #endif 27 28 #ifdef CONFIG_IA32_EMULATION 29 OFFSET(TI_sysenter_return, thread_info, sysenter_return); 30 BLANK(); 31 32 #define ENTRY(entry) OFFSET(IA32_SIGCONTEXT_ ## entry, sigcontext_ia32, entry) 33 ENTRY(ax); 34 ENTRY(bx); 35 ENTRY(cx); 36 ENTRY(dx); 37 ENTRY(si); 38 ENTRY(di); 39 ENTRY(bp); 40 ENTRY(sp); 41 ENTRY(ip); 42 BLANK(); 43 #undef ENTRY 44 45 OFFSET(IA32_RT_SIGFRAME_sigcontext, rt_sigframe_ia32, uc.uc_mcontext); 46 BLANK(); 47 #endif 48 49 #define ENTRY(entry) OFFSET(pt_regs_ ## entry, pt_regs, entry) 50 ENTRY(bx); 51 ENTRY(bx); 52 ENTRY(cx); 53 ENTRY(dx); 54 ENTRY(sp); 55 ENTRY(bp); 56 ENTRY(si); 57 ENTRY(di); 58 ENTRY(r8); 59 ENTRY(r9); 60 ENTRY(r10); 61 ENTRY(r11); 62 ENTRY(r12); 63 ENTRY(r13); 64 ENTRY(r14); 65 ENTRY(r15); 66 ENTRY(flags); 67 BLANK(); 68 #undef ENTRY 69 70 #define ENTRY(entry) OFFSET(saved_context_ ## entry, saved_context, entry) 71 ENTRY(cr0); 72 ENTRY(cr2); 73 ENTRY(cr3); 74 ENTRY(cr4); 75 ENTRY(cr8); 76 ENTRY(gdt_desc); 77 BLANK(); 78 #undef ENTRY 79 80 OFFSET(TSS_ist, tss_struct, x86_tss.ist); 81 BLANK(); 82 83 DEFINE(__NR_syscall_max, sizeof(syscalls_64) - 1); 84 DEFINE(NR_syscalls, sizeof(syscalls_64)); 85 86 DEFINE(__NR_ia32_syscall_max, sizeof(syscalls_ia32) - 1); 87 DEFINE(IA32_NR_syscalls, sizeof(syscalls_ia32)); 88 89 return 0; 90 } 91