1/* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright (C) 1994, 95, 96, 97, 98, 99, 2000 by Ralf Baechle 7 * Copyright (C) 1999, 2000 Silicon Graphics, Inc. 8 */ 9#ifndef _ASM_PTRACE_H 10#define _ASM_PTRACE_H 11 12/* 0 - 31 are integer registers, 32 - 63 are fp registers. */ 13#define FPR_BASE 32 14#define PC 64 15#define CAUSE 65 16#define BADVADDR 66 17#define MMHI 67 18#define MMLO 68 19#define FPC_CSR 69 20#define FPC_EIR 70 21 22#ifndef __ASSEMBLY__ 23 24#define abi64_no_regargs \ 25 unsigned long __dummy0, \ 26 unsigned long __dummy1, \ 27 unsigned long __dummy2, \ 28 unsigned long __dummy3, \ 29 unsigned long __dummy4, \ 30 unsigned long __dummy5, \ 31 unsigned long __dummy6, \ 32 unsigned long __dummy7 33 34/* 35 * This struct defines the way the registers are stored on the stack during a 36 * system call/exception. As usual the registers k0/k1 aren't being saved. 37 */ 38struct pt_regs { 39 /* Saved main processor registers. */ 40 unsigned long regs[32]; 41 42 /* Other saved registers. */ 43 unsigned long lo; 44 unsigned long hi; 45 46 /* 47 * saved cp0 registers 48 */ 49 unsigned long cp0_epc; 50 unsigned long cp0_badvaddr; 51 unsigned long cp0_status; 52 unsigned long cp0_cause; 53}; 54 55#endif /* !__ASSEMBLY__ */ 56 57/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 58/* #define PTRACE_GETREGS 12 */ 59/* #define PTRACE_SETREGS 13 */ 60/* #define PTRACE_GETFPREGS 14 */ 61/* #define PTRACE_SETFPREGS 15 */ 62/* #define PTRACE_GETFPXREGS 18 */ 63/* #define PTRACE_SETFPXREGS 19 */ 64 65#define PTRACE_SETOPTIONS 21 66 67/* options set using PTRACE_SETOPTIONS */ 68#define PTRACE_O_TRACESYSGOOD 0x00000001 69 70#ifdef __ASSEMBLY__ 71#include <asm/offset.h> 72#endif /* !__ASSEMBLY__ */ 73 74#ifdef __KERNEL__ 75 76#ifndef __ASSEMBLY__ 77#define instruction_pointer(regs) ((regs)->cp0_epc) 78 79extern void show_regs(struct pt_regs *); 80#endif /* !__ASSEMBLY__ */ 81 82#endif 83 84#endif /* _ASM_PTRACE_H */ 85