]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
FreeBSD: add 2 new _umtx_op op codes for FreeBSD 14
authorPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 27 Aug 2023 14:14:00 +0000 (16:14 +0200)
committerPaul Floyd <pjfloyd@wanadoo.fr>
Sun, 27 Aug 2023 14:14:00 +0000 (16:14 +0200)
coregrind/m_syswrap/syswrap-freebsd.c
include/vki/vki-freebsd.h

index a59872b3c942c8cc56f3e452e84d0cbe98e9343e..17abf132b6f664976b2f62eb80960fce23f27f67 100644 (file)
@@ -4607,6 +4607,27 @@ PRE(sys__umtx_op)
                     struct umtx_robust_lists_params *, obj, int, op, unsigned long, flags);
       PRE_MEM_READ( "_umtx_op_robust_lists(mutex)", ARG3, sizeof(struct vki_umtx_robust_lists_params) );
       break;
+#if (FREEBSD_VERS >= FREEBSD_14)
+   case VKI_UMTX_OP_GET_MIN_TIMEOUT:
+      PRINT( "sys__umtx_op ( GET_MIN_TIMEOUT, %#" FMT_REGWORD "x)", ARG4);
+      // bit of a pain just reads args 2 and 4
+      if (VG_(tdict).track_pre_reg_read) {
+            PRRSN;
+            PRA2("_umtx_op_get_min_timeout",int,op);
+            PRA4("_umtx_op_get_min_timeout",long int*,timeout);
+      }
+      PRE_MEM_WRITE( "_umtx_op_get_min_timout(uaddr)", ARG4, sizeof(long int) );
+      break;
+   case VKI_UMTX_OP_SET_MIN_TIMEOUT:
+      PRINT( "sys__umtx_op ( SET_MIN_TIMEOUT, %" FMT_REGWORD "u)", ARG3);
+      // bit of a pain just reads args 2 and 3
+      if (VG_(tdict).track_pre_reg_read) {
+            PRRSN;
+            PRA2("_umtx_op_set_min_timeout",int,op);
+            PRA3("_umtx_op_set_min_timeout",unsigned long,timeout);
+      }
+      break;
+#endif
    default:
       VG_(umsg)("WARNING: _umtx_op unsupported value.\n");
       PRINT( "sys__umtx_op ( %#" FMT_REGWORD "x, %" FMT_REGWORD "u(UNKNOWN), %" FMT_REGWORD "u, %#" FMT_REGWORD "x, %#" FMT_REGWORD "x )", ARG1, ARG2, ARG3, ARG4, ARG5);
@@ -4673,6 +4694,14 @@ POST(sys__umtx_op)
       break;
    case VKI_UMTX_OP_SHM:
    case VKI_UMTX_OP_ROBUST_LISTS:
+      break;
+#if (FREEBSD_VERS >= FREEBSD_14 || 1)
+   case VKI_UMTX_OP_GET_MIN_TIMEOUT:
+      POST_MEM_WRITE( ARG4, sizeof(long int) );
+      break;
+   case VKI_UMTX_OP_SET_MIN_TIMEOUT:
+      break;
+#endif
    default:
       break;
    }
@@ -4957,7 +4986,7 @@ PRE(sys_sctp_generic_recvmsg)
 
    if (ARG4 != (Addr)NULL) {
       ML_(buf_and_len_pre_check) (tid, ARG4, ARG5,
-                                 "sctp_generic_recvmsg(from)",
+                        "sctp_generic_recvmsg(from)",
                         "sctp_generic_recvmsg(fromlen_in)");
    }
 
index f9ca51c036d6975f19ff9d416baf7683831ca5ff..92ca8a6878c6656de2732e13c8b70b992ef3286c 100644 (file)
@@ -2047,34 +2047,37 @@ struct vki_umtx_robust_lists_params {
    vki_uintptr_t robust_inact_offset;
 };
 
-#define  VKI_UMTX_OP_LOCK     0
-#define  VKI_UMTX_OP_UNLOCK      1
-#define  VKI_UMTX_OP_WAIT     2
-#define  VKI_UMTX_OP_WAKE     3
-#define  VKI_UMTX_OP_MUTEX_TRYLOCK  4
-#define  VKI_UMTX_OP_MUTEX_LOCK     5
-#define  VKI_UMTX_OP_MUTEX_UNLOCK   6
-#define  VKI_UMTX_OP_SET_CEILING    7
-#define  VKI_UMTX_OP_CV_WAIT     8
-#define  VKI_UMTX_OP_CV_SIGNAL      9
-#define  VKI_UMTX_OP_CV_BROADCAST   10
-#define  VKI_UMTX_OP_WAIT_UINT      11
-#define  VKI_UMTX_OP_RW_RDLOCK      12
-#define  VKI_UMTX_OP_RW_WRLOCK      13
-#define  VKI_UMTX_OP_RW_UNLOCK      14
-#define  VKI_UMTX_OP_WAIT_UINT_PRIVATE 15
-#define  VKI_UMTX_OP_WAKE_PRIVATE   16
-#define  VKI_UMTX_OP_MUTEX_WAIT     17
-#define  VKI_UMTX_OP_MUTEX_WAKE     18 /* deprecated */
-#define  VKI_UMTX_OP_SEM_WAIT    19
-#define  VKI_UMTX_OP_SEM_WAKE    20
-#define  VKI_UMTX_OP_NWAKE_PRIVATE  21
-#define  VKI_UMTX_OP_MUTEX_WAKE2    22
+#define VKI_UMTX_OP_LOCK     0
+#define VKI_UMTX_OP_UNLOCK      1
+#define VKI_UMTX_OP_WAIT     2
+#define VKI_UMTX_OP_WAKE     3
+#define VKI_UMTX_OP_MUTEX_TRYLOCK  4
+#define VKI_UMTX_OP_MUTEX_LOCK     5
+#define VKI_UMTX_OP_MUTEX_UNLOCK   6
+#define VKI_UMTX_OP_SET_CEILING    7
+#define VKI_UMTX_OP_CV_WAIT     8
+#define VKI_UMTX_OP_CV_SIGNAL      9
+#define VKI_UMTX_OP_CV_BROADCAST   10
+#define VKI_UMTX_OP_WAIT_UINT      11
+#define VKI_UMTX_OP_RW_RDLOCK      12
+#define VKI_UMTX_OP_RW_WRLOCK      13
+#define VKI_UMTX_OP_RW_UNLOCK      14
+#define VKI_UMTX_OP_WAIT_UINT_PRIVATE 15
+#define VKI_UMTX_OP_WAKE_PRIVATE   16
+#define VKI_UMTX_OP_MUTEX_WAIT     17
+#define VKI_UMTX_OP_MUTEX_WAKE     18 /* deprecated */
+#define VKI_UMTX_OP_SEM_WAIT    19
+#define VKI_UMTX_OP_SEM_WAKE    20
+#define VKI_UMTX_OP_NWAKE_PRIVATE  21
+#define VKI_UMTX_OP_MUTEX_WAKE2    22
 #define VKI_UMTX_OP_SEM2_WAIT       23
 #define VKI_UMTX_OP_SEM2_WAKE       24
 #define VKI_UMTX_OP_SHM             25
 #define VKI_UMTX_OP_ROBUST_LISTS    26
-#define  VKI_UMTX_OP_MAX             27
+#if (FREEBSD_VERS >= FREEBSD_14)
+#define VKI_UMTX_OP_GET_MIN_TIMEOUT 27
+#define VKI_UMTX_OP_SET_MIN_TIMEOUT 28
+#endif
 
 
 //----------------------------------------------------------------------