18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
28c2ecf20Sopenharmony_ci#ifndef _UAPI__SPARC_PTRACE_H
38c2ecf20Sopenharmony_ci#define _UAPI__SPARC_PTRACE_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#if defined(__sparc__) && defined(__arch64__)
68c2ecf20Sopenharmony_ci/* 64 bit sparc */
78c2ecf20Sopenharmony_ci#include <asm/pstate.h>
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/* This struct defines the way the registers are stored on the
108c2ecf20Sopenharmony_ci * stack during a system call and basically all traps.
118c2ecf20Sopenharmony_ci */
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci/* This magic value must have the low 9 bits clear,
148c2ecf20Sopenharmony_ci * as that is where we encode the %tt value, see below.
158c2ecf20Sopenharmony_ci */
168c2ecf20Sopenharmony_ci#define PT_REGS_MAGIC 0x57ac6c00
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#include <linux/types.h>
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_cistruct pt_regs {
238c2ecf20Sopenharmony_ci	unsigned long u_regs[16]; /* globals and ins */
248c2ecf20Sopenharmony_ci	unsigned long tstate;
258c2ecf20Sopenharmony_ci	unsigned long tpc;
268c2ecf20Sopenharmony_ci	unsigned long tnpc;
278c2ecf20Sopenharmony_ci	unsigned int y;
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	/* We encode a magic number, PT_REGS_MAGIC, along
308c2ecf20Sopenharmony_ci	 * with the %tt (trap type) register value at trap
318c2ecf20Sopenharmony_ci	 * entry time.  The magic number allows us to identify
328c2ecf20Sopenharmony_ci	 * accurately a trap stack frame in the stack
338c2ecf20Sopenharmony_ci	 * unwinder, and the %tt value allows us to test
348c2ecf20Sopenharmony_ci	 * things like "in a system call" etc. for an arbitray
358c2ecf20Sopenharmony_ci	 * process.
368c2ecf20Sopenharmony_ci	 *
378c2ecf20Sopenharmony_ci	 * The PT_REGS_MAGIC is chosen such that it can be
388c2ecf20Sopenharmony_ci	 * loaded completely using just a sethi instruction.
398c2ecf20Sopenharmony_ci	 */
408c2ecf20Sopenharmony_ci	unsigned int magic;
418c2ecf20Sopenharmony_ci};
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_cistruct pt_regs32 {
448c2ecf20Sopenharmony_ci	unsigned int psr;
458c2ecf20Sopenharmony_ci	unsigned int pc;
468c2ecf20Sopenharmony_ci	unsigned int npc;
478c2ecf20Sopenharmony_ci	unsigned int y;
488c2ecf20Sopenharmony_ci	unsigned int u_regs[16]; /* globals and ins */
498c2ecf20Sopenharmony_ci};
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci/* A V9 register window */
528c2ecf20Sopenharmony_cistruct reg_window {
538c2ecf20Sopenharmony_ci	unsigned long locals[8];
548c2ecf20Sopenharmony_ci	unsigned long ins[8];
558c2ecf20Sopenharmony_ci};
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci/* A 32-bit register window. */
588c2ecf20Sopenharmony_cistruct reg_window32 {
598c2ecf20Sopenharmony_ci	unsigned int locals[8];
608c2ecf20Sopenharmony_ci	unsigned int ins[8];
618c2ecf20Sopenharmony_ci};
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci/* A V9 Sparc stack frame */
648c2ecf20Sopenharmony_cistruct sparc_stackf {
658c2ecf20Sopenharmony_ci	unsigned long locals[8];
668c2ecf20Sopenharmony_ci        unsigned long ins[6];
678c2ecf20Sopenharmony_ci	struct sparc_stackf *fp;
688c2ecf20Sopenharmony_ci	unsigned long callers_pc;
698c2ecf20Sopenharmony_ci	char *structptr;
708c2ecf20Sopenharmony_ci	unsigned long xargs[6];
718c2ecf20Sopenharmony_ci	unsigned long xxargs[1];
728c2ecf20Sopenharmony_ci};
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci/* A 32-bit Sparc stack frame */
758c2ecf20Sopenharmony_cistruct sparc_stackf32 {
768c2ecf20Sopenharmony_ci	unsigned int locals[8];
778c2ecf20Sopenharmony_ci        unsigned int ins[6];
788c2ecf20Sopenharmony_ci	unsigned int fp;
798c2ecf20Sopenharmony_ci	unsigned int callers_pc;
808c2ecf20Sopenharmony_ci	unsigned int structptr;
818c2ecf20Sopenharmony_ci	unsigned int xargs[6];
828c2ecf20Sopenharmony_ci	unsigned int xxargs[1];
838c2ecf20Sopenharmony_ci};
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_cistruct sparc_trapf {
868c2ecf20Sopenharmony_ci	unsigned long locals[8];
878c2ecf20Sopenharmony_ci	unsigned long ins[8];
888c2ecf20Sopenharmony_ci	unsigned long _unused;
898c2ecf20Sopenharmony_ci	struct pt_regs *regs;
908c2ecf20Sopenharmony_ci};
918c2ecf20Sopenharmony_ci#endif /* (!__ASSEMBLY__) */
928c2ecf20Sopenharmony_ci#else
938c2ecf20Sopenharmony_ci/* 32 bit sparc */
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci#include <asm/psr.h>
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci/* This struct defines the way the registers are stored on the
988c2ecf20Sopenharmony_ci * stack during a system call and basically all traps.
998c2ecf20Sopenharmony_ci */
1008c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci#include <linux/types.h>
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_cistruct pt_regs {
1058c2ecf20Sopenharmony_ci	unsigned long psr;
1068c2ecf20Sopenharmony_ci	unsigned long pc;
1078c2ecf20Sopenharmony_ci	unsigned long npc;
1088c2ecf20Sopenharmony_ci	unsigned long y;
1098c2ecf20Sopenharmony_ci	unsigned long u_regs[16]; /* globals and ins */
1108c2ecf20Sopenharmony_ci};
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci/* A 32-bit register window. */
1138c2ecf20Sopenharmony_cistruct reg_window32 {
1148c2ecf20Sopenharmony_ci	unsigned long locals[8];
1158c2ecf20Sopenharmony_ci	unsigned long ins[8];
1168c2ecf20Sopenharmony_ci};
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci/* A Sparc stack frame */
1198c2ecf20Sopenharmony_cistruct sparc_stackf {
1208c2ecf20Sopenharmony_ci	unsigned long locals[8];
1218c2ecf20Sopenharmony_ci        unsigned long ins[6];
1228c2ecf20Sopenharmony_ci	struct sparc_stackf *fp;
1238c2ecf20Sopenharmony_ci	unsigned long callers_pc;
1248c2ecf20Sopenharmony_ci	char *structptr;
1258c2ecf20Sopenharmony_ci	unsigned long xargs[6];
1268c2ecf20Sopenharmony_ci	unsigned long xxargs[1];
1278c2ecf20Sopenharmony_ci};
1288c2ecf20Sopenharmony_ci#endif /* (!__ASSEMBLY__) */
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ci#endif /* (defined(__sparc__) && defined(__arch64__))*/
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci#define TRACEREG_SZ	sizeof(struct pt_regs)
1358c2ecf20Sopenharmony_ci#define STACKFRAME_SZ	sizeof(struct sparc_stackf)
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci#define TRACEREG32_SZ	sizeof(struct pt_regs32)
1388c2ecf20Sopenharmony_ci#define STACKFRAME32_SZ	sizeof(struct sparc_stackf32)
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci#endif /* (!__ASSEMBLY__) */
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci#define UREG_G0        0
1438c2ecf20Sopenharmony_ci#define UREG_G1        1
1448c2ecf20Sopenharmony_ci#define UREG_G2        2
1458c2ecf20Sopenharmony_ci#define UREG_G3        3
1468c2ecf20Sopenharmony_ci#define UREG_G4        4
1478c2ecf20Sopenharmony_ci#define UREG_G5        5
1488c2ecf20Sopenharmony_ci#define UREG_G6        6
1498c2ecf20Sopenharmony_ci#define UREG_G7        7
1508c2ecf20Sopenharmony_ci#define UREG_I0        8
1518c2ecf20Sopenharmony_ci#define UREG_I1        9
1528c2ecf20Sopenharmony_ci#define UREG_I2        10
1538c2ecf20Sopenharmony_ci#define UREG_I3        11
1548c2ecf20Sopenharmony_ci#define UREG_I4        12
1558c2ecf20Sopenharmony_ci#define UREG_I5        13
1568c2ecf20Sopenharmony_ci#define UREG_I6        14
1578c2ecf20Sopenharmony_ci#define UREG_I7        15
1588c2ecf20Sopenharmony_ci#define UREG_FP        UREG_I6
1598c2ecf20Sopenharmony_ci#define UREG_RETPC     UREG_I7
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci#if defined(__sparc__) && defined(__arch64__)
1628c2ecf20Sopenharmony_ci/* 64 bit sparc */
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci#else /* __ASSEMBLY__ */
1688c2ecf20Sopenharmony_ci/* For assembly code. */
1698c2ecf20Sopenharmony_ci#define TRACEREG_SZ		0xa0
1708c2ecf20Sopenharmony_ci#define STACKFRAME_SZ		0xc0
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ci#define TRACEREG32_SZ		0x50
1738c2ecf20Sopenharmony_ci#define STACKFRAME32_SZ		0x60
1748c2ecf20Sopenharmony_ci#endif /* __ASSEMBLY__ */
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci#else /* (defined(__sparc__) && defined(__arch64__)) */
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci/* 32 bit sparc */
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ci#else /* (!__ASSEMBLY__) */
1848c2ecf20Sopenharmony_ci/* For assembly code. */
1858c2ecf20Sopenharmony_ci#define TRACEREG_SZ       0x50
1868c2ecf20Sopenharmony_ci#define STACKFRAME_SZ     0x60
1878c2ecf20Sopenharmony_ci#endif /* (!__ASSEMBLY__) */
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci#endif /* (defined(__sparc__) && defined(__arch64__)) */
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ci/* These are for pt_regs. */
1938c2ecf20Sopenharmony_ci#define PT_V9_G0     0x00
1948c2ecf20Sopenharmony_ci#define PT_V9_G1     0x08
1958c2ecf20Sopenharmony_ci#define PT_V9_G2     0x10
1968c2ecf20Sopenharmony_ci#define PT_V9_G3     0x18
1978c2ecf20Sopenharmony_ci#define PT_V9_G4     0x20
1988c2ecf20Sopenharmony_ci#define PT_V9_G5     0x28
1998c2ecf20Sopenharmony_ci#define PT_V9_G6     0x30
2008c2ecf20Sopenharmony_ci#define PT_V9_G7     0x38
2018c2ecf20Sopenharmony_ci#define PT_V9_I0     0x40
2028c2ecf20Sopenharmony_ci#define PT_V9_I1     0x48
2038c2ecf20Sopenharmony_ci#define PT_V9_I2     0x50
2048c2ecf20Sopenharmony_ci#define PT_V9_I3     0x58
2058c2ecf20Sopenharmony_ci#define PT_V9_I4     0x60
2068c2ecf20Sopenharmony_ci#define PT_V9_I5     0x68
2078c2ecf20Sopenharmony_ci#define PT_V9_I6     0x70
2088c2ecf20Sopenharmony_ci#define PT_V9_FP     PT_V9_I6
2098c2ecf20Sopenharmony_ci#define PT_V9_I7     0x78
2108c2ecf20Sopenharmony_ci#define PT_V9_TSTATE 0x80
2118c2ecf20Sopenharmony_ci#define PT_V9_TPC    0x88
2128c2ecf20Sopenharmony_ci#define PT_V9_TNPC   0x90
2138c2ecf20Sopenharmony_ci#define PT_V9_Y      0x98
2148c2ecf20Sopenharmony_ci#define PT_V9_MAGIC  0x9c
2158c2ecf20Sopenharmony_ci#define PT_TSTATE	PT_V9_TSTATE
2168c2ecf20Sopenharmony_ci#define PT_TPC		PT_V9_TPC
2178c2ecf20Sopenharmony_ci#define PT_TNPC		PT_V9_TNPC
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci/* These for pt_regs32. */
2208c2ecf20Sopenharmony_ci#define PT_PSR    0x0
2218c2ecf20Sopenharmony_ci#define PT_PC     0x4
2228c2ecf20Sopenharmony_ci#define PT_NPC    0x8
2238c2ecf20Sopenharmony_ci#define PT_Y      0xc
2248c2ecf20Sopenharmony_ci#define PT_G0     0x10
2258c2ecf20Sopenharmony_ci#define PT_WIM    PT_G0
2268c2ecf20Sopenharmony_ci#define PT_G1     0x14
2278c2ecf20Sopenharmony_ci#define PT_G2     0x18
2288c2ecf20Sopenharmony_ci#define PT_G3     0x1c
2298c2ecf20Sopenharmony_ci#define PT_G4     0x20
2308c2ecf20Sopenharmony_ci#define PT_G5     0x24
2318c2ecf20Sopenharmony_ci#define PT_G6     0x28
2328c2ecf20Sopenharmony_ci#define PT_G7     0x2c
2338c2ecf20Sopenharmony_ci#define PT_I0     0x30
2348c2ecf20Sopenharmony_ci#define PT_I1     0x34
2358c2ecf20Sopenharmony_ci#define PT_I2     0x38
2368c2ecf20Sopenharmony_ci#define PT_I3     0x3c
2378c2ecf20Sopenharmony_ci#define PT_I4     0x40
2388c2ecf20Sopenharmony_ci#define PT_I5     0x44
2398c2ecf20Sopenharmony_ci#define PT_I6     0x48
2408c2ecf20Sopenharmony_ci#define PT_FP     PT_I6
2418c2ecf20Sopenharmony_ci#define PT_I7     0x4c
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ci/* Reg_window offsets */
2448c2ecf20Sopenharmony_ci#define RW_V9_L0     0x00
2458c2ecf20Sopenharmony_ci#define RW_V9_L1     0x08
2468c2ecf20Sopenharmony_ci#define RW_V9_L2     0x10
2478c2ecf20Sopenharmony_ci#define RW_V9_L3     0x18
2488c2ecf20Sopenharmony_ci#define RW_V9_L4     0x20
2498c2ecf20Sopenharmony_ci#define RW_V9_L5     0x28
2508c2ecf20Sopenharmony_ci#define RW_V9_L6     0x30
2518c2ecf20Sopenharmony_ci#define RW_V9_L7     0x38
2528c2ecf20Sopenharmony_ci#define RW_V9_I0     0x40
2538c2ecf20Sopenharmony_ci#define RW_V9_I1     0x48
2548c2ecf20Sopenharmony_ci#define RW_V9_I2     0x50
2558c2ecf20Sopenharmony_ci#define RW_V9_I3     0x58
2568c2ecf20Sopenharmony_ci#define RW_V9_I4     0x60
2578c2ecf20Sopenharmony_ci#define RW_V9_I5     0x68
2588c2ecf20Sopenharmony_ci#define RW_V9_I6     0x70
2598c2ecf20Sopenharmony_ci#define RW_V9_I7     0x78
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci#define RW_L0     0x00
2628c2ecf20Sopenharmony_ci#define RW_L1     0x04
2638c2ecf20Sopenharmony_ci#define RW_L2     0x08
2648c2ecf20Sopenharmony_ci#define RW_L3     0x0c
2658c2ecf20Sopenharmony_ci#define RW_L4     0x10
2668c2ecf20Sopenharmony_ci#define RW_L5     0x14
2678c2ecf20Sopenharmony_ci#define RW_L6     0x18
2688c2ecf20Sopenharmony_ci#define RW_L7     0x1c
2698c2ecf20Sopenharmony_ci#define RW_I0     0x20
2708c2ecf20Sopenharmony_ci#define RW_I1     0x24
2718c2ecf20Sopenharmony_ci#define RW_I2     0x28
2728c2ecf20Sopenharmony_ci#define RW_I3     0x2c
2738c2ecf20Sopenharmony_ci#define RW_I4     0x30
2748c2ecf20Sopenharmony_ci#define RW_I5     0x34
2758c2ecf20Sopenharmony_ci#define RW_I6     0x38
2768c2ecf20Sopenharmony_ci#define RW_I7     0x3c
2778c2ecf20Sopenharmony_ci
2788c2ecf20Sopenharmony_ci/* Stack_frame offsets */
2798c2ecf20Sopenharmony_ci#define SF_V9_L0     0x00
2808c2ecf20Sopenharmony_ci#define SF_V9_L1     0x08
2818c2ecf20Sopenharmony_ci#define SF_V9_L2     0x10
2828c2ecf20Sopenharmony_ci#define SF_V9_L3     0x18
2838c2ecf20Sopenharmony_ci#define SF_V9_L4     0x20
2848c2ecf20Sopenharmony_ci#define SF_V9_L5     0x28
2858c2ecf20Sopenharmony_ci#define SF_V9_L6     0x30
2868c2ecf20Sopenharmony_ci#define SF_V9_L7     0x38
2878c2ecf20Sopenharmony_ci#define SF_V9_I0     0x40
2888c2ecf20Sopenharmony_ci#define SF_V9_I1     0x48
2898c2ecf20Sopenharmony_ci#define SF_V9_I2     0x50
2908c2ecf20Sopenharmony_ci#define SF_V9_I3     0x58
2918c2ecf20Sopenharmony_ci#define SF_V9_I4     0x60
2928c2ecf20Sopenharmony_ci#define SF_V9_I5     0x68
2938c2ecf20Sopenharmony_ci#define SF_V9_FP     0x70
2948c2ecf20Sopenharmony_ci#define SF_V9_PC     0x78
2958c2ecf20Sopenharmony_ci#define SF_V9_RETP   0x80
2968c2ecf20Sopenharmony_ci#define SF_V9_XARG0  0x88
2978c2ecf20Sopenharmony_ci#define SF_V9_XARG1  0x90
2988c2ecf20Sopenharmony_ci#define SF_V9_XARG2  0x98
2998c2ecf20Sopenharmony_ci#define SF_V9_XARG3  0xa0
3008c2ecf20Sopenharmony_ci#define SF_V9_XARG4  0xa8
3018c2ecf20Sopenharmony_ci#define SF_V9_XARG5  0xb0
3028c2ecf20Sopenharmony_ci#define SF_V9_XXARG  0xb8
3038c2ecf20Sopenharmony_ci
3048c2ecf20Sopenharmony_ci#define SF_L0     0x00
3058c2ecf20Sopenharmony_ci#define SF_L1     0x04
3068c2ecf20Sopenharmony_ci#define SF_L2     0x08
3078c2ecf20Sopenharmony_ci#define SF_L3     0x0c
3088c2ecf20Sopenharmony_ci#define SF_L4     0x10
3098c2ecf20Sopenharmony_ci#define SF_L5     0x14
3108c2ecf20Sopenharmony_ci#define SF_L6     0x18
3118c2ecf20Sopenharmony_ci#define SF_L7     0x1c
3128c2ecf20Sopenharmony_ci#define SF_I0     0x20
3138c2ecf20Sopenharmony_ci#define SF_I1     0x24
3148c2ecf20Sopenharmony_ci#define SF_I2     0x28
3158c2ecf20Sopenharmony_ci#define SF_I3     0x2c
3168c2ecf20Sopenharmony_ci#define SF_I4     0x30
3178c2ecf20Sopenharmony_ci#define SF_I5     0x34
3188c2ecf20Sopenharmony_ci#define SF_FP     0x38
3198c2ecf20Sopenharmony_ci#define SF_PC     0x3c
3208c2ecf20Sopenharmony_ci#define SF_RETP   0x40
3218c2ecf20Sopenharmony_ci#define SF_XARG0  0x44
3228c2ecf20Sopenharmony_ci#define SF_XARG1  0x48
3238c2ecf20Sopenharmony_ci#define SF_XARG2  0x4c
3248c2ecf20Sopenharmony_ci#define SF_XARG3  0x50
3258c2ecf20Sopenharmony_ci#define SF_XARG4  0x54
3268c2ecf20Sopenharmony_ci#define SF_XARG5  0x58
3278c2ecf20Sopenharmony_ci#define SF_XXARG  0x5c
3288c2ecf20Sopenharmony_ci
3298c2ecf20Sopenharmony_ci
3308c2ecf20Sopenharmony_ci/* Stuff for the ptrace system call */
3318c2ecf20Sopenharmony_ci#define PTRACE_SPARC_DETACH       11
3328c2ecf20Sopenharmony_ci#define PTRACE_GETREGS            12
3338c2ecf20Sopenharmony_ci#define PTRACE_SETREGS            13
3348c2ecf20Sopenharmony_ci#define PTRACE_GETFPREGS          14
3358c2ecf20Sopenharmony_ci#define PTRACE_SETFPREGS          15
3368c2ecf20Sopenharmony_ci#define PTRACE_READDATA           16
3378c2ecf20Sopenharmony_ci#define PTRACE_WRITEDATA          17
3388c2ecf20Sopenharmony_ci#define PTRACE_READTEXT           18
3398c2ecf20Sopenharmony_ci#define PTRACE_WRITETEXT          19
3408c2ecf20Sopenharmony_ci#define PTRACE_GETFPAREGS         20
3418c2ecf20Sopenharmony_ci#define PTRACE_SETFPAREGS         21
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_ci/* There are for debugging 64-bit processes, either from a 32 or 64 bit
3448c2ecf20Sopenharmony_ci * parent.  Thus their complements are for debugging 32-bit processes only.
3458c2ecf20Sopenharmony_ci */
3468c2ecf20Sopenharmony_ci
3478c2ecf20Sopenharmony_ci#define PTRACE_GETREGS64	  22
3488c2ecf20Sopenharmony_ci#define PTRACE_SETREGS64	  23
3498c2ecf20Sopenharmony_ci/* PTRACE_SYSCALL is 24 */
3508c2ecf20Sopenharmony_ci#define PTRACE_GETFPREGS64	  25
3518c2ecf20Sopenharmony_ci#define PTRACE_SETFPREGS64	  26
3528c2ecf20Sopenharmony_ci
3538c2ecf20Sopenharmony_ci#endif /* _UAPI__SPARC_PTRACE_H */
354