1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ >> 2 #ifndef _UAPI_ASMAXP_PTRACE_H >> 3 #define _UAPI_ASMAXP_PTRACE_H >> 4 >> 5 2 /* 6 /* 3 * Ptrace definitions for the Hexagon architec !! 7 * This struct defines the way the registers are stored on the >> 8 * kernel stack during a system call or other kernel entry 4 * 9 * 5 * Copyright (c) 2010-2011, The Linux Foundati !! 10 * NOTE! I want to minimize the overhead of system calls, so this >> 11 * struct has as little information as possible. It does not have 6 * 12 * 7 * This program is free software; you can redi !! 13 * - floating point regs: the kernel doesn't change those 8 * it under the terms of the GNU General Publi !! 14 * - r9-15: saved by the C compiler 9 * only version 2 as published by the Free Sof << 10 * 15 * 11 * This program is distributed in the hope tha !! 16 * This makes "fork()" and "exec()" a bit more complex, but should 12 * but WITHOUT ANY WARRANTY; without even the !! 17 * give us low system call latency. 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR << 14 * GNU General Public License for more details << 15 * << 16 * You should have received a copy of the GNU << 17 * along with this program; if not, write to t << 18 * Foundation, Inc., 51 Franklin Street, Fifth << 19 * 02110-1301, USA. << 20 */ 18 */ 21 19 22 #ifndef _ASM_PTRACE_H !! 20 struct pt_regs { 23 #define _ASM_PTRACE_H !! 21 unsigned long r0; 24 !! 22 unsigned long r1; 25 #include <asm/registers.h> !! 23 unsigned long r2; >> 24 unsigned long r3; >> 25 unsigned long r4; >> 26 unsigned long r5; >> 27 unsigned long r6; >> 28 unsigned long r7; >> 29 unsigned long r8; >> 30 unsigned long r19; >> 31 unsigned long r20; >> 32 unsigned long r21; >> 33 unsigned long r22; >> 34 unsigned long r23; >> 35 unsigned long r24; >> 36 unsigned long r25; >> 37 unsigned long r26; >> 38 unsigned long r27; >> 39 unsigned long r28; >> 40 unsigned long hae; >> 41 /* JRP - These are the values provided to a0-a2 by PALcode */ >> 42 unsigned long trap_a0; >> 43 unsigned long trap_a1; >> 44 unsigned long trap_a2; >> 45 /* These are saved by PAL-code: */ >> 46 unsigned long ps; >> 47 unsigned long pc; >> 48 unsigned long gp; >> 49 unsigned long r16; >> 50 unsigned long r17; >> 51 unsigned long r18; >> 52 }; 26 53 27 #define instruction_pointer(regs) pt_elr(regs) !! 54 /* 28 #define user_stack_pointer(regs) ((regs)->r29) !! 55 * This is the extended stack used by signal handlers and the context >> 56 * switcher: it's pushed after the normal "struct pt_regs". >> 57 */ >> 58 struct switch_stack { >> 59 unsigned long r9; >> 60 unsigned long r10; >> 61 unsigned long r11; >> 62 unsigned long r12; >> 63 unsigned long r13; >> 64 unsigned long r14; >> 65 unsigned long r15; >> 66 unsigned long r26; >> 67 #ifndef __KERNEL__ >> 68 unsigned long fp[32]; /* fp[31] is fpcr */ >> 69 #endif >> 70 }; 29 71 30 #define profile_pc(regs) instruction_pointer(r << 31 72 32 #endif !! 73 #endif /* _UAPI_ASMAXP_PTRACE_H */ 33 74
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.