1/* 2 * linux/include/asm-m32r/ptrace.h 3 * 4 * This file is subject to the terms and conditions of the GNU General Public 5 * License. See the file "COPYING" in the main directory of this archive 6 * for more details. 7 * 8 * M32R version: 9 * Copyright (C) 2001-2002, 2004 Hirokazu Takata <takata at linux-m32r.org> 10 */ 11#ifndef _UAPI_ASM_M32R_PTRACE_H 12#define _UAPI_ASM_M32R_PTRACE_H 13 14 15/* 0 - 13 are integer registers (general purpose registers). */ 16#define PT_R4 0 17#define PT_R5 1 18#define PT_R6 2 19#define PT_REGS 3 20#define PT_R0 4 21#define PT_R1 5 22#define PT_R2 6 23#define PT_R3 7 24#define PT_R7 8 25#define PT_R8 9 26#define PT_R9 10 27#define PT_R10 11 28#define PT_R11 12 29#define PT_R12 13 30#define PT_SYSCNR 14 31#define PT_R13 PT_FP 32#define PT_R14 PT_LR 33#define PT_R15 PT_SP 34 35/* processor status and miscellaneous context registers. */ 36#define PT_ACC0H 15 37#define PT_ACC0L 16 38#define PT_ACC1H 17 /* ISA_DSP_LEVEL2 only */ 39#define PT_ACC1L 18 /* ISA_DSP_LEVEL2 only */ 40#define PT_PSW 19 41#define PT_BPC 20 42#define PT_BBPSW 21 43#define PT_BBPC 22 44#define PT_SPU 23 45#define PT_FP 24 46#define PT_LR 25 47#define PT_SPI 26 48#define PT_ORIGR0 27 49 50/* virtual pt_reg entry for gdb */ 51#define PT_PC 30 52#define PT_CBR 31 53#define PT_EVB 32 54 55 56/* Control registers. */ 57#define SPR_CR0 PT_PSW 58#define SPR_CR1 PT_CBR /* read only */ 59#define SPR_CR2 PT_SPI 60#define SPR_CR3 PT_SPU 61#define SPR_CR4 62#define SPR_CR5 PT_EVB /* part of M32R/E, M32R/I core only */ 63#define SPR_CR6 PT_BPC 64#define SPR_CR7 65#define SPR_CR8 PT_BBPSW 66#define SPR_CR9 67#define SPR_CR10 68#define SPR_CR11 69#define SPR_CR12 70#define SPR_CR13 PT_WR 71#define SPR_CR14 PT_BBPC 72#define SPR_CR15 73 74/* this struct defines the way the registers are stored on the 75 stack during a system call. */ 76struct pt_regs { 77 /* Saved main processor registers. */ 78 unsigned long r4; 79 unsigned long r5; 80 unsigned long r6; 81 struct pt_regs *pt_regs; 82 unsigned long r0; 83 unsigned long r1; 84 unsigned long r2; 85 unsigned long r3; 86 unsigned long r7; 87 unsigned long r8; 88 unsigned long r9; 89 unsigned long r10; 90 unsigned long r11; 91 unsigned long r12; 92 long syscall_nr; 93 94 /* Saved main processor status and miscellaneous context registers. */ 95 unsigned long acc0h; 96 unsigned long acc0l; 97 unsigned long acc1h; /* ISA_DSP_LEVEL2 only */ 98 unsigned long acc1l; /* ISA_DSP_LEVEL2 only */ 99 unsigned long psw; 100 unsigned long bpc; /* saved PC for TRAP syscalls */ 101 unsigned long bbpsw; 102 unsigned long bbpc; 103 unsigned long spu; /* saved user stack */ 104 unsigned long fp; 105 unsigned long lr; /* saved PC for JL syscalls */ 106 unsigned long spi; /* saved kernel stack */ 107 unsigned long orig_r0; 108}; 109 110/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 111#define PTRACE_GETREGS 12 112#define PTRACE_SETREGS 13 113 114#define PTRACE_OLDSETOPTIONS 21 115 116 117#endif /* _UAPI_ASM_M32R_PTRACE_H */ 118