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
, ksp
));
22 DEFINE(THREAD_SR
, offsetof(struct thread_struct
, sr
));
23 DEFINE(THREAD_FESR
, offsetof(struct thread_struct
, user_fp
.fesr
));
24 DEFINE(THREAD_FCR
, offsetof(struct thread_struct
, user_fp
.fcr
));
25 DEFINE(THREAD_FPREG
, offsetof(struct thread_struct
, user_fp
.vr
));
27 /* offsets into the thread_info struct */
28 DEFINE(TINFO_FLAGS
, offsetof(struct thread_info
, flags
));
29 DEFINE(TINFO_PREEMPT
, offsetof(struct thread_info
, preempt_count
));
30 DEFINE(TINFO_ADDR_LIMIT
, offsetof(struct thread_info
, addr_limit
));
31 DEFINE(TINFO_TP_VALUE
, offsetof(struct thread_info
, tp_value
));
32 DEFINE(TINFO_TASK
, offsetof(struct thread_info
, task
));
34 /* offsets into the pt_regs */
35 DEFINE(PT_PC
, offsetof(struct pt_regs
, pc
));
36 DEFINE(PT_ORIG_AO
, offsetof(struct pt_regs
, orig_a0
));
37 DEFINE(PT_SR
, offsetof(struct pt_regs
, sr
));
39 DEFINE(PT_A0
, offsetof(struct pt_regs
, a0
));
40 DEFINE(PT_A1
, offsetof(struct pt_regs
, a1
));
41 DEFINE(PT_A2
, offsetof(struct pt_regs
, a2
));
42 DEFINE(PT_A3
, offsetof(struct pt_regs
, a3
));
43 DEFINE(PT_REGS0
, offsetof(struct pt_regs
, regs
[0]));
44 DEFINE(PT_REGS1
, offsetof(struct pt_regs
, regs
[1]));
45 DEFINE(PT_REGS2
, offsetof(struct pt_regs
, regs
[2]));
46 DEFINE(PT_REGS3
, offsetof(struct pt_regs
, regs
[3]));
47 DEFINE(PT_REGS4
, offsetof(struct pt_regs
, regs
[4]));
48 DEFINE(PT_REGS5
, offsetof(struct pt_regs
, regs
[5]));
49 DEFINE(PT_REGS6
, offsetof(struct pt_regs
, regs
[6]));
50 DEFINE(PT_REGS7
, offsetof(struct pt_regs
, regs
[7]));
51 DEFINE(PT_REGS8
, offsetof(struct pt_regs
, regs
[8]));
52 DEFINE(PT_REGS9
, offsetof(struct pt_regs
, regs
[9]));
53 DEFINE(PT_R15
, offsetof(struct pt_regs
, lr
));
54 #if defined(__CSKYABIV2__)
55 DEFINE(PT_R16
, offsetof(struct pt_regs
, exregs
[0]));
56 DEFINE(PT_R17
, offsetof(struct pt_regs
, exregs
[1]));
57 DEFINE(PT_R18
, offsetof(struct pt_regs
, exregs
[2]));
58 DEFINE(PT_R19
, offsetof(struct pt_regs
, exregs
[3]));
59 DEFINE(PT_R20
, offsetof(struct pt_regs
, exregs
[4]));
60 DEFINE(PT_R21
, offsetof(struct pt_regs
, exregs
[5]));
61 DEFINE(PT_R22
, offsetof(struct pt_regs
, exregs
[6]));
62 DEFINE(PT_R23
, offsetof(struct pt_regs
, exregs
[7]));
63 DEFINE(PT_R24
, offsetof(struct pt_regs
, exregs
[8]));
64 DEFINE(PT_R25
, offsetof(struct pt_regs
, exregs
[9]));
65 DEFINE(PT_R26
, offsetof(struct pt_regs
, exregs
[10]));
66 DEFINE(PT_R27
, offsetof(struct pt_regs
, exregs
[11]));
67 DEFINE(PT_R28
, offsetof(struct pt_regs
, exregs
[12]));
68 DEFINE(PT_R29
, offsetof(struct pt_regs
, exregs
[13]));
69 DEFINE(PT_R30
, offsetof(struct pt_regs
, exregs
[14]));
70 DEFINE(PT_R31
, offsetof(struct pt_regs
, exregs
[15]));
71 DEFINE(PT_RHI
, offsetof(struct pt_regs
, rhi
));
72 DEFINE(PT_RLO
, offsetof(struct pt_regs
, rlo
));
74 DEFINE(PT_USP
, offsetof(struct pt_regs
, usp
));
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
);