]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Add PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG etc. from Linux 6.4 to sys/ptrace.h
authorJoseph Myers <joseph@codesourcery.com>
Tue, 8 Aug 2023 14:38:22 +0000 (14:38 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 8 Aug 2023 14:38:22 +0000 (14:38 +0000)
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.

sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
sysdeps/unix/sysv/linux/arm/sys/ptrace.h
sysdeps/unix/sysv/linux/bits/ptrace-shared.h
sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
sysdeps/unix/sysv/linux/s390/sys/ptrace.h
sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
sysdeps/unix/sysv/linux/sys/ptrace.h
sysdeps/unix/sysv/linux/x86/sys/ptrace.h

index 2bbbedc597760c4501240b0573910428cb9a285f..c4dc6f9d029ea9e5a32d33f63e333e261a09b127 100644 (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
 };
 
 
index e6c7eb60e0385bdcc707a4962072c6a7bf87260f..a31bc6b2eee29a164931bcb7d029fec3f7eba4d0 100644 (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
 };
 
 
index 2737937deaf9ee6fa2608e5ae3ef6176278bb0ff..96a656217d6b0bda67b1c656f993d6c6fd428102 100644 (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
index c4e4e76c5619e87c4da45b694d269c9602cd8feb..27a4291b7bc9c5bbb41ada6848cf4c07e1436477 100644 (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
 };
 
 
index 744f0f727ec69ddfe1becaca5f4e3aa3705e3c21..2fbd29455cc4d3e0735a45b5d65b0e4c7edf2ea5 100644 (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
 };
 
 
index 948c1165a6f2050a2fc13f261dfcb5b542629515..c1adc3d5154d0c62934d999187c9e60fbcc52702 100644 (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
 
index bcbc9013b7a87915f56d5b47507aed6461f6b8bb..56ce00c72afa43ba8f618ce2c957f3a2ba726ce3 100644 (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
 };
 
 
index 075c5e126dfe9dde63fcef61d0e9780335e5b554..c57575cf7ad57a54248575900173a0eda2b2b7b6 100644 (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
 };
 
 
index 9319f4735a106fc234ca1908c0acf874ca67424c..547aa83c55d865410075b73c28dd0da3ebf14fa0 100644 (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
 };