From cb7b77b63dc14e754a4f79f30835a47a45296d14 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 7 Nov 2017 22:41:23 -0600 Subject: [PATCH] Copy Darwin version of osdMonitonic.c to iOS --- src/osi/os/iOS/osdMonotonic.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/osi/os/iOS/osdMonotonic.c b/src/osi/os/iOS/osdMonotonic.c index 0eab29c91..dfce9dc85 100644 --- a/src/osi/os/iOS/osdMonotonic.c +++ b/src/osi/os/iOS/osdMonotonic.c @@ -4,7 +4,8 @@ * in file LICENSE that is included with this distribution. \*************************************************************************/ -#import +#include +#include #define epicsExportSharedSymbols #define EPICS_EXPOSE_LIBCOM_MONOTONIC_PRIVATE @@ -13,19 +14,21 @@ #include "epicsTime.h" #include "generalTimeSup.h" +/* see https://developer.apple.com/library/content/qa/qa1398/_index.html */ +static mach_timebase_info_data_t tbinfo; + void osdMonotonicInit(void) { - /* no-op */ + (void)mach_timebase_info(&tbinfo); } epicsUInt64 epicsMonotonicResolution(void) { - return 1; /* TODO, how to find ? */ + return 1e-9 * tbinfo.numer / tbinfo.denom; } epicsUInt64 epicsMonotonicGet(void) { - uint64_t val = mach_absolute_time(), ret; - absolutetime_to_nanoseconds(val, &ret); - return ret; + uint64_t val = mach_absolute_time(); + return val * tbinfo.numer / tbinfo.denom; }