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