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