1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2 /* 3 * Author: Hanlu Li <lihanlu@loongson.cn> 4 * Huacai Chen <chenhuacai@loongson.cn> 5 * 6 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited 7 */ 8 #ifndef _UAPI_ASM_PTRACE_H 9 #define _UAPI_ASM_PTRACE_H 10 11 #include <linux/types.h> 12 13 #ifndef __KERNEL__ 14 #include <stdint.h> 15 #endif 16 17 /* 18 * For PTRACE_{POKE,PEEK}USR. 0 - 31 are GPRs, 19 * 32 is syscall's original ARG0, 33 is PC, 34 is BADVADDR. 20 */ 21 #define GPR_BASE 0 22 #define GPR_NUM 32 23 #define GPR_END (GPR_BASE + GPR_NUM - 1) 24 #define ARG0 (GPR_END + 1) 25 #define PC (GPR_END + 2) 26 #define BADVADDR (GPR_END + 3) 27 28 #define NUM_FPU_REGS 32 29 30 struct user_pt_regs { 31 /* Main processor registers. */ 32 unsigned long regs[32]; 33 34 /* Original syscall arg0. */ 35 unsigned long orig_a0; 36 37 /* Special CSR registers. */ 38 unsigned long csr_era; 39 unsigned long csr_badv; 40 unsigned long reserved[10]; 41 } __attribute__((aligned(8))); 42 43 struct user_fp_state { 44 uint64_t fpr[32]; 45 uint64_t fcc; 46 uint32_t fcsr; 47 }; 48 49 struct user_lsx_state { 50 /* 32 registers, 128 bits width per register. */ 51 uint64_t vregs[32*2]; 52 }; 53 54 struct user_lasx_state { 55 /* 32 registers, 256 bits width per register. */ 56 uint64_t vregs[32*4]; 57 }; 58 59 struct user_lbt_state { 60 uint64_t scr[4]; 61 uint32_t eflags; 62 uint32_t ftop; 63 }; 64 65 struct user_watch_state { 66 uint64_t dbg_info; 67 struct { 68 uint64_t addr; 69 uint64_t mask; 70 uint32_t ctrl; 71 uint32_t pad; 72 } dbg_regs[8]; 73 }; 74 75 #define PTRACE_SYSEMU 0x1f 76 #define PTRACE_SYSEMU_SINGLESTEP 0x20 77 78 #endif /* _UAPI_ASM_PTRACE_H */ 79
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.