| Viewing file:  ptrace.h (3.1 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
#ifndef _UAPI_LINUX_PTRACE_H#define _UAPI_LINUX_PTRACE_H
 /* ptrace.h */
 /* structs and defines to help the user use the ptrace system call. */
 
 /* has the defines to get at the registers. */
 
 #include <linux/types.h>
 
 #define PTRACE_TRACEME           0
 #define PTRACE_PEEKTEXT           1
 #define PTRACE_PEEKDATA           2
 #define PTRACE_PEEKUSR           3
 #define PTRACE_POKETEXT           4
 #define PTRACE_POKEDATA           5
 #define PTRACE_POKEUSR           6
 #define PTRACE_CONT           7
 #define PTRACE_KILL           8
 #define PTRACE_SINGLESTEP       9
 
 #define PTRACE_ATTACH          16
 #define PTRACE_DETACH          17
 
 #define PTRACE_SYSCALL          24
 
 /* 0x4200-0x4300 are reserved for architecture-independent additions.  */
 #define PTRACE_SETOPTIONS    0x4200
 #define PTRACE_GETEVENTMSG    0x4201
 #define PTRACE_GETSIGINFO    0x4202
 #define PTRACE_SETSIGINFO    0x4203
 
 /*
 * Generic ptrace interface that exports the architecture specific regsets
 * using the corresponding NT_* types (which are also used in the core dump).
 * Please note that the NT_PRSTATUS note type in a core dump contains a full
 * 'struct elf_prstatus'. But the user_regset for NT_PRSTATUS contains just the
 * elf_gregset_t that is the pr_reg field of 'struct elf_prstatus'. For all the
 * other user_regset flavors, the user_regset layout and the ELF core dump note
 * payload are exactly the same layout.
 *
 * This interface usage is as follows:
 *    struct iovec iov = { buf, len};
 *
 *    ret = ptrace(PTRACE_GETREGSET/PTRACE_SETREGSET, pid, NT_XXX_TYPE, &iov);
 *
 * On the successful completion, iov.len will be updated by the kernel,
 * specifying how much the kernel has written/read to/from the user's iov.buf.
 */
 #define PTRACE_GETREGSET    0x4204
 #define PTRACE_SETREGSET    0x4205
 
 #define PTRACE_SEIZE        0x4206
 #define PTRACE_INTERRUPT    0x4207
 #define PTRACE_LISTEN        0x4208
 
 #define PTRACE_PEEKSIGINFO    0x4209
 
 struct ptrace_peeksiginfo_args {
 __u64 off;    /* from which siginfo to start */
 __u32 flags;
 __s32 nr;    /* how may siginfos to take */
 };
 
 #define PTRACE_GETSIGMASK    0x420a
 #define PTRACE_SETSIGMASK    0x420b
 
 /* Read signals from a shared (process wide) queue */
 #define PTRACE_PEEKSIGINFO_SHARED    (1 << 0)
 
 /* Wait extended result codes for the above trace options.  */
 #define PTRACE_EVENT_FORK    1
 #define PTRACE_EVENT_VFORK    2
 #define PTRACE_EVENT_CLONE    3
 #define PTRACE_EVENT_EXEC    4
 #define PTRACE_EVENT_VFORK_DONE    5
 #define PTRACE_EVENT_EXIT    6
 #define PTRACE_EVENT_SECCOMP    7
 /* Extended result codes which enabled by means other than options.  */
 #define PTRACE_EVENT_STOP    128
 
 /* Options set using PTRACE_SETOPTIONS or using PTRACE_SEIZE @data param */
 #define PTRACE_O_TRACESYSGOOD    1
 #define PTRACE_O_TRACEFORK    (1 << PTRACE_EVENT_FORK)
 #define PTRACE_O_TRACEVFORK    (1 << PTRACE_EVENT_VFORK)
 #define PTRACE_O_TRACECLONE    (1 << PTRACE_EVENT_CLONE)
 #define PTRACE_O_TRACEEXEC    (1 << PTRACE_EVENT_EXEC)
 #define PTRACE_O_TRACEVFORKDONE    (1 << PTRACE_EVENT_VFORK_DONE)
 #define PTRACE_O_TRACEEXIT    (1 << PTRACE_EVENT_EXIT)
 #define PTRACE_O_TRACESECCOMP    (1 << PTRACE_EVENT_SECCOMP)
 
 /* eventless options */
 #define PTRACE_O_EXITKILL    (1 << 20)
 
 #define PTRACE_O_MASK        (0x000000ff | PTRACE_O_EXITKILL)
 
 #include <asm/ptrace.h>
 
 
 #endif /* _UAPI_LINUX_PTRACE_H */
 
 |