]> git.openfabrics.org - ~shefty/rdma-dev.git/blob - arch/cris/kernel/asm-offsets.c
dd7b8e983221e50104360d3ff11db0391625a77b
[~shefty/rdma-dev.git] / arch / cris / kernel / asm-offsets.c
1 #include <linux/sched.h>
2 #include <asm/thread_info.h>
3
4 /*
5  * Generate definitions needed by assembly language modules.
6  * This code generates raw asm output which is post-processed to extract
7  * and format the required data.
8  */
9
10 #define DEFINE(sym, val) \
11         asm volatile("\n->" #sym " %0 " #val : : "i" (val))
12
13 #define BLANK() asm volatile("\n->" : : )
14
15 #if !defined(CONFIG_ETRAX_ARCH_V10) && !defined(CONFIG_ETRAX_ARCH_V32)
16 #error One of ARCH v10 and ARCH v32 must be true!
17 #endif
18
19 int main(void)
20 {
21 #define ENTRY(entry) DEFINE(PT_ ## entry, offsetof(struct pt_regs, entry))
22         ENTRY(orig_r10);
23         ENTRY(r13);
24         ENTRY(r12);
25         ENTRY(r11);
26         ENTRY(r10);
27         ENTRY(r9);
28 #ifdef CONFIG_ETRAX_ARCH_V32
29         ENTRY(acr);
30         ENTRY(srs);
31 #endif
32         ENTRY(mof);
33 #ifdef CONFIG_ETRAX_ARCH_V10
34         ENTRY(dccr);
35 #else
36         ENTRY(ccs);
37 #endif
38         ENTRY(srp);
39         BLANK();
40 #undef ENTRY
41 #define ENTRY(entry) DEFINE(TI_ ## entry, offsetof(struct thread_info, entry))
42         ENTRY(task);
43         ENTRY(flags);
44         ENTRY(preempt_count);
45         BLANK();
46 #undef ENTRY
47 #define ENTRY(entry) DEFINE(THREAD_ ## entry, offsetof(struct thread_struct, entry))
48         ENTRY(ksp);
49         ENTRY(usp);
50 #ifdef CONFIG_ETRAX_ARCH_V10
51         ENTRY(dccr);
52 #else
53         ENTRY(ccs);
54 #endif
55         BLANK();
56 #undef ENTRY
57 #define ENTRY(entry) DEFINE(TASK_ ## entry, offsetof(struct task_struct, entry))
58         ENTRY(pid);
59         BLANK();
60         DEFINE(LCLONE_VM, CLONE_VM);
61         DEFINE(LCLONE_UNTRACED, CLONE_UNTRACED);
62         return 0;
63 }