1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* 2 /* 3 * Copyright (C) 2010 Tobias Klauser <tklauser << 4 * Copyright (C) 2004 Microtronix Datacom Ltd << 5 * << 6 * based on m68k asm/processor.h << 7 * << 8 * This file is subject to the terms and condi 3 * This file is subject to the terms and conditions of the GNU General Public 9 * License. See the file "COPYING" in the mai 4 * License. See the file "COPYING" in the main directory of this archive 10 * for more details. 5 * for more details. >> 6 * >> 7 * Copyright (C) 1994, 95, 96, 97, 98, 99, 2000 by Ralf Baechle >> 8 * Copyright (C) 1999, 2000 Silicon Graphics, Inc. 11 */ 9 */ 12 !! 10 #ifndef _UAPI_ASM_PTRACE_H 13 #ifndef _UAPI_ASM_NIOS2_PTRACE_H !! 11 #define _UAPI_ASM_PTRACE_H 14 #define _UAPI_ASM_NIOS2_PTRACE_H << 15 << 16 #ifndef __ASSEMBLY__ << 17 12 18 #include <linux/types.h> 13 #include <linux/types.h> 19 14 >> 15 /* 0 - 31 are integer registers, 32 - 63 are fp registers. */ >> 16 #define FPR_BASE 32 >> 17 #define PC 64 >> 18 #define CAUSE 65 >> 19 #define BADVADDR 66 >> 20 #define MMHI 67 >> 21 #define MMLO 68 >> 22 #define FPC_CSR 69 >> 23 #define FPC_EIR 70 >> 24 #define DSP_BASE 71 /* 3 more hi / lo register pairs */ >> 25 #define DSP_CONTROL 77 >> 26 #define ACX 78 >> 27 20 /* 28 /* 21 * Register numbers used by 'ptrace' system ca !! 29 * This struct defines the registers as used by PTRACE_{GET,SET}REGS. The >> 30 * format is the same for both 32- and 64-bit processes. Registers for 32-bit >> 31 * processes are sign extended. 22 */ 32 */ 23 !! 33 #ifdef __KERNEL__ 24 /* GP registers */ << 25 #define PTR_R0 0 << 26 #define PTR_R1 1 << 27 #define PTR_R2 2 << 28 #define PTR_R3 3 << 29 #define PTR_R4 4 << 30 #define PTR_R5 5 << 31 #define PTR_R6 6 << 32 #define PTR_R7 7 << 33 #define PTR_R8 8 << 34 #define PTR_R9 9 << 35 #define PTR_R10 10 << 36 #define PTR_R11 11 << 37 #define PTR_R12 12 << 38 #define PTR_R13 13 << 39 #define PTR_R14 14 << 40 #define PTR_R15 15 << 41 #define PTR_R16 16 << 42 #define PTR_R17 17 << 43 #define PTR_R18 18 << 44 #define PTR_R19 19 << 45 #define PTR_R20 20 << 46 #define PTR_R21 21 << 47 #define PTR_R22 22 << 48 #define PTR_R23 23 << 49 #define PTR_R24 24 << 50 #define PTR_R25 25 << 51 #define PTR_GP 26 << 52 #define PTR_SP 27 << 53 #define PTR_FP 28 << 54 #define PTR_EA 29 << 55 #define PTR_BA 30 << 56 #define PTR_RA 31 << 57 /* Control registers */ << 58 #define PTR_PC 32 << 59 #define PTR_STATUS 33 << 60 #define PTR_ESTATUS 34 << 61 #define PTR_BSTATUS 35 << 62 #define PTR_IENABLE 36 << 63 #define PTR_IPENDING 37 << 64 #define PTR_CPUID 38 << 65 #define PTR_CTL6 39 << 66 #define PTR_EXCEPTION 40 << 67 #define PTR_PTEADDR 41 << 68 #define PTR_TLBACC 42 << 69 #define PTR_TLBMISC 43 << 70 #define PTR_ECCINJ 44 << 71 #define PTR_BADADDR 45 << 72 #define PTR_CONFIG 46 << 73 #define PTR_MPUBASE 47 << 74 #define PTR_MPUACC 48 << 75 << 76 #define NUM_PTRACE_REG (PTR_MPUACC + 1) << 77 << 78 /* User structures for general purpose registe << 79 struct user_pt_regs { 34 struct user_pt_regs { 80 __u32 regs[49]; !! 35 #else >> 36 struct pt_regs { >> 37 #endif >> 38 /* Saved main processor registers. */ >> 39 __u64 regs[32]; >> 40 >> 41 /* Saved special registers. */ >> 42 __u64 lo; >> 43 __u64 hi; >> 44 __u64 cp0_epc; >> 45 __u64 cp0_badvaddr; >> 46 __u64 cp0_status; >> 47 __u64 cp0_cause; >> 48 } __attribute__ ((aligned (8))); >> 49 >> 50 /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ >> 51 #define PTRACE_GETREGS 12 >> 52 #define PTRACE_SETREGS 13 >> 53 #define PTRACE_GETFPREGS 14 >> 54 #define PTRACE_SETFPREGS 15 >> 55 /* #define PTRACE_GETFPXREGS 18 */ >> 56 /* #define PTRACE_SETFPXREGS 19 */ >> 57 >> 58 #define PTRACE_OLDSETOPTIONS 21 >> 59 >> 60 #define PTRACE_GET_THREAD_AREA 25 >> 61 #define PTRACE_SET_THREAD_AREA 26 >> 62 >> 63 /* Calls to trace a 64bit program from a 32bit program. */ >> 64 #define PTRACE_PEEKTEXT_3264 0xc0 >> 65 #define PTRACE_PEEKDATA_3264 0xc1 >> 66 #define PTRACE_POKETEXT_3264 0xc2 >> 67 #define PTRACE_POKEDATA_3264 0xc3 >> 68 #define PTRACE_GET_THREAD_AREA_3264 0xc4 >> 69 >> 70 /* Read and write watchpoint registers. */ >> 71 enum pt_watch_style { >> 72 pt_watch_style_mips32, >> 73 pt_watch_style_mips64 81 }; 74 }; >> 75 struct mips32_watch_regs { >> 76 unsigned int watchlo[8]; >> 77 /* Lower 16 bits of watchhi. */ >> 78 unsigned short watchhi[8]; >> 79 /* Valid mask and I R W bits. >> 80 * bit 0 -- 1 if W bit is usable. >> 81 * bit 1 -- 1 if R bit is usable. >> 82 * bit 2 -- 1 if I bit is usable. >> 83 * bits 3 - 11 -- Valid watchhi mask bits. >> 84 */ >> 85 unsigned short watch_masks[8]; >> 86 /* The number of valid watch register pairs. */ >> 87 unsigned int num_valid; >> 88 } __attribute__((aligned(8))); >> 89 >> 90 struct mips64_watch_regs { >> 91 unsigned long long watchlo[8]; >> 92 unsigned short watchhi[8]; >> 93 unsigned short watch_masks[8]; >> 94 unsigned int num_valid; >> 95 } __attribute__((aligned(8))); >> 96 >> 97 struct pt_watch_regs { >> 98 enum pt_watch_style style; >> 99 union { >> 100 struct mips32_watch_regs mips32; >> 101 struct mips64_watch_regs mips64; >> 102 }; >> 103 }; >> 104 >> 105 #define PTRACE_GET_WATCH_REGS 0xd0 >> 106 #define PTRACE_SET_WATCH_REGS 0xd1 >> 107 82 108 83 #endif /* __ASSEMBLY__ */ !! 109 #endif /* _UAPI_ASM_PTRACE_H */ 84 #endif /* _UAPI_ASM_NIOS2_PTRACE_H */ << 85 110
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.