Lines Matching refs:bt
282 bintime2timo(const struct bintime *bt)
287 if (bt->sec > ((INT_MAX/2)/hz))
289 if ((hz*(bt->frac >> 32) >> 32) > (INT_MAX/2 - hz*bt->sec))
292 return hz*bt->sec + (hz*(bt->frac >> 32) >> 32);
325 * On entry, bt is a timeout in bintime. cv_timedwaitbt subtracts
326 * the time slept, so on exit, bt is the time remaining after
340 cv_timedwaitbt(kcondvar_t *cv, kmutex_t *mtx, struct bintime *bt,
348 KASSERTMSG(bt->sec >= 0, "negative timeout");
352 if (bt->sec == 0 && bt->frac == 0)
356 timo = bintime2timo(bt);
377 if (bintimecmp(bt, &slept, <=)) {
378 bt->sec = 0;
379 bt->frac = 0;
381 /* bt := bt - slept */
382 bintime_sub(bt, &slept);
396 * On entry, bt is a timeout in bintime. cv_timedwaitbt_sig
397 * subtracts the time slept, so on exit, bt is the time remaining
405 cv_timedwaitbt_sig(kcondvar_t *cv, kmutex_t *mtx, struct bintime *bt,
413 KASSERTMSG(bt->sec >= 0, "negative timeout");
417 if (bt->sec == 0 && bt->frac == 0)
421 timo = bintime2timo(bt);
442 if (bintimecmp(bt, &slept, <=)) {
443 bt->sec = 0;
444 bt->frac = 0;
446 /* bt := bt - slept */
447 bintime_sub(bt, &slept);