diff --git a/src/libCom/osi/os/vxWorks/osdTime.cpp b/src/libCom/osi/os/vxWorks/osdTime.cpp index 77f39f06b..2bb50d54b 100644 --- a/src/libCom/osi/os/vxWorks/osdTime.cpp +++ b/src/libCom/osi/os/vxWorks/osdTime.cpp @@ -1,7 +1,4 @@ -#include -#include -#include #define epicsExportSharedSymbols #include "osiTime.h" @@ -18,18 +15,12 @@ void osiTime::synchronize() // osiTime osiTime::osdGetCurrent () { - ULONG ticks; - ULONG sec; - ULONG nsec; - ULONG rate = sysClkRateGet(); - - // - // currently assuming that this has been already adjusted - // for the EPICS epoch - // - ticks = tickGet(); - sec = ticks / rate; - nsec = (ticks % rate) * (nSecPerSec / rate); - - return osiTime (sec, nsec); + struct timespec ts; + int status; + + status = clock_gettime(CLOCK_REALTIME, &ts); + if (status!=0) { + throw unableToFetchCurrentTime (); + } + return osiTime (ts); }