From 5cfff383b265ab99448ce44d39b0e865bf9bdd4d Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Fri, 7 Jun 2019 13:16:42 -0500 Subject: [PATCH] Synchronization hook support for osiClockTime --- src/libCom/osi/osiClockTime.c | 7 +++++++ src/libCom/osi/osiClockTime.h | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/libCom/osi/osiClockTime.c b/src/libCom/osi/osiClockTime.c index fb9d1532f..8ae43aed8 100644 --- a/src/libCom/osi/osiClockTime.c +++ b/src/libCom/osi/osiClockTime.c @@ -148,6 +148,8 @@ void ClockTime_GetProgramStart(epicsTimeStamp *pDest) /* Synchronization thread */ #if defined(vxWorks) || defined(__rtems__) +CLOCKTIME_SYNCHOOK ClockTime_syncHook = NULL; + static void ClockTimeSync(void *dummy) { taskwdInsert(0, NULL, NULL); @@ -179,11 +181,16 @@ static void ClockTimeSync(void *dummy) ClockTimePvt.syncTime = timeNow; epicsMutexUnlock(ClockTimePvt.lock); + if (ClockTime_syncHook) + ClockTime_syncHook(1); + ClockTimePvt.ClockTimeSyncInterval = ClockTimeSyncInterval_value; } } ClockTimePvt.synchronized = 0; + if (ClockTime_syncHook) + ClockTime_syncHook(0); taskwdRemove(0); } #endif diff --git a/src/libCom/osi/osiClockTime.h b/src/libCom/osi/osiClockTime.h index 17eacab3e..23598886d 100644 --- a/src/libCom/osi/osiClockTime.h +++ b/src/libCom/osi/osiClockTime.h @@ -19,6 +19,12 @@ void ClockTime_Init(int synchronize); void ClockTime_Shutdown(void *dummy); int ClockTime_Report(int level); +#if defined(vxWorks) || defined(__rtems__) +typedef void (* CLOCKTIME_SYNCHOOK)(int synchronized); + +extern CLOCKTIME_SYNCHOOK ClockTime_syncHook; +#endif + #ifdef __cplusplus } #endif