Add PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG etc. from Linux 6.4 to sys/ptrace.h

Linux 6.4 adds new constants PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
and PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG.  Add those to all
relevant sys/ptrace.h headers, along with adding the associated
argument structure to bits/ptrace-shared.h (named struct
__ptrace_sud_config there following the usual convention for such
structures).

Tested for x86_64 and with build-many-glibcs.py.
This commit is contained in:
Joseph Myers 2023-08-08 14:38:22 +00:00
parent c8c20039c7
commit b163fca6c3
9 changed files with 103 additions and 7 deletions

View File

@ -59,6 +59,8 @@ __BEGIN_DECLS
#undef PTRACE_SECCOMP_GET_METADATA
#undef PTRACE_GET_SYSCALL_INFO
#undef PTRACE_GET_RSEQ_CONFIGURATION
#undef PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
#undef PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
/* Type of the REQUEST argument to `ptrace.' */
enum __ptrace_request
@ -195,8 +197,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION
/* Set configuration for syscall user dispatch. */
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210,
#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
/* Get configuration for syscall user dispatch. */
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211
#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
};

View File

@ -204,8 +204,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION
/* Set configuration for syscall user dispatch. */
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210,
#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
/* Get configuration for syscall user dispatch. */
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211
#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
};

View File

@ -130,6 +130,16 @@ struct __ptrace_rseq_configuration
__uint32_t pad;
};
/* Argument of PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG and
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG. */
struct __ptrace_sud_config
{
__uint64_t mode;
__uint64_t selector;
__uint64_t offset;
__uint64_t len;
};
/* 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

View File

@ -157,8 +157,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION
/* Set configuration for syscall user dispatch. */
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210,
#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
/* Get configuration for syscall user dispatch. */
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211
#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
};

View File

@ -40,6 +40,7 @@ __BEGIN_DECLS
# undef PTRACE_GETSIGINFO
# undef PTRACE_GETSIGMASK
# undef PTRACE_GET_SYSCALL_INFO
# undef PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
# undef PTRACE_GETVRREGS
# undef PTRACE_GETVSRREGS
# undef PTRACE_INTERRUPT
@ -62,6 +63,7 @@ __BEGIN_DECLS
# undef PTRACE_SETREGSET
# undef PTRACE_SETSIGINFO
# undef PTRACE_SETSIGMASK
# undef PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
# undef PTRACE_SETVRREGS
# undef PTRACE_SETVSRREGS
# undef PTRACE_SINGLEBLOCK
@ -265,8 +267,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION
/* Set configuration for syscall user dispatch. */
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210,
#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
/* Get configuration for syscall user dispatch. */
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211
#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
};

View File

@ -86,6 +86,8 @@ __BEGIN_DECLS
# undef PTRACE_SYSCALL_INFO_EXIT
# undef PTRACE_SYSCALL_INFO_SECCOMP
# undef PTRACE_GET_RSEQ_CONFIGURATION
# undef PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
# undef PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
#endif
/* Type of the REQUEST argument to `ptrace.' */
enum __ptrace_request
@ -221,6 +223,16 @@ enum __ptrace_request
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION
/* Set configuration for syscall user dispatch. */
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210,
#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
/* Get configuration for syscall user dispatch. */
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211,
#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
PTRACE_PEEKUSR_AREA = 0x5000,
#define PTRACE_PEEKUSR_AREA PTRACE_PEEKUSR_AREA

View File

@ -225,8 +225,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION
/* Set configuration for syscall user dispatch. */
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210,
#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
/* Get configuration for syscall user dispatch. */
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211
#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
};

View File

@ -174,8 +174,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION
/* Set configuration for syscall user dispatch. */
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210,
#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
/* Get configuration for syscall user dispatch. */
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211
#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
};

View File

@ -194,8 +194,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION
/* Set configuration for syscall user dispatch. */
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210,
#define PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
/* Get configuration for syscall user dispatch. */
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211
#define PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG \
PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
};