123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <stdint.h>
- #define PTRACE_TRACEME 0
- #define PT_TRACE_ME PTRACE_TRACEME
- #define PTRACE_PEEKTEXT 1
- #define PTRACE_PEEKDATA 2
- #define PTRACE_PEEKUSER 3
- #define PTRACE_POKETEXT 4
- #define PTRACE_POKEDATA 5
- #define PTRACE_POKEUSER 6
- #define PTRACE_CONT 7
- #define PTRACE_KILL 8
- #define PTRACE_SINGLESTEP 9
- #define PTRACE_GETREGS 12
- #define PTRACE_SETREGS 13
- #define PTRACE_GETFPREGS 14
- #define PTRACE_SETFPREGS 15
- #define PTRACE_ATTACH 16
- #define PTRACE_DETACH 17
- #define PTRACE_GETFPXREGS 18
- #define PTRACE_SETFPXREGS 19
- #define PTRACE_SYSCALL 24
- #define PTRACE_SETOPTIONS 0x4200
- #define PTRACE_GETEVENTMSG 0x4201
- #define PTRACE_GETSIGINFO 0x4202
- #define PTRACE_SETSIGINFO 0x4203
- #define PTRACE_GETREGSET 0x4204
- #define PTRACE_SETREGSET 0x4205
- #define PTRACE_SEIZE 0x4206
- #define PTRACE_INTERRUPT 0x4207
- #define PTRACE_LISTEN 0x4208
- #define PTRACE_PEEKSIGINFO 0x4209
- #define PTRACE_GETSIGMASK 0x420a
- #define PTRACE_SETSIGMASK 0x420b
- #define PTRACE_SECCOMP_GET_FILTER 0x420c
- #define PTRACE_SECCOMP_GET_METADATA 0x420d
- #define PTRACE_GET_SYSCALL_INFO 0x420e
- #define PTRACE_GET_RSEQ_CONFIGURATION 0x420f
- #define PT_READ_I PTRACE_PEEKTEXT
- #define PT_READ_D PTRACE_PEEKDATA
- #define PT_READ_U PTRACE_PEEKUSER
- #define PT_WRITE_I PTRACE_POKETEXT
- #define PT_WRITE_D PTRACE_POKEDATA
- #define PT_WRITE_U PTRACE_POKEUSER
- #define PT_CONTINUE PTRACE_CONT
- #define PT_KILL PTRACE_KILL
- #define PT_STEP PTRACE_SINGLESTEP
- #define PT_GETREGS PTRACE_GETREGS
- #define PT_SETREGS PTRACE_SETREGS
- #define PT_GETFPREGS PTRACE_GETFPREGS
- #define PT_SETFPREGS PTRACE_SETFPREGS
- #define PT_ATTACH PTRACE_ATTACH
- #define PT_DETACH PTRACE_DETACH
- #define PT_GETFPXREGS PTRACE_GETFPXREGS
- #define PT_SETFPXREGS PTRACE_SETFPXREGS
- #define PT_SYSCALL PTRACE_SYSCALL
- #define PT_SETOPTIONS PTRACE_SETOPTIONS
- #define PT_GETEVENTMSG PTRACE_GETEVENTMSG
- #define PT_GETSIGINFO PTRACE_GETSIGINFO
- #define PT_SETSIGINFO PTRACE_SETSIGINFO
- #define PTRACE_O_TRACESYSGOOD 0x00000001
- #define PTRACE_O_TRACEFORK 0x00000002
- #define PTRACE_O_TRACEVFORK 0x00000004
- #define PTRACE_O_TRACECLONE 0x00000008
- #define PTRACE_O_TRACEEXEC 0x00000010
- #define PTRACE_O_TRACEVFORKDONE 0x00000020
- #define PTRACE_O_TRACEEXIT 0x00000040
- #define PTRACE_O_TRACESECCOMP 0x00000080
- #define PTRACE_O_EXITKILL 0x00100000
- #define PTRACE_O_SUSPEND_SECCOMP 0x00200000
- #define PTRACE_O_MASK 0x003000ff
- #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
- #define PTRACE_EVENT_STOP 128
- #define PTRACE_PEEKSIGINFO_SHARED 1
- #define PTRACE_SYSCALL_INFO_NONE 0
- #define PTRACE_SYSCALL_INFO_ENTRY 1
- #define PTRACE_SYSCALL_INFO_EXIT 2
- #define PTRACE_SYSCALL_INFO_SECCOMP 3
- #include <bits/ptrace.h>
- struct __ptrace_peeksiginfo_args {
- uint64_t off;
- uint32_t flags;
- int32_t nr;
- };
- struct __ptrace_seccomp_metadata {
- uint64_t filter_off;
- uint64_t flags;
- };
- struct __ptrace_syscall_info {
- uint8_t op;
- uint8_t __pad[3];
- uint32_t arch;
- uint64_t instruction_pointer;
- uint64_t stack_pointer;
- union {
- struct {
- uint64_t nr;
- uint64_t args[6];
- } entry;
- struct {
- int64_t rval;
- uint8_t is_error;
- } exit;
- struct {
- uint64_t nr;
- uint64_t args[6];
- uint32_t ret_data;
- } seccomp;
- };
- };
- struct __ptrace_rseq_configuration {
- uint64_t rseq_abi_pointer;
- uint32_t rseq_abi_size;
- uint32_t signature;
- uint32_t flags;
- uint32_t pad;
- };
- long ptrace(int, ...);
- #ifdef __cplusplus
- }
- #endif
- #endif
|