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 v2.6.17-rc6 86 lines 2.8 kB view raw
1/* ptrace.h: ptrace() relevant definitions 2 * 3 * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. 4 * Written by David Howells (dhowells@redhat.com) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 9 * 2 of the License, or (at your option) any later version. 10 */ 11#ifndef _ASM_PTRACE_H 12#define _ASM_PTRACE_H 13 14#include <asm/registers.h> 15 16#define in_syscall(regs) (((regs)->tbr & TBR_TT) == TBR_TT_TRAP0) 17 18 19#define PT_PSR 0 20#define PT_ISR 1 21#define PT_CCR 2 22#define PT_CCCR 3 23#define PT_LR 4 24#define PT_LCR 5 25#define PT_PC 6 26 27#define PT__STATUS 7 /* exception status */ 28#define PT_SYSCALLNO 8 /* syscall number or -1 */ 29#define PT_ORIG_GR8 9 /* saved GR8 for signal handling */ 30#define PT_GNER0 10 31#define PT_GNER1 11 32#define PT_IACC0H 12 33#define PT_IACC0L 13 34 35#define PT_GR(j) ( 14 + (j)) /* GRj for 0<=j<=63 */ 36#define PT_FR(j) ( 78 + (j)) /* FRj for 0<=j<=63 */ 37#define PT_FNER(j) (142 + (j)) /* FNERj for 0<=j<=1 */ 38#define PT_MSR(j) (144 + (j)) /* MSRj for 0<=j<=2 */ 39#define PT_ACC(j) (146 + (j)) /* ACCj for 0<=j<=7 */ 40#define PT_ACCG(jklm) (154 + (jklm)) /* ACCGjklm for 0<=jklm<=1 (reads four regs per slot) */ 41#define PT_FSR(j) (156 + (j)) /* FSRj for 0<=j<=0 */ 42#define PT__GPEND 78 43#define PT__END 157 44 45#define PT_TBR PT_GR(0) 46#define PT_SP PT_GR(1) 47#define PT_FP PT_GR(2) 48#define PT_PREV_FRAME PT_GR(28) /* previous exception frame pointer (old gr28 value) */ 49#define PT_CURR_TASK PT_GR(29) /* current task */ 50 51 52/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 53#define PTRACE_GETREGS 12 54#define PTRACE_SETREGS 13 55#define PTRACE_GETFPREGS 14 56#define PTRACE_SETFPREGS 15 57#define PTRACE_GETFDPIC 31 /* get the ELF fdpic loadmap address */ 58 59#define PTRACE_GETFDPIC_EXEC 0 /* [addr] request the executable loadmap */ 60#define PTRACE_GETFDPIC_INTERP 1 /* [addr] request the interpreter loadmap */ 61 62#ifndef __ASSEMBLY__ 63 64/* 65 * dedicate GR28; to keeping the a pointer to the current exception frame 66 */ 67register struct pt_regs *__frame asm("gr28"); 68register struct pt_regs *__debug_frame asm("gr31"); 69 70#ifndef container_of 71#define container_of(ptr, type, member) ({ \ 72 const typeof( ((type *)0)->member ) *__mptr = (ptr); \ 73 (type *)( (char *)__mptr - offsetof(type,member) );}) 74#endif 75 76#define __debug_regs container_of(__debug_frame, struct pt_debug_regs, normal_regs) 77 78#define user_mode(regs) (!((regs)->psr & PSR_S)) 79#define instruction_pointer(regs) ((regs)->pc) 80 81extern unsigned long user_stack(const struct pt_regs *); 82extern void show_regs(struct pt_regs *); 83#define profile_pc(regs) ((regs)->pc) 84 85#endif /* !__ASSEMBLY__ */ 86#endif /* _ASM_PTRACE_H */