int generalTimeRegisterCurrentProvider(const char *name, int priority, TIMECURRENTFUN getTime) { gtProvider *ptp; generalTime_Init(); if (name == NULL || getTime == NULL) return epicsTimeERROR; ptp = (gtProvider *)malloc(sizeof(gtProvider)); if (ptp == NULL) return epicsTimeERROR; ptp->name = epicsStrDup(name); ptp->priority = priority; ptp->get.Time = getTime; ptp->getInt.Time = NULL; insertProvider(ptp, >Pvt.timeProviders, gtPvt.timeListLock); return epicsTimeOK; }
int generalTimeRegisterEventProvider(const char *name, int priority, TIMEEVENTFUN getEvent) { gtProvider *ptp; generalTime_Init(); if (name == NULL || getEvent == NULL) return S_time_badArgs; ptp = (gtProvider *)malloc(sizeof(gtProvider)); if (ptp == NULL) return S_time_noMemory; ptp->name = epicsStrDup(name); ptp->priority = priority; ptp->get.Event = getEvent; ptp->getInt.Event = NULL; insertProvider(ptp, >Pvt.eventProviders, gtPvt.eventListLock); return epicsTimeOK; }