Lines Matching refs:tq

63 iu_tq_destroy(iu_tq_t *tq)  in iu_tq_destroy()  argument
67 for (node = tq->iutq_head; node != NULL; node = next_node) { in iu_tq_destroy()
69 destroy_timer(tq, node); in iu_tq_destroy()
72 free(tq); in iu_tq_destroy()
85 insert_timer(iu_tq_t *tq, iu_timer_node_t *node, uint64_t msec) in insert_timer() argument
100 if (tq->iutq_head != NULL && in insert_timer()
101 tq->iutq_head->iutn_abs_timeout < node->iutn_abs_timeout) in insert_timer()
102 for (after = tq->iutq_head; after->iutn_next != NULL; in insert_timer()
108 node->iutn_next = after ? after->iutn_next : tq->iutq_head; in insert_timer()
111 tq->iutq_head = node; in insert_timer()
128 remove_timer(iu_tq_t *tq, iu_timer_node_t *node) in remove_timer() argument
135 tq->iutq_head = node->iutn_next; in remove_timer()
147 destroy_timer(iu_tq_t *tq, iu_timer_node_t *node) in destroy_timer() argument
149 release_timer_id(tq, node->iutn_timer_id); in destroy_timer()
156 if (tq->iutq_in_expire) { in destroy_timer()
176 iu_schedule_timer(iu_tq_t *tq, uint32_t sec, iu_tq_callback_t *callback, in iu_schedule_timer() argument
179 return (iu_schedule_timer_ms(tq, sec * MILLISEC, callback, arg)); in iu_schedule_timer()
193 iu_schedule_timer_ms(iu_tq_t *tq, uint64_t ms, iu_tq_callback_t *callback, in iu_schedule_timer_ms() argument
203 node->iutn_timer_id = get_timer_id(tq); in iu_schedule_timer_ms()
209 insert_timer(tq, node, ms); in iu_schedule_timer_ms()
225 iu_cancel_timer(iu_tq_t *tq, iu_timer_id_t timer_id, void **arg) in iu_cancel_timer() argument
232 for (node = tq->iutq_head; node != NULL; node = node->iutn_next) { in iu_cancel_timer()
236 remove_timer(tq, node); in iu_cancel_timer()
237 destroy_timer(tq, node); in iu_cancel_timer()
254 iu_adjust_timer(iu_tq_t *tq, iu_timer_id_t timer_id, uint32_t sec) in iu_adjust_timer() argument
261 for (node = tq->iutq_head; node != NULL; node = node->iutn_next) { in iu_adjust_timer()
263 remove_timer(tq, node); in iu_adjust_timer()
264 insert_timer(tq, node, sec * MILLISEC); in iu_adjust_timer()
280 iu_earliest_timer(iu_tq_t *tq) in iu_earliest_timer() argument
285 if (tq->iutq_head == NULL) in iu_earliest_timer()
293 if (tq->iutq_head->iutn_abs_timeout <= current_time) in iu_earliest_timer()
302 (tq->iutq_head->iutn_abs_timeout - current_time) / 1000000; in iu_earliest_timer()
315 iu_expire_timers(iu_tq_t *tq) in iu_expire_timers() argument
327 tq->iutq_in_expire++; in iu_expire_timers()
336 for (node = tq->iutq_head; node != NULL; node = node->iutn_next) in iu_expire_timers()
339 for (node = tq->iutq_head; node != NULL; in iu_expire_timers()
370 remove_timer(tq, node); in iu_expire_timers()
371 destroy_timer(tq, node); in iu_expire_timers()
372 node->iutn_callback(tq, node->iutn_arg); in iu_expire_timers()
375 tq->iutq_in_expire--; in iu_expire_timers()
400 get_timer_id(iu_tq_t *tq) in get_timer_id() argument
406 for (; ; tq->iutq_next_timer_id++) { in get_timer_id()
408 if (tq->iutq_next_timer_id >= IU_TIMER_ID_MAX) { in get_timer_id()
413 tq->iutq_next_timer_id = 0; in get_timer_id()
416 map_index = tq->iutq_next_timer_id / CHAR_BIT; in get_timer_id()
417 map_bit = tq->iutq_next_timer_id % CHAR_BIT; in get_timer_id()
419 if ((tq->iutq_timer_id_map[map_index] & (1 << map_bit)) == 0) in get_timer_id()
423 tq->iutq_timer_id_map[map_index] |= (1 << map_bit); in get_timer_id()
424 return (tq->iutq_next_timer_id++); in get_timer_id()
436 release_timer_id(iu_tq_t *tq, iu_timer_id_t timer_id) in release_timer_id() argument
441 tq->iutq_timer_id_map[map_index] &= ~(1 << map_bit); in release_timer_id()