xref: /openbmc/linux/arch/arc/kernel/asm-offsets.c (revision 39b6f3aa)
1 /*
2  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 
9 #include <linux/sched.h>
10 #include <linux/mm.h>
11 #include <linux/interrupt.h>
12 #include <linux/thread_info.h>
13 #include <linux/kbuild.h>
14 #include <linux/ptrace.h>
15 #include <asm/hardirq.h>
16 #include <asm/page.h>
17 
18 int main(void)
19 {
20 	DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
21 	DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, stack));
22 
23 	BLANK();
24 
25 	DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp));
26 	DEFINE(THREAD_CALLEE_REG, offsetof(struct thread_struct, callee_reg));
27 #ifdef CONFIG_ARC_CURR_IN_REG
28 	DEFINE(THREAD_USER_R25, offsetof(struct thread_struct, user_r25));
29 #endif
30 	DEFINE(THREAD_FAULT_ADDR,
31 	       offsetof(struct thread_struct, fault_address));
32 
33 	BLANK();
34 
35 	DEFINE(THREAD_INFO_FLAGS, offsetof(struct thread_info, flags));
36 	DEFINE(THREAD_INFO_PREEMPT_COUNT,
37 	       offsetof(struct thread_info, preempt_count));
38 
39 	BLANK();
40 
41 	DEFINE(TASK_ACT_MM, offsetof(struct task_struct, active_mm));
42 	DEFINE(TASK_TGID, offsetof(struct task_struct, tgid));
43 
44 	DEFINE(MM_CTXT, offsetof(struct mm_struct, context));
45 	DEFINE(MM_PGD, offsetof(struct mm_struct, pgd));
46 
47 	DEFINE(MM_CTXT_ASID, offsetof(mm_context_t, asid));
48 
49 	BLANK();
50 
51 	DEFINE(PT_status32, offsetof(struct pt_regs, status32));
52 	DEFINE(PT_orig_r8, offsetof(struct pt_regs, orig_r8_word));
53 	DEFINE(PT_sp, offsetof(struct pt_regs, sp));
54 	DEFINE(PT_r0, offsetof(struct pt_regs, r0));
55 	DEFINE(PT_r1, offsetof(struct pt_regs, r1));
56 	DEFINE(PT_r2, offsetof(struct pt_regs, r2));
57 	DEFINE(PT_r3, offsetof(struct pt_regs, r3));
58 	DEFINE(PT_r4, offsetof(struct pt_regs, r4));
59 	DEFINE(PT_r5, offsetof(struct pt_regs, r5));
60 	DEFINE(PT_r6, offsetof(struct pt_regs, r6));
61 	DEFINE(PT_r7, offsetof(struct pt_regs, r7));
62 
63 	return 0;
64 }
65