提交 df6d9450 编写于 作者: S Szabolcs Nagy 提交者: Rich Felker

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).
上级 7ea32a82
#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
#define PTRACE_GET_THREAD_AREA 25
#define PTRACE_SINGLEBLOCK 33
#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
#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
#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
#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
#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
#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
#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
#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
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册