| 1 | |
| 2 | |
| 3 | #define COMPILE_OFFSETS
|
| 4 |
|
| 5 | #include <linux/sched.h>
|
| 6 | #include <linux/kernel_stat.h>
|
| 7 | #include <linux/kbuild.h>
|
| 8 | #include <abi/regdef.h>
|
| 9 |
|
| 10 | int main(void)
|
| 11 | {
|
| 12 |
|
| 13 | DEFINE(TASK_THREAD_INFO, offsetof(struct task_struct, stack));
|
| 14 | DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
|
| 15 | DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
|
| 16 | DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
|
| 17 | DEFINE(TASK_MM, offsetof(struct task_struct, mm));
|
| 18 | DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
|
| 19 |
|
| 20 |
|
| 21 | DEFINE(THREAD_KSP, offsetof(struct thread_struct, sp));
|
| 22 | DEFINE(THREAD_FESR, offsetof(struct thread_struct, user_fp.fesr));
|
| 23 | DEFINE(THREAD_FCR, offsetof(struct thread_struct, user_fp.fcr));
|
| 24 | DEFINE(THREAD_FPREG, offsetof(struct thread_struct, user_fp.vr));
|
| 25 |
|
| 26 |
|
| 27 | DEFINE(TINFO_FLAGS, offsetof(struct thread_info, flags));
|
| 28 | DEFINE(TINFO_PREEMPT, offsetof(struct thread_info, preempt_count));
|
| 29 | DEFINE(TINFO_TP_VALUE, offsetof(struct thread_info, tp_value));
|
| 30 | DEFINE(TINFO_TASK, offsetof(struct thread_info, task));
|
| 31 |
|
| 32 |
|
| 33 | DEFINE(PT_PC, offsetof(struct pt_regs, pc));
|
| 34 | DEFINE(PT_ORIG_AO, offsetof(struct pt_regs, orig_a0));
|
| 35 | DEFINE(PT_SR, offsetof(struct pt_regs, sr));
|
| 36 |
|
| 37 | DEFINE(PT_A0, offsetof(struct pt_regs, a0));
|
| 38 | DEFINE(PT_A1, offsetof(struct pt_regs, a1));
|
| 39 | DEFINE(PT_A2, offsetof(struct pt_regs, a2));
|
| 40 | DEFINE(PT_A3, offsetof(struct pt_regs, a3));
|
| 41 | DEFINE(PT_REGS0, offsetof(struct pt_regs, regs[0]));
|
| 42 | DEFINE(PT_REGS1, offsetof(struct pt_regs, regs[1]));
|
| 43 | DEFINE(PT_REGS2, offsetof(struct pt_regs, regs[2]));
|
| 44 | DEFINE(PT_REGS3, offsetof(struct pt_regs, regs[3]));
|
| 45 | DEFINE(PT_REGS4, offsetof(struct pt_regs, regs[4]));
|
| 46 | DEFINE(PT_REGS5, offsetof(struct pt_regs, regs[5]));
|
| 47 | DEFINE(PT_REGS6, offsetof(struct pt_regs, regs[6]));
|
| 48 | DEFINE(PT_REGS7, offsetof(struct pt_regs, regs[7]));
|
| 49 | DEFINE(PT_REGS8, offsetof(struct pt_regs, regs[8]));
|
| 50 | DEFINE(PT_REGS9, offsetof(struct pt_regs, regs[9]));
|
| 51 | DEFINE(PT_R15, offsetof(struct pt_regs, lr));
|
| 52 | #if defined(__CSKYABIV2__)
|
| 53 | DEFINE(PT_R16, offsetof(struct pt_regs, exregs[0]));
|
| 54 | DEFINE(PT_R17, offsetof(struct pt_regs, exregs[1]));
|
| 55 | DEFINE(PT_R18, offsetof(struct pt_regs, exregs[2]));
|
| 56 | DEFINE(PT_R19, offsetof(struct pt_regs, exregs[3]));
|
| 57 | DEFINE(PT_R20, offsetof(struct pt_regs, exregs[4]));
|
| 58 | DEFINE(PT_R21, offsetof(struct pt_regs, exregs[5]));
|
| 59 | DEFINE(PT_R22, offsetof(struct pt_regs, exregs[6]));
|
| 60 | DEFINE(PT_R23, offsetof(struct pt_regs, exregs[7]));
|
| 61 | DEFINE(PT_R24, offsetof(struct pt_regs, exregs[8]));
|
| 62 | DEFINE(PT_R25, offsetof(struct pt_regs, exregs[9]));
|
| 63 | DEFINE(PT_R26, offsetof(struct pt_regs, exregs[10]));
|
| 64 | DEFINE(PT_R27, offsetof(struct pt_regs, exregs[11]));
|
| 65 | DEFINE(PT_R28, offsetof(struct pt_regs, exregs[12]));
|
| 66 | DEFINE(PT_R29, offsetof(struct pt_regs, exregs[13]));
|
| 67 | DEFINE(PT_R30, offsetof(struct pt_regs, exregs[14]));
|
| 68 | DEFINE(PT_R31, offsetof(struct pt_regs, exregs[15]));
|
| 69 | DEFINE(PT_RHI, offsetof(struct pt_regs, rhi));
|
| 70 | DEFINE(PT_RLO, offsetof(struct pt_regs, rlo));
|
| 71 | #endif
|
| 72 | DEFINE(PT_USP, offsetof(struct pt_regs, usp));
|
| 73 | DEFINE(PT_FRAME_SIZE, sizeof(struct pt_regs));
|
| 74 |
|
| 75 |
|
| 76 | DEFINE(CPUSTAT_SOFTIRQ_PENDING, offsetof(irq_cpustat_t,
|
| 77 | __softirq_pending));
|
| 78 |
|
| 79 |
|
| 80 | DEFINE(SIGSEGV, SIGSEGV);
|
| 81 | DEFINE(SIGTRAP, SIGTRAP);
|
| 82 |
|
| 83 | return 0;
|
| 84 | }
|