| /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | |
| /* MN10300 Exception frame layout and ptrace constants | |
| * | |
| * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. | |
| * Written by David Howells (dhowells@redhat.com) | |
| * | |
| * This program is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU General Public Licence | |
| * as published by the Free Software Foundation; either version | |
| * 2 of the Licence, or (at your option) any later version. | |
| */ | |
| #ifndef _UAPI_ASM_PTRACE_H | |
| #define _UAPI_ASM_PTRACE_H | |
| #define PT_A3 0 | |
| #define PT_A2 1 | |
| #define PT_D3 2 | |
| #define PT_D2 3 | |
| #define PT_MCVF 4 | |
| #define PT_MCRL 5 | |
| #define PT_MCRH 6 | |
| #define PT_MDRQ 7 | |
| #define PT_E1 8 | |
| #define PT_E0 9 | |
| #define PT_E7 10 | |
| #define PT_E6 11 | |
| #define PT_E5 12 | |
| #define PT_E4 13 | |
| #define PT_E3 14 | |
| #define PT_E2 15 | |
| #define PT_SP 16 | |
| #define PT_LAR 17 | |
| #define PT_LIR 18 | |
| #define PT_MDR 19 | |
| #define PT_A1 20 | |
| #define PT_A0 21 | |
| #define PT_D1 22 | |
| #define PT_D0 23 | |
| #define PT_ORIG_D0 24 | |
| #define PT_EPSW 25 | |
| #define PT_PC 26 | |
| #define NR_PTREGS 27 | |
| /* | |
| * This defines the way registers are stored in the event of an exception | |
| * - the strange order is due to the MOVM instruction | |
| */ | |
| struct pt_regs { | |
| unsigned long a3; /* syscall arg 3 */ | |
| unsigned long a2; /* syscall arg 4 */ | |
| unsigned long d3; /* syscall arg 5 */ | |
| unsigned long d2; /* syscall arg 6 */ | |
| unsigned long mcvf; | |
| unsigned long mcrl; | |
| unsigned long mcrh; | |
| unsigned long mdrq; | |
| unsigned long e1; | |
| unsigned long e0; | |
| unsigned long e7; | |
| unsigned long e6; | |
| unsigned long e5; | |
| unsigned long e4; | |
| unsigned long e3; | |
| unsigned long e2; | |
| unsigned long sp; | |
| unsigned long lar; | |
| unsigned long lir; | |
| unsigned long mdr; | |
| unsigned long a1; | |
| unsigned long a0; /* syscall arg 1 */ | |
| unsigned long d1; /* syscall arg 2 */ | |
| unsigned long d0; /* syscall ret */ | |
| struct pt_regs *next; /* next frame pointer */ | |
| unsigned long orig_d0; /* syscall number */ | |
| unsigned long epsw; | |
| unsigned long pc; | |
| }; | |
| /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ | |
| #define PTRACE_GETREGS 12 | |
| #define PTRACE_SETREGS 13 | |
| #define PTRACE_GETFPREGS 14 | |
| #define PTRACE_SETFPREGS 15 | |
| #endif /* _UAPI_ASM_PTRACE_H */ |