Lines Matching refs:tc

6576 	timed_counter_t	*tc = (timed_counter_t *)arg;  in fctl_tc_timer()  local
6578 ASSERT(tc != NULL); in fctl_tc_timer()
6579 ASSERT(tc->sig == tc); in fctl_tc_timer()
6581 mutex_enter(&tc->mutex); in fctl_tc_timer()
6582 if (tc->active) { in fctl_tc_timer()
6583 tc->active = B_FALSE; in fctl_tc_timer()
6584 tc->counter = 0; in fctl_tc_timer()
6586 mutex_exit(&tc->mutex); in fctl_tc_timer()
6605 fctl_tc_constructor(timed_counter_t *tc, uint32_t max_value, clock_t timer) in fctl_tc_constructor() argument
6607 ASSERT(tc != NULL); in fctl_tc_constructor()
6608 ASSERT(tc->sig != tc); in fctl_tc_constructor()
6610 bzero(tc, sizeof (*tc)); in fctl_tc_constructor()
6611 mutex_init(&tc->mutex, NULL, MUTEX_DRIVER, NULL); in fctl_tc_constructor()
6612 tc->timer = drv_usectohz(timer); in fctl_tc_constructor()
6613 tc->active = B_FALSE; in fctl_tc_constructor()
6614 tc->maxed_out = B_FALSE; in fctl_tc_constructor()
6615 tc->max_value = max_value; in fctl_tc_constructor()
6616 tc->sig = tc; in fctl_tc_constructor()
6631 fctl_tc_destructor(timed_counter_t *tc) in fctl_tc_destructor() argument
6633 ASSERT(tc != NULL); in fctl_tc_destructor()
6634 ASSERT(tc->sig == tc); in fctl_tc_destructor()
6635 ASSERT(!mutex_owned(&tc->mutex)); in fctl_tc_destructor()
6637 mutex_enter(&tc->mutex); in fctl_tc_destructor()
6638 if (tc->active) { in fctl_tc_destructor()
6639 tc->active = B_FALSE; in fctl_tc_destructor()
6640 mutex_exit(&tc->mutex); in fctl_tc_destructor()
6641 (void) untimeout(tc->tid); in fctl_tc_destructor()
6642 mutex_enter(&tc->mutex); in fctl_tc_destructor()
6643 tc->sig = NULL; in fctl_tc_destructor()
6645 mutex_exit(&tc->mutex); in fctl_tc_destructor()
6646 mutex_destroy(&tc->mutex); in fctl_tc_destructor()
6662 fctl_tc_increment(timed_counter_t *tc) in fctl_tc_increment() argument
6664 ASSERT(tc != NULL); in fctl_tc_increment()
6665 ASSERT(tc->sig == tc); in fctl_tc_increment()
6667 mutex_enter(&tc->mutex); in fctl_tc_increment()
6668 if (!tc->maxed_out) { in fctl_tc_increment()
6670 ++tc->counter; in fctl_tc_increment()
6671 if (tc->counter >= tc->max_value) { in fctl_tc_increment()
6673 tc->maxed_out = B_TRUE; in fctl_tc_increment()
6675 if (!tc->active) { in fctl_tc_increment()
6676 tc->tid = timeout(fctl_tc_timer, tc, tc->timer); in fctl_tc_increment()
6677 tc->active = B_TRUE; in fctl_tc_increment()
6680 mutex_exit(&tc->mutex); in fctl_tc_increment()
6682 return (tc->maxed_out); in fctl_tc_increment()
6700 fctl_tc_reset(timed_counter_t *tc) in fctl_tc_reset() argument
6702 ASSERT(tc != NULL); in fctl_tc_reset()
6703 ASSERT(tc->sig == tc); in fctl_tc_reset()
6705 mutex_enter(&tc->mutex); in fctl_tc_reset()
6706 tc->counter = 0; in fctl_tc_reset()
6707 tc->maxed_out = B_FALSE; in fctl_tc_reset()
6708 if (tc->active) { in fctl_tc_reset()
6709 tc->active = B_FALSE; in fctl_tc_reset()
6710 (void) untimeout(tc->tid); in fctl_tc_reset()
6712 mutex_exit(&tc->mutex); in fctl_tc_reset()