Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[cris-mirror.git] / arch / sh / include / uapi / asm / ptrace_32.h
blobdc8a26015018afbad8fa672de3ce41fbb64bbd19
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
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 * -----------------------------
15 * We follows above, except:
16 * 16 --- program counter (PC)
17 * 22 --- syscall #
18 * 23 --- floating point communication register
20 #define REG_REG0 0
21 #define REG_REG15 15
23 #define REG_PC 16
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
31 #define REG_SYSCALL 22
33 #define REG_FPREG0 23
34 #define REG_FPREG15 38
35 #define REG_XFREG0 39
36 #define REG_XFREG15 54
38 #define REG_FPSCR 55
39 #define REG_FPUL 56
42 * This struct defines the way the registers are stored on the
43 * kernel stack during a system call or other kernel entry.
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;
57 * This struct defines the way the DSP registers are stored on the
58 * kernel stack during a system call or other kernel entry.
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;
78 #endif /* _UAPI__ASM_SH_PTRACE_32_H */