Lines Matching refs:fts

226 	fmd_timesim_t *fts = fmd_alloc(sizeof (fmd_timesim_t), FMD_SLEEP);  in fmd_simulator_init()  local
229 (void) pthread_mutex_init(&fts->fts_lock, NULL); in fmd_simulator_init()
230 (void) pthread_cond_init(&fts->fts_cv, NULL); in fmd_simulator_init()
233 fts->fts_tod = (hrtime_t)tv.tv_sec * NANOSEC + in fmd_simulator_init()
236 fts->fts_hrt = 0; in fmd_simulator_init()
237 fts->fts_cancel = 0; in fmd_simulator_init()
240 tv.tv_sec, fts->fts_tod); in fmd_simulator_init()
242 return (fts); in fmd_simulator_init()
246 fmd_simulator_fini(void *fts) in fmd_simulator_fini() argument
248 if (fts != NULL) in fmd_simulator_fini()
249 fmd_free(fts, sizeof (fmd_timesim_t)); in fmd_simulator_fini()
256 fmd_timesim_t *fts = fmd.d_clockptr; in fmd_simulator_tod() local
259 (void) pthread_mutex_lock(&fts->fts_lock); in fmd_simulator_tod()
261 tod = fts->fts_tod; in fmd_simulator_tod()
262 hrt = fts->fts_hrt; in fmd_simulator_tod()
264 (void) pthread_mutex_unlock(&fts->fts_lock); in fmd_simulator_tod()
278 fmd_timesim_t *fts = fmd.d_clockptr; in fmd_simulator_hrt() local
281 (void) pthread_mutex_lock(&fts->fts_lock); in fmd_simulator_hrt()
282 hrt = fts->fts_hrt; in fmd_simulator_hrt()
283 (void) pthread_mutex_unlock(&fts->fts_lock); in fmd_simulator_hrt()
291 fmd_timesim_t *fts = fmd.d_clockptr; in fmd_simulator_add() local
293 (void) pthread_mutex_lock(&fts->fts_lock); in fmd_simulator_add()
295 if (fts->fts_hrt + delta < fts->fts_hrt) in fmd_simulator_add()
296 fts->fts_hrt = INT64_MAX; /* do not increment past apocalypse */ in fmd_simulator_add()
298 fts->fts_hrt += delta; in fmd_simulator_add()
300 TRACE((FMD_DBG_TMR, "hrt clock set %llx", fts->fts_hrt)); in fmd_simulator_add()
301 fmd_dprintf(FMD_DBG_TMR, "hrt clock set %llx\n", fts->fts_hrt); in fmd_simulator_add()
303 (void) pthread_cond_broadcast(&fts->fts_cv); in fmd_simulator_add()
304 (void) pthread_mutex_unlock(&fts->fts_lock); in fmd_simulator_add()
310 fmd_timesim_t *fts = fmd.d_clockptr; in fmd_simulator_wait() local
313 (void) pthread_mutex_lock(&fts->fts_lock); in fmd_simulator_wait()
320 if (fts->fts_hrt + delta < fts->fts_hrt) in fmd_simulator_wait()
323 hrt = fts->fts_hrt + delta; in fmd_simulator_wait()
325 while (fts->fts_hrt < hrt && fts->fts_cancel == 0) in fmd_simulator_wait()
326 (void) pthread_cond_wait(&fts->fts_cv, &fts->fts_lock); in fmd_simulator_wait()
328 if (fts->fts_cancel != 0) in fmd_simulator_wait()
329 fts->fts_cancel--; /* cancel has been processed */ in fmd_simulator_wait()
331 (void) pthread_mutex_unlock(&fts->fts_lock); in fmd_simulator_wait()
338 fmd_timesim_t *fts = fmd.d_clockptr; in fmd_simulator_cancel() local
340 (void) pthread_mutex_lock(&fts->fts_lock); in fmd_simulator_cancel()
341 fts->fts_cancel++; in fmd_simulator_cancel()
342 (void) pthread_cond_signal(&fts->fts_cv); in fmd_simulator_cancel()
343 (void) pthread_mutex_unlock(&fts->fts_lock); in fmd_simulator_cancel()