<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/9f6e0d24cf4b74cfc29645cfd4ac538fca580613">https://github.com/macports/macports-legacy-support/commit/9f6e0d24cf4b74cfc29645cfd4ac538fca580613</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9f6e0d24cf4b74cfc29645cfd4ac538fca580613
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Thu Jan 16 18:55:00 2025 -0800
<span style='display:block; white-space:pre;color:#404040;'> Implement clock_settime().
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/71399
</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;'> Passes the new (manual) test on all platforms.
</span>---
include/time.h | 6 +++++-
src/time.c | 20 ++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/time.h b/include/time.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 087abfb..57436ad 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/time.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/time.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -59,6 +59,7 @@ _CLOCK_REALTIME = 0,
</span> #define CLOCK_REALTIME _CLOCK_REALTIME
_CLOCK_MONOTONIC = 6,
#define CLOCK_MONOTONIC _CLOCK_MONOTONIC
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
_CLOCK_MONOTONIC_RAW = 4,
#define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -68,7 +69,8 @@ _CLOCK_UPTIME_RAW = 8,
</span> #define CLOCK_UPTIME_RAW _CLOCK_UPTIME_RAW
_CLOCK_UPTIME_RAW_APPROX = 9,
#define CLOCK_UPTIME_RAW_APPROX _CLOCK_UPTIME_RAW_APPROX
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> _CLOCK_PROCESS_CPUTIME_ID = 12,
#define CLOCK_PROCESS_CPUTIME_ID _CLOCK_PROCESS_CPUTIME_ID
_CLOCK_THREAD_CPUTIME_ID = 16
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -84,6 +86,8 @@ extern int clock_getres ( clockid_t clk_id, struct timespec *ts );
</span> __uint64_t clock_gettime_nsec_np(clockid_t __clock_id);
#endif
<span style='display:block; white-space:pre;background:#e0ffe0;'>+extern int clock_settime(clockid_t clk_id, const struct timespec *ts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> __MP__END_DECLS
#endif /* __MPLS_SDK_SUPPORT_GETTIME__ */
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/time.c b/src/time.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 95f8ef1..3b23aa7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/time.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/time.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,6 +20,8 @@
</span>
#if __MPLS_LIB_SUPPORT_GETTIME__
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <errno.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stddef.h>
</span> #include <time.h>
#include <sys/time.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -139,6 +141,24 @@ int clock_getres( clockid_t clk_id, struct timespec *ts )
</span> return ret;
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+clock_settime(clockid_t clk_id, const struct timespec *ts)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct timeval tv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch (clk_id) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case CLOCK_REALTIME:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tv.tv_sec = ts->tv_sec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tv.tv_usec = ts->tv_nsec / 1000;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return settimeofday(&tv, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ errno = EINVAL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #endif /* __MPLS_LIB_SUPPORT_GETTIME__ */
#if __MPLS_LIB_SUPPORT_TIMESPEC_GET__
</pre><pre style='margin:0'>
</pre>