]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - arch/sh/include/uapi/asm/ptrace_32.h
Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/ac97-mfd', 'asoc/topic...
[mirror_ubuntu-focal-kernel.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 */