diff options
author | Szabolcs Nagy <nsz@port70.net> | 2018-07-08 15:16:54 +0200 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2018-07-17 22:25:08 -0400 |
commit | df6d9450ea19fd71e52cf5cdb4c85beb73066394 (patch) | |
tree | 34c80d0c750ec97ce092b1fb0cdf7251f133d16e | |
parent | 7ea32a8282b743bb1637b9e1da5f76dcd472a704 (diff) | |
download | musl-df6d9450ea19fd71e52cf5cdb4c85beb73066394.tar.gz musl-df6d9450ea19fd71e52cf5cdb4c85beb73066394.tar.bz2 musl-df6d9450ea19fd71e52cf5cdb4c85beb73066394.tar.xz musl-df6d9450ea19fd71e52cf5cdb4c85beb73066394.zip |
add support for arch-specific ptrace command macros
sys/ptrace.h is target specific, use bits/ptrace.h to add target
specific macro definitions.
these macros are kept in the generic sys/ptrace.h even though some
targets don't support them:
PTRACE_GETREGS
PTRACE_SETREGS
PTRACE_GETFPREGS
PTRACE_SETFPREGS
PTRACE_GETFPXREGS
PTRACE_SETFPXREGS
so no macro definition got removed in this patch on any target. only
s390x has a numerically conflicting macro definition (PTRACE_SINGLEBLOCK).
the PT_ aliases follow glibc headers, otherwise the definitions come
from linux uapi headers except ones that are skipped in glibc and
there is no real kernel support (s390x PTRACE_*_AREA) or need special
type definitions (mips PTRACE_*_WATCH_*) or only relevant for linux
2.4 compatibility (PTRACE_OLDSETOPTIONS).
-rw-r--r-- | arch/generic/bits/ptrace.h | 0 | ||||
-rw-r--r-- | arch/i386/bits/ptrace.h | 11 | ||||
-rw-r--r-- | arch/m68k/bits/ptrace.h | 2 | ||||
-rw-r--r-- | arch/mips/bits/ptrace.h | 9 | ||||
-rw-r--r-- | arch/mips64/bits/ptrace.h | 9 | ||||
-rw-r--r-- | arch/mipsn32/bits/ptrace.h | 9 | ||||
-rw-r--r-- | arch/powerpc/bits/ptrace.h | 23 | ||||
-rw-r--r-- | arch/powerpc64/bits/ptrace.h | 23 | ||||
-rw-r--r-- | arch/s390x/bits/ptrace.h | 9 | ||||
-rw-r--r-- | arch/x32/bits/ptrace.h | 13 | ||||
-rw-r--r-- | arch/x86_64/bits/ptrace.h | 13 | ||||
-rw-r--r-- | include/sys/ptrace.h | 2 |
12 files changed, 123 insertions, 0 deletions
diff --git a/arch/generic/bits/ptrace.h b/arch/generic/bits/ptrace.h new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/arch/generic/bits/ptrace.h diff --git a/arch/i386/bits/ptrace.h b/arch/i386/bits/ptrace.h new file mode 100644 index 00000000..7d0efbf3 --- /dev/null +++ b/arch/i386/bits/ptrace.h @@ -0,0 +1,11 @@ +#define PTRACE_GET_THREAD_AREA 25 +#define PTRACE_SET_THREAD_AREA 26 +#define PTRACE_SYSEMU 31 +#define PTRACE_SYSEMU_SINGLESTEP 32 +#define PTRACE_SINGLEBLOCK 33 + +#define PT_GET_THREAD_AREA PTRACE_GET_THREAD_AREA +#define PT_SET_THREAD_AREA PTRACE_SET_THREAD_AREA +#define PT_SYSEMU PTRACE_SYSEMU +#define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP +#define PT_STEPBLOCK PTRACE_SINGLEBLOCK diff --git a/arch/m68k/bits/ptrace.h b/arch/m68k/bits/ptrace.h new file mode 100644 index 00000000..da93e7a7 --- /dev/null +++ b/arch/m68k/bits/ptrace.h @@ -0,0 +1,2 @@ +#define PTRACE_GET_THREAD_AREA 25 +#define PTRACE_SINGLEBLOCK 33 diff --git a/arch/mips/bits/ptrace.h b/arch/mips/bits/ptrace.h new file mode 100644 index 00000000..77a01c06 --- /dev/null +++ b/arch/mips/bits/ptrace.h @@ -0,0 +1,9 @@ +#define PTRACE_GET_THREAD_AREA 25 +#define PTRACE_SET_THREAD_AREA 26 +#define PTRACE_PEEKTEXT_3264 0xc0 +#define PTRACE_PEEKDATA_3264 0xc1 +#define PTRACE_POKETEXT_3264 0xc2 +#define PTRACE_POKEDATA_3264 0xc3 +#define PTRACE_GET_THREAD_AREA_3264 0xc4 +#define PTRACE_GET_WATCH_REGS 0xd0 +#define PTRACE_SET_WATCH_REGS 0xd1 diff --git a/arch/mips64/bits/ptrace.h b/arch/mips64/bits/ptrace.h new file mode 100644 index 00000000..77a01c06 --- /dev/null +++ b/arch/mips64/bits/ptrace.h @@ -0,0 +1,9 @@ +#define PTRACE_GET_THREAD_AREA 25 +#define PTRACE_SET_THREAD_AREA 26 +#define PTRACE_PEEKTEXT_3264 0xc0 +#define PTRACE_PEEKDATA_3264 0xc1 +#define PTRACE_POKETEXT_3264 0xc2 +#define PTRACE_POKEDATA_3264 0xc3 +#define PTRACE_GET_THREAD_AREA_3264 0xc4 +#define PTRACE_GET_WATCH_REGS 0xd0 +#define PTRACE_SET_WATCH_REGS 0xd1 diff --git a/arch/mipsn32/bits/ptrace.h b/arch/mipsn32/bits/ptrace.h new file mode 100644 index 00000000..77a01c06 --- /dev/null +++ b/arch/mipsn32/bits/ptrace.h @@ -0,0 +1,9 @@ +#define PTRACE_GET_THREAD_AREA 25 +#define PTRACE_SET_THREAD_AREA 26 +#define PTRACE_PEEKTEXT_3264 0xc0 +#define PTRACE_PEEKDATA_3264 0xc1 +#define PTRACE_POKETEXT_3264 0xc2 +#define PTRACE_POKEDATA_3264 0xc3 +#define PTRACE_GET_THREAD_AREA_3264 0xc4 +#define PTRACE_GET_WATCH_REGS 0xd0 +#define PTRACE_SET_WATCH_REGS 0xd1 diff --git a/arch/powerpc/bits/ptrace.h b/arch/powerpc/bits/ptrace.h new file mode 100644 index 00000000..75086ca0 --- /dev/null +++ b/arch/powerpc/bits/ptrace.h @@ -0,0 +1,23 @@ +#define PTRACE_GETVRREGS 0x12 +#define PTRACE_SETVRREGS 0x13 +#define PTRACE_GETEVRREGS 0x14 +#define PTRACE_SETEVRREGS 0x15 +#define PTRACE_GETREGS64 0x16 +#define PTRACE_SETREGS64 0x17 +#define PTRACE_GET_DEBUGREG 0x19 +#define PTRACE_SET_DEBUGREG 0x1a +#define PTRACE_GETVSRREGS 0x1b +#define PTRACE_SETVSRREGS 0x1c +#define PTRACE_SINGLEBLOCK 0x100 + +#define PT_GETVRREGS PTRACE_GETVRREGS +#define PT_SETVRREGS PTRACE_SETVRREGS +#define PT_GETEVRREGS PTRACE_GETEVRREGS +#define PT_SETEVRREGS PTRACE_SETEVRREGS +#define PT_GETREGS64 PTRACE_GETREGS64 +#define PT_SETREGS64 PTRACE_SETREGS64 +#define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG +#define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG +#define PT_GETVSRREGS PTRACE_GETVSRREGS +#define PT_SETVSRREGS PTRACE_SETVSRREGS +#define PT_STEPBLOCK PTRACE_SINGLEBLOCK diff --git a/arch/powerpc64/bits/ptrace.h b/arch/powerpc64/bits/ptrace.h new file mode 100644 index 00000000..75086ca0 --- /dev/null +++ b/arch/powerpc64/bits/ptrace.h @@ -0,0 +1,23 @@ +#define PTRACE_GETVRREGS 0x12 +#define PTRACE_SETVRREGS 0x13 +#define PTRACE_GETEVRREGS 0x14 +#define PTRACE_SETEVRREGS 0x15 +#define PTRACE_GETREGS64 0x16 +#define PTRACE_SETREGS64 0x17 +#define PTRACE_GET_DEBUGREG 0x19 +#define PTRACE_SET_DEBUGREG 0x1a +#define PTRACE_GETVSRREGS 0x1b +#define PTRACE_SETVSRREGS 0x1c +#define PTRACE_SINGLEBLOCK 0x100 + +#define PT_GETVRREGS PTRACE_GETVRREGS +#define PT_SETVRREGS PTRACE_SETVRREGS +#define PT_GETEVRREGS PTRACE_GETEVRREGS +#define PT_SETEVRREGS PTRACE_SETEVRREGS +#define PT_GETREGS64 PTRACE_GETREGS64 +#define PT_SETREGS64 PTRACE_SETREGS64 +#define PT_GET_DEBUGREG PTRACE_GET_DEBUGREG +#define PT_SET_DEBUGREG PTRACE_SET_DEBUGREG +#define PT_GETVSRREGS PTRACE_GETVSRREGS +#define PT_SETVSRREGS PTRACE_SETVSRREGS +#define PT_STEPBLOCK PTRACE_SINGLEBLOCK diff --git a/arch/s390x/bits/ptrace.h b/arch/s390x/bits/ptrace.h new file mode 100644 index 00000000..d50e3262 --- /dev/null +++ b/arch/s390x/bits/ptrace.h @@ -0,0 +1,9 @@ +#define PTRACE_SINGLEBLOCK 12 +#define PTRACE_PEEKUSR_AREA 0x5000 +#define PTRACE_POKEUSR_AREA 0x5001 +#define PTRACE_GET_LAST_BREAK 0x5006 +#define PTRACE_ENABLE_TE 0x5009 +#define PTRACE_DISABLE_TE 0x5010 +#define PTRACE_TE_ABORT_RAND 0x5011 + +#define PT_STEPBLOCK PTRACE_SINGLEBLOCK diff --git a/arch/x32/bits/ptrace.h b/arch/x32/bits/ptrace.h new file mode 100644 index 00000000..7f8a09b5 --- /dev/null +++ b/arch/x32/bits/ptrace.h @@ -0,0 +1,13 @@ +#define PTRACE_GET_THREAD_AREA 25 +#define PTRACE_SET_THREAD_AREA 26 +#define PTRACE_ARCH_PRCTL 30 +#define PTRACE_SYSEMU 31 +#define PTRACE_SYSEMU_SINGLESTEP 32 +#define PTRACE_SINGLEBLOCK 33 + +#define PT_GET_THREAD_AREA PTRACE_GET_THREAD_AREA +#define PT_SET_THREAD_AREA PTRACE_SET_THREAD_AREA +#define PT_ARCH_PRCTL PTRACE_ARCH_PRCTL +#define PT_SYSEMU PTRACE_SYSEMU +#define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP +#define PT_STEPBLOCK PTRACE_SINGLEBLOCK diff --git a/arch/x86_64/bits/ptrace.h b/arch/x86_64/bits/ptrace.h new file mode 100644 index 00000000..7f8a09b5 --- /dev/null +++ b/arch/x86_64/bits/ptrace.h @@ -0,0 +1,13 @@ +#define PTRACE_GET_THREAD_AREA 25 +#define PTRACE_SET_THREAD_AREA 26 +#define PTRACE_ARCH_PRCTL 30 +#define PTRACE_SYSEMU 31 +#define PTRACE_SYSEMU_SINGLESTEP 32 +#define PTRACE_SINGLEBLOCK 33 + +#define PT_GET_THREAD_AREA PTRACE_GET_THREAD_AREA +#define PT_SET_THREAD_AREA PTRACE_SET_THREAD_AREA +#define PT_ARCH_PRCTL PTRACE_ARCH_PRCTL +#define PT_SYSEMU PTRACE_SYSEMU +#define PT_SYSEMU_SINGLESTEP PTRACE_SYSEMU_SINGLESTEP +#define PT_STEPBLOCK PTRACE_SINGLEBLOCK diff --git a/include/sys/ptrace.h b/include/sys/ptrace.h index 114185fd..229e1f3d 100644 --- a/include/sys/ptrace.h +++ b/include/sys/ptrace.h @@ -88,6 +88,8 @@ extern "C" { #define PTRACE_PEEKSIGINFO_SHARED 1 +#include <bits/ptrace.h> + struct __ptrace_peeksiginfo_args { uint64_t off; uint32_t flags; |