Pull button into test branch
[linux-2.6] / arch / cris / arch-v32 / 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 int main(void)
16 {
17 #define ENTRY(entry) DEFINE(PT_ ## entry, offsetof(struct pt_regs, entry))
18         ENTRY(orig_r10);
19         ENTRY(r13);
20         ENTRY(r12);
21         ENTRY(r11);
22         ENTRY(r10);
23         ENTRY(r9);
24         ENTRY(acr);
25         ENTRY(srs);
26         ENTRY(mof);
27         ENTRY(ccs);
28         ENTRY(srp);
29         BLANK();
30 #undef ENTRY
31 #define ENTRY(entry) DEFINE(TI_ ## entry, offsetof(struct thread_info, entry))
32         ENTRY(task);
33         ENTRY(flags);
34         ENTRY(preempt_count);
35         BLANK();
36 #undef ENTRY
37 #define ENTRY(entry) DEFINE(THREAD_ ## entry, offsetof(struct thread_struct, entry))
38         ENTRY(ksp);
39         ENTRY(usp);
40         ENTRY(ccs);
41         BLANK();
42 #undef ENTRY
43 #define ENTRY(entry) DEFINE(TASK_ ## entry, offsetof(struct task_struct, entry))
44         ENTRY(pid);
45         BLANK();
46         DEFINE(LCLONE_VM, CLONE_VM);
47         DEFINE(LCLONE_UNTRACED, CLONE_UNTRACED);
48         return 0;
49 }