mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
Add PTRACE_GET_SYSCALL_INFO from Linux 5.3 to sys/ptrace.h.
Linux 5.3 adds a PTRACE_GET_SYSCALL_INFO constant, with an associated structure and PTRACE_SYSCALL_INFO_* constants. This patch adds these to sys/ptrace.h in glibc (PTRACE_GET_SYSCALL_INFO in each architecture version, the rest in bits/ptrace-shared.h). As with previous such constants and associated structures, the glibc version of the structure is named struct __ptrace_syscall_info. Tested for x86_64, and with build-many-glibcs.py.
This commit is contained in:
parent
2e4e75727e
commit
d1e411e5c7
@ -136,8 +136,12 @@ enum __ptrace_request
|
||||
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
|
||||
|
||||
/* Get seccomp BPF filter metadata. */
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d,
|
||||
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
|
||||
|
||||
/* Get information about system call. */
|
||||
PTRACE_GET_SYSCALL_INFO = 0x420e
|
||||
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
|
||||
};
|
||||
|
||||
|
||||
|
@ -196,8 +196,12 @@ enum __ptrace_request
|
||||
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
|
||||
|
||||
/* Get seccomp BPF filter metadata. */
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d,
|
||||
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
|
||||
|
||||
/* Get information about system call. */
|
||||
PTRACE_GET_SYSCALL_INFO = 0x420e
|
||||
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
|
||||
};
|
||||
|
||||
|
||||
|
@ -52,6 +52,15 @@ enum __ptrace_eventcodes
|
||||
PTRACE_EVENT_STOP = 128
|
||||
};
|
||||
|
||||
/* Type of stop for PTRACE_GET_SYSCALL_INFO. */
|
||||
enum __ptrace_get_syscall_info_op
|
||||
{
|
||||
PTRACE_SYSCALL_INFO_NONE = 0,
|
||||
PTRACE_SYSCALL_INFO_ENTRY = 1,
|
||||
PTRACE_SYSCALL_INFO_EXIT = 2,
|
||||
PTRACE_SYSCALL_INFO_SECCOMP = 3
|
||||
};
|
||||
|
||||
/* Arguments for PTRACE_PEEKSIGINFO. */
|
||||
struct __ptrace_peeksiginfo_args
|
||||
{
|
||||
@ -73,6 +82,44 @@ struct __ptrace_seccomp_metadata
|
||||
__uint64_t flags; /* Output: filter's flags. */
|
||||
};
|
||||
|
||||
/* Results of PTRACE_GET_SYSCALL_INFO. */
|
||||
struct __ptrace_syscall_info
|
||||
{
|
||||
__uint8_t op; /* One of the enum
|
||||
__ptrace_get_syscall_info_op
|
||||
values. */
|
||||
__uint32_t arch __attribute__ ((__aligned__ (4))); /* AUDIT_ARCH_*
|
||||
value. */
|
||||
__uint64_t instruction_pointer; /* Instruction pointer. */
|
||||
__uint64_t stack_pointer; /* Stack pointer. */
|
||||
union
|
||||
{
|
||||
/* System call number and arguments, for
|
||||
PTRACE_SYSCALL_INFO_ENTRY. */
|
||||
struct
|
||||
{
|
||||
__uint64_t nr;
|
||||
__uint64_t args[6];
|
||||
} entry;
|
||||
/* System call return value and error flag, for
|
||||
PTRACE_SYSCALL_INFO_EXIT. */
|
||||
struct
|
||||
{
|
||||
__int64_t rval;
|
||||
__uint8_t is_error;
|
||||
} exit;
|
||||
/* System call number, arguments and SECCOMP_RET_DATA portion of
|
||||
SECCOMP_RET_TRACE return value, for
|
||||
PTRACE_SYSCALL_INFO_SECCOMP. */
|
||||
struct
|
||||
{
|
||||
__uint64_t nr;
|
||||
__uint64_t args[6];
|
||||
__uint32_t ret_data;
|
||||
} seccomp;
|
||||
};
|
||||
};
|
||||
|
||||
/* Perform process tracing functions. REQUEST is one of the values
|
||||
above, and determines the action to be taken.
|
||||
For all requests except PTRACE_TRACEME, PID specifies the process to be
|
||||
|
@ -149,8 +149,12 @@ enum __ptrace_request
|
||||
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
|
||||
|
||||
/* Get seccomp BPF filter metadata. */
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d,
|
||||
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
|
||||
|
||||
/* Get information about system call. */
|
||||
PTRACE_GET_SYSCALL_INFO = 0x420e
|
||||
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
|
||||
};
|
||||
|
||||
|
||||
|
@ -38,6 +38,7 @@ __BEGIN_DECLS
|
||||
# undef PTRACE_GETREGSET
|
||||
# undef PTRACE_GETSIGINFO
|
||||
# undef PTRACE_GETSIGMASK
|
||||
# undef PTRACE_GET_SYSCALL_INFO
|
||||
# undef PTRACE_GETVRREGS
|
||||
# undef PTRACE_GETVSRREGS
|
||||
# undef PTRACE_INTERRUPT
|
||||
@ -65,6 +66,10 @@ __BEGIN_DECLS
|
||||
# undef PTRACE_SINGLEBLOCK
|
||||
# undef PTRACE_SINGLESTEP
|
||||
# undef PTRACE_SYSCALL
|
||||
# undef PTRACE_SYSCALL_INFO_NONE
|
||||
# undef PTRACE_SYSCALL_INFO_ENTRY
|
||||
# undef PTRACE_SYSCALL_INFO_EXIT
|
||||
# undef PTRACE_SYSCALL_INFO_SECCOMP
|
||||
# undef PTRACE_TRACEME
|
||||
#endif
|
||||
|
||||
@ -241,8 +246,12 @@ enum __ptrace_request
|
||||
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
|
||||
|
||||
/* Get seccomp BPF filter metadata. */
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d,
|
||||
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
|
||||
|
||||
/* Get information about system call. */
|
||||
PTRACE_GET_SYSCALL_INFO = 0x420e
|
||||
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
|
||||
};
|
||||
|
||||
|
||||
|
@ -79,6 +79,11 @@ __BEGIN_DECLS
|
||||
# undef PTRACE_EVENT_SECCOMP
|
||||
# undef PTRACE_EVENT_STOP
|
||||
# undef PTRACE_PEEKSIGINFO_SHARED
|
||||
# undef PTRACE_GET_SYSCALL_INFO
|
||||
# undef PTRACE_SYSCALL_INFO_NONE
|
||||
# undef PTRACE_SYSCALL_INFO_ENTRY
|
||||
# undef PTRACE_SYSCALL_INFO_EXIT
|
||||
# undef PTRACE_SYSCALL_INFO_SECCOMP
|
||||
#endif
|
||||
/* Type of the REQUEST argument to `ptrace.' */
|
||||
enum __ptrace_request
|
||||
@ -198,6 +203,10 @@ enum __ptrace_request
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d,
|
||||
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
|
||||
|
||||
/* Get information about system call. */
|
||||
PTRACE_GET_SYSCALL_INFO = 0x420e,
|
||||
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
|
||||
|
||||
PTRACE_PEEKUSR_AREA = 0x5000,
|
||||
#define PTRACE_PEEKUSR_AREA PTRACE_PEEKUSR_AREA
|
||||
|
||||
|
@ -217,8 +217,12 @@ enum __ptrace_request
|
||||
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
|
||||
|
||||
/* Get seccomp BPF filter metadata. */
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d,
|
||||
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
|
||||
|
||||
/* Get information about system call. */
|
||||
PTRACE_GET_SYSCALL_INFO = 0x420e
|
||||
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
|
||||
};
|
||||
|
||||
|
||||
|
@ -166,8 +166,12 @@ enum __ptrace_request
|
||||
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
|
||||
|
||||
/* Get seccomp BPF filter metadata. */
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d,
|
||||
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
|
||||
|
||||
/* Get information about system call. */
|
||||
PTRACE_GET_SYSCALL_INFO = 0x420e
|
||||
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
|
||||
};
|
||||
|
||||
|
||||
|
@ -186,8 +186,12 @@ enum __ptrace_request
|
||||
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
|
||||
|
||||
/* Get seccomp BPF filter metadata. */
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d
|
||||
PTRACE_SECCOMP_GET_METADATA = 0x420d,
|
||||
#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
|
||||
|
||||
/* Get information about system call. */
|
||||
PTRACE_GET_SYSCALL_INFO = 0x420e
|
||||
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user