diff mbox series

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

Message ID 8063f59-aecf-80f9-847c-9e9656b76b4@codesourcery.com
State New
Headers show
Series Add PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG etc. from Linux 6.4 to sys/ptrace.h | expand

Commit Message

Joseph Myers Aug. 2, 2023, 8:57 p.m. UTC
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.

Comments

Adhemerval Zanella Netto Aug. 8, 2023, 1:08 p.m. UTC | #1
On 02/08/23 17:57, Joseph Myers wrote:
> 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.

LGTM, it matches commit 3f67987cdc09778e75098f9f5168832f8f8e1f1c added on 6.4.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> 
> diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
> index 2bbbedc597..c4dc6f9d02 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
> +++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
> @@ -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
>  };
>  
>  
> diff --git a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
> index e6c7eb60e0..a31bc6b2ee 100644
> --- a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
> +++ b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
> @@ -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
>  };
>  
>  
> diff --git a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
> index 2737937dea..96a656217d 100644
> --- a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
> +++ b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
> @@ -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
> diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
> index c4e4e76c56..27a4291b7b 100644
> --- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
> +++ b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
> @@ -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
>  };
>  
>  
> diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
> index 744f0f727e..2fbd29455c 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
> +++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
> @@ -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
>  };
>  
>  
> diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
> index 948c1165a6..c1adc3d515 100644
> --- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
> +++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
> @@ -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
>  
> diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
> index bcbc9013b7..56ce00c72a 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
> +++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
> @@ -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
>  };
>  
>  
> diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
> index 075c5e126d..c57575cf7a 100644
> --- a/sysdeps/unix/sysv/linux/sys/ptrace.h
> +++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
> @@ -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
>  };
>  
>  
> diff --git a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
> index 9319f4735a..547aa83c55 100644
> --- a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
> +++ b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
> @@ -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
>  };
>  
>  
>
diff mbox series

Patch

diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
index 2bbbedc597..c4dc6f9d02 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
@@ -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
 };
 
 
diff --git a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
index e6c7eb60e0..a31bc6b2ee 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
@@ -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
 };
 
 
diff --git a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
index 2737937dea..96a656217d 100644
--- a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
+++ b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
@@ -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
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
index c4e4e76c56..27a4291b7b 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
@@ -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
 };
 
 
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
index 744f0f727e..2fbd29455c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
@@ -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
 };
 
 
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
index 948c1165a6..c1adc3d515 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
@@ -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
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
index bcbc9013b7..56ce00c72a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
@@ -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
 };
 
 
diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
index 075c5e126d..c57575cf7a 100644
--- a/sysdeps/unix/sysv/linux/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
@@ -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
 };
 
 
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
index 9319f4735a..547aa83c55 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
@@ -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
 };