| Mikael Starvik | 51533b6 | 2005-07-27 11:44:44 -0700 | [diff] [blame] | 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 | } |