<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/8a8fd45f62d7c0b06800d3e94898ed85b49f5d07">https://github.com/macports/macports-legacy-support/commit/8a8fd45f62d7c0b06800d3e94898ed85b49f5d07</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 8a8fd45f62d7c0b06800d3e94898ed85b49f5d07
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Sat Mar 1 13:31:48 2025 -0800

<span style='display:block; white-space:pre;color:#404040;'>    test_packet: Include mach_continuous_time() capture.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This is only used by a "secret" timestamp option that isn't
</span><span style='display:block; white-space:pre;color:#404040;'>    straightforwardly available, and doesn't exist prior to the 10.14
</span><span style='display:block; white-space:pre;color:#404040;'>    kernel.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'>    Continuous time is reported when appropriate.
</span>---
 test/test_packet.c | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_packet.c b/test/test_packet.c
</span><span style='display:block; white-space:pre;color:#808080;'>index baa97df..7f8d148 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/test/test_packet.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_packet.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,6 +41,18 @@
</span> #define SYSCTL_OSVER_CLASS CTL_KERN
 #define SYSCTL_OSVER_ITEM  KERN_OSRELEASE
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Temporary hack to avoid dependency on mach_continuous_time fallback
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * for successful build on <10.12.  This function should never actually
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * be executed on <10.14, anyway.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * This hack can be removed once the relevant time.c update is merged.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define mach_continuous_time mach_absolute_time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #define CMSG_DATALEN(cmsg) ((uint8_t *) (cmsg) + (cmsg)->cmsg_len \
                            - (uint8_t *) CMSG_DATA(cmsg))
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,6 +67,7 @@ typedef struct timeval timeval_t;
</span>   TS_ONE(none,,0,NULL,0) \
   TS_ONE(tv,struct timeval,sizeof(timeval_t),get_timeval_ts,0) \
   TS_ONE(u64mach,uint64_t (mach),sizeof(uint64_t),get_mach_ts,11) \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+  TS_ONE(u64cont,uint64_t (mach cont),sizeof(uint64_t),get_mach_ts,18) \
</span> 
 #define TS_ONE(name,str,size,get,minver) ts_##name,
 typedef enum ts_type {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -334,6 +347,12 @@ test_packet(int sockopt, socklen_t *cbuflen, times_t *tp, ts_type_t tstype)
</span>       }
       break;
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    case ts_u64cont:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      if (!(tp->mt1 = mach_continuous_time())) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        err = "pre-send mach_continuous_time()";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     default: break;
     }
     if (err) break;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -353,6 +372,12 @@ test_packet(int sockopt, socklen_t *cbuflen, times_t *tp, ts_type_t tstype)
</span>       }
       break;
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    case ts_u64cont:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      if (!(tp->mt2 = mach_continuous_time())) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        err = "post-recv mach_continuous_time()";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     default: break;
     }
     if (err) break;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -427,6 +452,12 @@ test_timestamp(const char *name, ts_type_t tstype, int sockopt, int scmtype,
</span>              mach2ns(times.mt2 - times.mt1));
       break;
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    case ts_u64cont:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      printf("    Mach continuous times (ns) %llu, %llu, diff = %llu\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             mach2ns(times.mt1), mach2ns(times.mt2),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             mach2ns(times.mt2 - times.mt1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     default: break;
     }
   }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -496,6 +527,10 @@ test_timestamp(const char *name, ts_type_t tstype, int sockopt, int scmtype,
</span>         tslow = times.mt1; tshigh = times.mt2; tsvalns = mach2ns(tsval);
         break;
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+      case ts_u64cont:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        tslow = times.mt1; tshigh = times.mt2; tsvalns = mach2ns(tsval);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>       default:
         tslow = 0; tshigh = ~0ULL; tsvalns = tsval;
         break;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -539,7 +574,7 @@ main(int argc, char *argv[])
</span>   #endif
   /* The following is in macOS 10.14+ kernel sources, but not user headers. */
   #ifdef SO_TIMESTAMP_CONTINUOUS
<span style='display:block; white-space:pre;background:#ffe0e0;'>-  err |= test_timestamp("SO_TIMESTAMP_CONTINUOUS", ts_u64mach,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  err |= test_timestamp("SO_TIMESTAMP_CONTINUOUS", ts_u64cont,
</span>                         SO_TIMESTAMP_CONTINUOUS, SCM_TIMESTAMP_CONTINUOUS,
                         verbose);
   #endif
</pre><pre style='margin:0'>

</pre>