Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at be662a18b7763496a052d489206af9ca2c2e1ac2 79 lines 2.0 kB view raw
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#include <linux/config.h> 13 14#include <asm/isadep.h> 15 16/* 0 - 31 are integer registers, 32 - 63 are fp registers. */ 17#define FPR_BASE 32 18#define PC 64 19#define CAUSE 65 20#define BADVADDR 66 21#define MMHI 67 22#define MMLO 68 23#define FPC_CSR 69 24#define FPC_EIR 70 25 26/* 27 * This struct defines the way the registers are stored on the stack during a 28 * system call/exception. As usual the registers k0/k1 aren't being saved. 29 */ 30struct pt_regs { 31#ifdef CONFIG_32BIT 32 /* Pad bytes for argument save space on the stack. */ 33 unsigned long pad0[6]; 34#endif 35 36 /* Saved main processor registers. */ 37 unsigned long regs[32]; 38 39 /* Saved special registers. */ 40 unsigned long cp0_status; 41 unsigned long lo; 42 unsigned long hi; 43 unsigned long cp0_badvaddr; 44 unsigned long cp0_cause; 45 unsigned long cp0_epc; 46}; 47 48/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 49/* #define PTRACE_GETREGS 12 */ 50/* #define PTRACE_SETREGS 13 */ 51/* #define PTRACE_GETFPREGS 14 */ 52/* #define PTRACE_SETFPREGS 15 */ 53/* #define PTRACE_GETFPXREGS 18 */ 54/* #define PTRACE_SETFPXREGS 19 */ 55 56#define PTRACE_OLDSETOPTIONS 21 57 58#define PTRACE_GET_THREAD_AREA 25 59#define PTRACE_SET_THREAD_AREA 26 60 61#ifdef __KERNEL__ 62 63#include <linux/linkage.h> 64 65/* 66 * Does the process account for user or for system time? 67 */ 68#define user_mode(regs) (((regs)->cp0_status & KU_MASK) == KU_USER) 69 70#define instruction_pointer(regs) ((regs)->cp0_epc) 71#define profile_pc(regs) instruction_pointer(regs) 72 73extern void show_regs(struct pt_regs *); 74 75extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit); 76 77#endif 78 79#endif /* _ASM_PTRACE_H */