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