1#ifndef _LINUX_PTRACE_H 2#define _LINUX_PTRACE_H 3/* ptrace.h */ 4/* structs and defines to help the user use the ptrace system call. */ 5 6/* has the defines to get at the registers. */ 7 8#define PTRACE_TRACEME 0 9#define PTRACE_PEEKTEXT 1 10#define PTRACE_PEEKDATA 2 11#define PTRACE_PEEKUSR 3 12#define PTRACE_POKETEXT 4 13#define PTRACE_POKEDATA 5 14#define PTRACE_POKEUSR 6 15#define PTRACE_CONT 7 16#define PTRACE_KILL 8 17#define PTRACE_SINGLESTEP 9 18 19#define PTRACE_ATTACH 0x10 20#define PTRACE_DETACH 0x11 21 22#define PTRACE_SYSCALL 24 23 24#include <asm/ptrace.h> 25 26#ifdef __KERNEL__ 27 28#ifndef force_successful_syscall_return 29/* 30 * System call handlers that, upon successful completion, need to return a 31 * negative value should call force_successful_syscall_return() right before 32 * returning. On architectures where the syscall convention provides for a 33 * separate error flag (e.g., alpha, ia64, ppc{,64}, sparc{,64}, possibly 34 * others), this macro can be used to ensure that the error flag will not get 35 * set. On architectures which do not support a separate error flag, the macro 36 * is a no-op and the spurious error condition needs to be filtered out by some 37 * other means (e.g., in user-level, by passing an extra argument to the 38 * syscall handler, or something along those lines). 39 */ 40#define force_successful_syscall_return() do { } while (0) 41#endif 42#endif 43 44#endif 45

