X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Fsys%2Fptrace.h;h=2a8680933a62b9f49cf42e6eace289f8a2aff11a;hb=5675aaa5595619135baf33923de52a44307af9fb;hp=21d4ca3a98da75d425c8c7725c674cc9c12eb849;hpb=21f01e1bf951dc3c543bb53de4d001dd4194da84;p=musl diff --git a/include/sys/ptrace.h b/include/sys/ptrace.h index 21d4ca3a..2a868093 100644 --- a/include/sys/ptrace.h +++ b/include/sys/ptrace.h @@ -4,6 +4,8 @@ extern "C" { #endif +#include + #define PTRACE_TRACEME 0 #define PT_TRACE_ME PTRACE_TRACEME @@ -34,6 +36,12 @@ extern "C" { #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 PT_READ_I PTRACE_PEEKTEXT #define PT_READ_D PTRACE_PEEKDATA @@ -67,7 +75,8 @@ extern "C" { #define PTRACE_O_TRACEEXIT 0x00000040 #define PTRACE_O_TRACESECCOMP 0x00000080 #define PTRACE_O_EXITKILL 0x00100000 -#define PTRACE_O_MASK 0x001000ff +#define PTRACE_O_SUSPEND_SECCOMP 0x00200000 +#define PTRACE_O_MASK 0x003000ff #define PTRACE_EVENT_FORK 1 #define PTRACE_EVENT_VFORK 2 @@ -76,6 +85,49 @@ extern "C" { #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 + +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; + uint32_t arch __attribute__((__aligned__(4))); + 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; + }; +}; long ptrace(int, ...);