1 #ifndef __LINUX_KBUILD_H 2 # error "Please do not build this file directly, build asm-offsets.c instead" 3 #endif 4 5 #include <asm/ia32.h> 6 7 #define __SYSCALL_64(nr, sym, qual) [nr] = 1, 8 static char syscalls_64[] = { 9 #include <asm/syscalls_64.h> 10 }; 11 #define __SYSCALL_I386(nr, sym, qual) [nr] = 1, 12 static char syscalls_ia32[] = { 13 #include <asm/syscalls_32.h> 14 }; 15 16 int main(void) 17 { 18 #ifdef CONFIG_PARAVIRT 19 OFFSET(PV_IRQ_adjust_exception_frame, pv_irq_ops, adjust_exception_frame); 20 OFFSET(PV_CPU_usergs_sysret64, pv_cpu_ops, usergs_sysret64); 21 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs); 22 BLANK(); 23 #endif 24 25 #define ENTRY(entry) OFFSET(pt_regs_ ## entry, pt_regs, entry) 26 ENTRY(bx); 27 ENTRY(cx); 28 ENTRY(dx); 29 ENTRY(sp); 30 ENTRY(bp); 31 ENTRY(si); 32 ENTRY(di); 33 ENTRY(r8); 34 ENTRY(r9); 35 ENTRY(r10); 36 ENTRY(r11); 37 ENTRY(r12); 38 ENTRY(r13); 39 ENTRY(r14); 40 ENTRY(r15); 41 ENTRY(flags); 42 BLANK(); 43 #undef ENTRY 44 45 #define ENTRY(entry) OFFSET(saved_context_ ## entry, saved_context, entry) 46 ENTRY(cr0); 47 ENTRY(cr2); 48 ENTRY(cr3); 49 ENTRY(cr4); 50 ENTRY(cr8); 51 ENTRY(gdt_desc); 52 BLANK(); 53 #undef ENTRY 54 55 OFFSET(TSS_ist, tss_struct, x86_tss.ist); 56 OFFSET(TSS_sp0, tss_struct, x86_tss.sp0); 57 BLANK(); 58 59 DEFINE(__NR_syscall_max, sizeof(syscalls_64) - 1); 60 DEFINE(NR_syscalls, sizeof(syscalls_64)); 61 62 DEFINE(__NR_syscall_compat_max, sizeof(syscalls_ia32) - 1); 63 DEFINE(IA32_NR_syscalls, sizeof(syscalls_ia32)); 64 65 return 0; 66 } 67