162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2010 Tobias Klauser <tklauser@distanz.ch>
462306a36Sopenharmony_ci * Copyright (C) 2004 Microtronix Datacom Ltd
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * based on m68k asm/processor.h
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
962306a36Sopenharmony_ci * License.  See the file "COPYING" in the main directory of this archive
1062306a36Sopenharmony_ci * for more details.
1162306a36Sopenharmony_ci */
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#ifndef _UAPI_ASM_NIOS2_PTRACE_H
1462306a36Sopenharmony_ci#define _UAPI_ASM_NIOS2_PTRACE_H
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#ifndef __ASSEMBLY__
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#include <linux/types.h>
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/*
2162306a36Sopenharmony_ci * Register numbers used by 'ptrace' system call interface.
2262306a36Sopenharmony_ci */
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci/* GP registers */
2562306a36Sopenharmony_ci#define PTR_R0		0
2662306a36Sopenharmony_ci#define PTR_R1		1
2762306a36Sopenharmony_ci#define PTR_R2		2
2862306a36Sopenharmony_ci#define PTR_R3		3
2962306a36Sopenharmony_ci#define PTR_R4		4
3062306a36Sopenharmony_ci#define PTR_R5		5
3162306a36Sopenharmony_ci#define PTR_R6		6
3262306a36Sopenharmony_ci#define PTR_R7		7
3362306a36Sopenharmony_ci#define PTR_R8		8
3462306a36Sopenharmony_ci#define PTR_R9		9
3562306a36Sopenharmony_ci#define PTR_R10		10
3662306a36Sopenharmony_ci#define PTR_R11		11
3762306a36Sopenharmony_ci#define PTR_R12		12
3862306a36Sopenharmony_ci#define PTR_R13		13
3962306a36Sopenharmony_ci#define PTR_R14		14
4062306a36Sopenharmony_ci#define PTR_R15		15
4162306a36Sopenharmony_ci#define PTR_R16		16
4262306a36Sopenharmony_ci#define PTR_R17		17
4362306a36Sopenharmony_ci#define PTR_R18		18
4462306a36Sopenharmony_ci#define PTR_R19		19
4562306a36Sopenharmony_ci#define PTR_R20		20
4662306a36Sopenharmony_ci#define PTR_R21		21
4762306a36Sopenharmony_ci#define PTR_R22		22
4862306a36Sopenharmony_ci#define PTR_R23		23
4962306a36Sopenharmony_ci#define PTR_R24		24
5062306a36Sopenharmony_ci#define PTR_R25		25
5162306a36Sopenharmony_ci#define PTR_GP		26
5262306a36Sopenharmony_ci#define PTR_SP		27
5362306a36Sopenharmony_ci#define PTR_FP		28
5462306a36Sopenharmony_ci#define PTR_EA		29
5562306a36Sopenharmony_ci#define PTR_BA		30
5662306a36Sopenharmony_ci#define PTR_RA		31
5762306a36Sopenharmony_ci/* Control registers */
5862306a36Sopenharmony_ci#define PTR_PC		32
5962306a36Sopenharmony_ci#define PTR_STATUS	33
6062306a36Sopenharmony_ci#define PTR_ESTATUS	34
6162306a36Sopenharmony_ci#define PTR_BSTATUS	35
6262306a36Sopenharmony_ci#define PTR_IENABLE	36
6362306a36Sopenharmony_ci#define PTR_IPENDING	37
6462306a36Sopenharmony_ci#define PTR_CPUID	38
6562306a36Sopenharmony_ci#define PTR_CTL6	39
6662306a36Sopenharmony_ci#define PTR_EXCEPTION	40
6762306a36Sopenharmony_ci#define PTR_PTEADDR	41
6862306a36Sopenharmony_ci#define PTR_TLBACC	42
6962306a36Sopenharmony_ci#define PTR_TLBMISC	43
7062306a36Sopenharmony_ci#define PTR_ECCINJ	44
7162306a36Sopenharmony_ci#define PTR_BADADDR	45
7262306a36Sopenharmony_ci#define PTR_CONFIG	46
7362306a36Sopenharmony_ci#define PTR_MPUBASE	47
7462306a36Sopenharmony_ci#define PTR_MPUACC	48
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci#define NUM_PTRACE_REG (PTR_MPUACC + 1)
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci/* User structures for general purpose registers.  */
7962306a36Sopenharmony_cistruct user_pt_regs {
8062306a36Sopenharmony_ci	__u32		regs[49];
8162306a36Sopenharmony_ci};
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci#endif /* __ASSEMBLY__ */
8462306a36Sopenharmony_ci#endif /* _UAPI_ASM_NIOS2_PTRACE_H */
85