2 * This program is used to generate definitions needed by
3 * assembly language modules.
5 * We use the technique used in the OSF Mach kernel code:
6 * generate asm statements containing #defines,
7 * compile this file to assembler, and then extract the
8 * #defines from the assembly-language output.
11 #include <linux/stddef.h>
12 #include <linux/sched.h>
13 #include <linux/kernel_stat.h>
14 #include <linux/ptrace.h>
15 #include <linux/hardirq.h>
16 #include <linux/kbuild.h>
18 #include <asm/ptrace.h>
22 /* offsets into the task struct */
23 OFFSET(TASK_STATE
, task_struct
, state
);
24 OFFSET(TASK_FLAGS
, task_struct
, flags
);
25 OFFSET(TASK_PTRACE
, task_struct
, ptrace
);
26 OFFSET(TASK_BLOCKED
, task_struct
, blocked
);
27 OFFSET(TASK_THREAD
, task_struct
, thread
);
28 OFFSET(TASK_THREAD_INFO
, task_struct
, stack
);
29 OFFSET(TASK_MM
, task_struct
, mm
);
30 OFFSET(TASK_ACTIVE_MM
, task_struct
, active_mm
);
32 /* offsets into the irq_cpustat_t struct */
33 DEFINE(CPUSTAT_SOFTIRQ_PENDING
, offsetof(irq_cpustat_t
,
36 /* offsets into the thread struct */
37 OFFSET(THREAD_KSP
, thread_struct
, ksp
);
38 OFFSET(THREAD_USP
, thread_struct
, usp
);
39 OFFSET(THREAD_CCR
, thread_struct
, ccr
);
41 /* offsets into the pt_regs struct */
42 DEFINE(LER0
, offsetof(struct pt_regs
, er0
) - sizeof(long));
43 DEFINE(LER1
, offsetof(struct pt_regs
, er1
) - sizeof(long));
44 DEFINE(LER2
, offsetof(struct pt_regs
, er2
) - sizeof(long));
45 DEFINE(LER3
, offsetof(struct pt_regs
, er3
) - sizeof(long));
46 DEFINE(LER4
, offsetof(struct pt_regs
, er4
) - sizeof(long));
47 DEFINE(LER5
, offsetof(struct pt_regs
, er5
) - sizeof(long));
48 DEFINE(LER6
, offsetof(struct pt_regs
, er6
) - sizeof(long));
49 DEFINE(LORIG
, offsetof(struct pt_regs
, orig_er0
) - sizeof(long));
50 DEFINE(LSP
, offsetof(struct pt_regs
, sp
) - sizeof(long));
51 DEFINE(LCCR
, offsetof(struct pt_regs
, ccr
) - sizeof(long));
52 DEFINE(LVEC
, offsetof(struct pt_regs
, vector
) - sizeof(long));
53 #if defined(CONFIG_CPU_H8S)
54 DEFINE(LEXR
, offsetof(struct pt_regs
, exr
) - sizeof(long));
56 DEFINE(LRET
, offsetof(struct pt_regs
, pc
) - sizeof(long));
58 DEFINE(PT_PTRACED
, PT_PTRACED
);
60 /* offsets in thread_info structure */
61 OFFSET(TI_TASK
, thread_info
, task
);
62 OFFSET(TI_FLAGS
, thread_info
, flags
);
63 OFFSET(TI_CPU
, thread_info
, cpu
);
64 OFFSET(TI_PRE
, thread_info
, preempt_count
);