1 // SPDX-License-Identifier: GPL-2.0
2 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
4 #include <linux/sched.h>
5 #include <linux/kernel_stat.h>
6 #include <linux/kbuild.h>
7 #include <abi/regdef.h>
11 /* offsets into the task struct */
12 DEFINE(TASK_STATE
, offsetof(struct task_struct
, state
));
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
));
20 /* offsets into the thread struct */
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
));
26 /* offsets into the thread_info struct */
27 DEFINE(TINFO_FLAGS
, offsetof(struct thread_info
, flags
));
28 DEFINE(TINFO_PREEMPT
, offsetof(struct thread_info
, preempt_count
));
29 DEFINE(TINFO_ADDR_LIMIT
, offsetof(struct thread_info
, addr_limit
));
30 DEFINE(TINFO_TP_VALUE
, offsetof(struct thread_info
, tp_value
));
31 DEFINE(TINFO_TASK
, offsetof(struct thread_info
, task
));
33 /* offsets into the pt_regs */
34 DEFINE(PT_PC
, offsetof(struct pt_regs
, pc
));
35 DEFINE(PT_ORIG_AO
, offsetof(struct pt_regs
, orig_a0
));
36 DEFINE(PT_SR
, offsetof(struct pt_regs
, sr
));
38 DEFINE(PT_A0
, offsetof(struct pt_regs
, a0
));
39 DEFINE(PT_A1
, offsetof(struct pt_regs
, a1
));
40 DEFINE(PT_A2
, offsetof(struct pt_regs
, a2
));
41 DEFINE(PT_A3
, offsetof(struct pt_regs
, a3
));
42 DEFINE(PT_REGS0
, offsetof(struct pt_regs
, regs
[0]));
43 DEFINE(PT_REGS1
, offsetof(struct pt_regs
, regs
[1]));
44 DEFINE(PT_REGS2
, offsetof(struct pt_regs
, regs
[2]));
45 DEFINE(PT_REGS3
, offsetof(struct pt_regs
, regs
[3]));
46 DEFINE(PT_REGS4
, offsetof(struct pt_regs
, regs
[4]));
47 DEFINE(PT_REGS5
, offsetof(struct pt_regs
, regs
[5]));
48 DEFINE(PT_REGS6
, offsetof(struct pt_regs
, regs
[6]));
49 DEFINE(PT_REGS7
, offsetof(struct pt_regs
, regs
[7]));
50 DEFINE(PT_REGS8
, offsetof(struct pt_regs
, regs
[8]));
51 DEFINE(PT_REGS9
, offsetof(struct pt_regs
, regs
[9]));
52 DEFINE(PT_R15
, offsetof(struct pt_regs
, lr
));
53 #if defined(__CSKYABIV2__)
54 DEFINE(PT_R16
, offsetof(struct pt_regs
, exregs
[0]));
55 DEFINE(PT_R17
, offsetof(struct pt_regs
, exregs
[1]));
56 DEFINE(PT_R18
, offsetof(struct pt_regs
, exregs
[2]));
57 DEFINE(PT_R19
, offsetof(struct pt_regs
, exregs
[3]));
58 DEFINE(PT_R20
, offsetof(struct pt_regs
, exregs
[4]));
59 DEFINE(PT_R21
, offsetof(struct pt_regs
, exregs
[5]));
60 DEFINE(PT_R22
, offsetof(struct pt_regs
, exregs
[6]));
61 DEFINE(PT_R23
, offsetof(struct pt_regs
, exregs
[7]));
62 DEFINE(PT_R24
, offsetof(struct pt_regs
, exregs
[8]));
63 DEFINE(PT_R25
, offsetof(struct pt_regs
, exregs
[9]));
64 DEFINE(PT_R26
, offsetof(struct pt_regs
, exregs
[10]));
65 DEFINE(PT_R27
, offsetof(struct pt_regs
, exregs
[11]));
66 DEFINE(PT_R28
, offsetof(struct pt_regs
, exregs
[12]));
67 DEFINE(PT_R29
, offsetof(struct pt_regs
, exregs
[13]));
68 DEFINE(PT_R30
, offsetof(struct pt_regs
, exregs
[14]));
69 DEFINE(PT_R31
, offsetof(struct pt_regs
, exregs
[15]));
70 DEFINE(PT_RHI
, offsetof(struct pt_regs
, rhi
));
71 DEFINE(PT_RLO
, offsetof(struct pt_regs
, rlo
));
73 DEFINE(PT_USP
, offsetof(struct pt_regs
, usp
));
74 DEFINE(PT_FRAME_SIZE
, sizeof(struct pt_regs
));
76 /* offsets into the irq_cpustat_t struct */
77 DEFINE(CPUSTAT_SOFTIRQ_PENDING
, offsetof(irq_cpustat_t
,
81 DEFINE(SIGSEGV
, SIGSEGV
);
82 DEFINE(SIGTRAP
, SIGTRAP
);