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 16 20#define PTRACE_DETACH 17 21 22#define PTRACE_SYSCALL 24 23 24/* 0x4200-0x4300 are reserved for architecture-independent additions. */ 25#define PTRACE_SETOPTIONS 0x4200 26#define PTRACE_GETEVENTMSG 0x4201 27#define PTRACE_GETSIGINFO 0x4202 28#define PTRACE_SETSIGINFO 0x4203 29 30/* 31 * Generic ptrace interface that exports the architecture specific regsets 32 * using the corresponding NT_* types (which are also used in the core dump). 33 * Please note that the NT_PRSTATUS note type in a core dump contains a full 34 * 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the 35 * elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the 36 * other user_regset flavors, the user_regset layout and the ELF core dump note 37 * payload are exactly the same layout. 38 * 39 * This interface usage is as follows: 40 * struct iovec iov = { buf, len}; 41 * 42 * ret = ptrace(PTRACE_GETREGSET/PTRACE_SETREGSET, pid, NT_XXX_TYPE, &iov); 43 * 44 * On the successful completion, iov.len will be updated by the kernel, 45 * specifying how much the kernel has written/read to/from the user's iov.buf. 46 */ 47#define PTRACE_GETREGSET 0x4204 48#define PTRACE_SETREGSET 0x4205 49 50/* options set using PTRACE_SETOPTIONS */ 51#define PTRACE_O_TRACESYSGOOD 0x00000001 52#define PTRACE_O_TRACEFORK 0x00000002 53#define PTRACE_O_TRACEVFORK 0x00000004 54#define PTRACE_O_TRACECLONE 0x00000008 55#define PTRACE_O_TRACEEXEC 0x00000010 56#define PTRACE_O_TRACEVFORKDONE 0x00000020 57#define PTRACE_O_TRACEEXIT 0x00000040 58 59#define PTRACE_O_MASK 0x0000007f 60 61/* Wait extended result codes for the above trace options. */ 62#define PTRACE_EVENT_FORK 1 63#define PTRACE_EVENT_VFORK 2 64#define PTRACE_EVENT_CLONE 3 65#define PTRACE_EVENT_EXEC 4 66#define PTRACE_EVENT_VFORK_DONE 5 67#define PTRACE_EVENT_EXIT 6 68 69#include <asm/ptrace.h> 70 71 72#endif 73