blob: d875f97d4e0ba0477c648e1244ff238bfd48be03 [file] [log] [blame]
Borislav Petkov5de2b612014-12-09 16:45:17 +01001#ifndef __LINUX_KBUILD_H
2# error "Please do not build this file directly, build asm-offsets.c instead"
3#endif
4
Thomas Gleixnerc3ca5f32007-10-11 11:14:19 +02005#include <asm/ia32.h>
Hiroshi Shimamoto8869a2e2008-12-18 14:46:52 -08006
Andy Lutomirskicfcbadb2016-01-28 15:11:24 -08007#define __SYSCALL_64(nr, sym, qual) [nr] = 1,
H. Peter Anvin303395a2011-11-11 16:07:41 -08008static char syscalls_64[] = {
9#include <asm/syscalls_64.h>
10};
Andy Lutomirskicfcbadb2016-01-28 15:11:24 -080011#define __SYSCALL_I386(nr, sym, qual) [nr] = 1,
H. Peter Anvin303395a2011-11-11 16:07:41 -080012static char syscalls_ia32[] = {
13#include <asm/syscalls_32.h>
Thomas Gleixnerc3ca5f32007-10-11 11:14:19 +020014};
15
16int main(void)
17{
Glauber de Oliveira Costaa59153dc2008-01-30 13:33:19 +010018#ifdef CONFIG_PARAVIRT
Jeremy Fitzhardingefab58422008-06-25 00:19:31 -040019 OFFSET(PV_IRQ_adjust_exception_frame, pv_irq_ops, adjust_exception_frame);
Jeremy Fitzhardinge2be29982008-06-25 00:19:28 -040020 OFFSET(PV_CPU_usergs_sysret64, pv_cpu_ops, usergs_sysret64);
Glauber de Oliveira Costaa59153dc2008-01-30 13:33:19 +010021 OFFSET(PV_CPU_swapgs, pv_cpu_ops, swapgs);
Jan Beulichb82fef82011-02-09 08:24:34 +000022 BLANK();
Glauber de Oliveira Costaa59153dc2008-01-30 13:33:19 +010023#endif
24
Jan Beulichb82fef82011-02-09 08:24:34 +000025#define ENTRY(entry) OFFSET(pt_regs_ ## entry, pt_regs, entry)
H. Peter Anvin65ea5b02008-01-30 13:30:56 +010026 ENTRY(bx);
H. Peter Anvin65ea5b02008-01-30 13:30:56 +010027 ENTRY(cx);
28 ENTRY(dx);
29 ENTRY(sp);
30 ENTRY(bp);
31 ENTRY(si);
32 ENTRY(di);
Rafael J. Wysocki0de80bc2007-10-23 22:37:24 +020033 ENTRY(r8);
34 ENTRY(r9);
35 ENTRY(r10);
36 ENTRY(r11);
37 ENTRY(r12);
38 ENTRY(r13);
39 ENTRY(r14);
40 ENTRY(r15);
H. Peter Anvin65ea5b02008-01-30 13:30:56 +010041 ENTRY(flags);
Rafael J. Wysocki0de80bc2007-10-23 22:37:24 +020042 BLANK();
43#undef ENTRY
Jan Beulichb82fef82011-02-09 08:24:34 +000044
45#define ENTRY(entry) OFFSET(saved_context_ ## entry, saved_context, entry)
Rafael J. Wysocki0de80bc2007-10-23 22:37:24 +020046 ENTRY(cr0);
47 ENTRY(cr2);
48 ENTRY(cr3);
49 ENTRY(cr4);
50 ENTRY(cr8);
Konrad Rzeszutek Wilkcc456c42013-05-01 21:53:30 -040051 ENTRY(gdt_desc);
Rafael J. Wysocki0de80bc2007-10-23 22:37:24 +020052 BLANK();
53#undef ENTRY
Jan Beulichb82fef82011-02-09 08:24:34 +000054
55 OFFSET(TSS_ist, tss_struct, x86_tss.ist);
Andy Lutomirski9d0c9142015-03-05 19:19:04 -080056 OFFSET(TSS_sp0, tss_struct, x86_tss.sp0);
Thomas Gleixnerc3ca5f32007-10-11 11:14:19 +020057 BLANK();
Jan Beulichb82fef82011-02-09 08:24:34 +000058
H. Peter Anvin303395a2011-11-11 16:07:41 -080059 DEFINE(__NR_syscall_max, sizeof(syscalls_64) - 1);
60 DEFINE(NR_syscalls, sizeof(syscalls_64));
61
Ingo Molnarbace7112015-06-08 21:20:26 +020062 DEFINE(__NR_syscall_compat_max, sizeof(syscalls_ia32) - 1);
H. Peter Anvin303395a2011-11-11 16:07:41 -080063 DEFINE(IA32_NR_syscalls, sizeof(syscalls_ia32));
Eric W. Biedermanbd531472007-10-26 11:29:04 -060064
Thomas Gleixnerc3ca5f32007-10-11 11:14:19 +020065 return 0;
66}