GNU Linux-libre 4.14.266-gnu1
[releases.git] / arch / sh / include / uapi / asm / ptrace_32.h
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _UAPI__ASM_SH_PTRACE_32_H
3 #define _UAPI__ASM_SH_PTRACE_32_H
4
5 /*
6  * GCC defines register number like this:
7  * -----------------------------
8  *       0 - 15 are integer registers
9  *      17 - 22 are control/special registers
10  *      24 - 39 fp registers
11  *      40 - 47 xd registers
12  *      48 -    fpscr register
13  * -----------------------------
14  *
15  * We follows above, except:
16  *      16 --- program counter (PC)
17  *      22 --- syscall #
18  *      23 --- floating point communication register
19  */
20 #define REG_REG0         0
21 #define REG_REG15       15
22
23 #define REG_PC          16
24
25 #define REG_PR          17
26 #define REG_SR          18
27 #define REG_GBR         19
28 #define REG_MACH        20
29 #define REG_MACL        21
30
31 #define REG_SYSCALL     22
32
33 #define REG_FPREG0      23
34 #define REG_FPREG15     38
35 #define REG_XFREG0      39
36 #define REG_XFREG15     54
37
38 #define REG_FPSCR       55
39 #define REG_FPUL        56
40
41 /*
42  * This struct defines the way the registers are stored on the
43  * kernel stack during a system call or other kernel entry.
44  */
45 struct pt_regs {
46         unsigned long regs[16];
47         unsigned long pc;
48         unsigned long pr;
49         unsigned long sr;
50         unsigned long gbr;
51         unsigned long mach;
52         unsigned long macl;
53         long tra;
54 };
55
56 /*
57  * This struct defines the way the DSP registers are stored on the
58  * kernel stack during a system call or other kernel entry.
59  */
60 struct pt_dspregs {
61         unsigned long   a1;
62         unsigned long   a0g;
63         unsigned long   a1g;
64         unsigned long   m0;
65         unsigned long   m1;
66         unsigned long   a0;
67         unsigned long   x0;
68         unsigned long   x1;
69         unsigned long   y0;
70         unsigned long   y1;
71         unsigned long   dsr;
72         unsigned long   rs;
73         unsigned long   re;
74         unsigned long   mod;
75 };
76
77
78 #endif /* _UAPI__ASM_SH_PTRACE_32_H */