1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-07 06:43:00 +03:00

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_SECCOMP_GET_METADATA
#undef PTRACE_GET_SYSCALL_INFO #undef PTRACE_GET_SYSCALL_INFO
#undef PTRACE_GET_RSEQ_CONFIGURATION #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.' */ /* Type of the REQUEST argument to `ptrace.' */
enum __ptrace_request enum __ptrace_request
@@ -195,8 +197,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */ /* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION #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 #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */ /* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION #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; __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 /* Perform process tracing functions. REQUEST is one of the values
above, and determines the action to be taken. above, and determines the action to be taken.
For all requests except PTRACE_TRACEME, PID specifies the process to be 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 #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */ /* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION #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_GETSIGINFO
# undef PTRACE_GETSIGMASK # undef PTRACE_GETSIGMASK
# undef PTRACE_GET_SYSCALL_INFO # undef PTRACE_GET_SYSCALL_INFO
# undef PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
# undef PTRACE_GETVRREGS # undef PTRACE_GETVRREGS
# undef PTRACE_GETVSRREGS # undef PTRACE_GETVSRREGS
# undef PTRACE_INTERRUPT # undef PTRACE_INTERRUPT
@@ -62,6 +63,7 @@ __BEGIN_DECLS
# undef PTRACE_SETREGSET # undef PTRACE_SETREGSET
# undef PTRACE_SETSIGINFO # undef PTRACE_SETSIGINFO
# undef PTRACE_SETSIGMASK # undef PTRACE_SETSIGMASK
# undef PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
# undef PTRACE_SETVRREGS # undef PTRACE_SETVRREGS
# undef PTRACE_SETVSRREGS # undef PTRACE_SETVSRREGS
# undef PTRACE_SINGLEBLOCK # undef PTRACE_SINGLEBLOCK
@@ -265,8 +267,18 @@ enum __ptrace_request
#define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */ /* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION #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_EXIT
# undef PTRACE_SYSCALL_INFO_SECCOMP # undef PTRACE_SYSCALL_INFO_SECCOMP
# undef PTRACE_GET_RSEQ_CONFIGURATION # undef PTRACE_GET_RSEQ_CONFIGURATION
# undef PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG
# undef PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG
#endif #endif
/* Type of the REQUEST argument to `ptrace.' */ /* Type of the REQUEST argument to `ptrace.' */
enum __ptrace_request enum __ptrace_request
@@ -221,6 +223,16 @@ enum __ptrace_request
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f, PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION #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, PTRACE_PEEKUSR_AREA = 0x5000,
#define PTRACE_PEEKUSR_AREA PTRACE_PEEKUSR_AREA #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 #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */ /* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION #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 #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */ /* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION #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 #define PTRACE_GET_SYSCALL_INFO PTRACE_GET_SYSCALL_INFO
/* Get rseq configuration information. */ /* Get rseq configuration information. */
PTRACE_GET_RSEQ_CONFIGURATION = 0x420f PTRACE_GET_RSEQ_CONFIGURATION = 0x420f,
#define PTRACE_GET_RSEQ_CONFIGURATION PTRACE_GET_RSEQ_CONFIGURATION #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
}; };