Lines Matching refs:timer

8 static void timer_list_pri_insert(klist_t *head, ktimer_t *timer)  in timer_list_pri_insert()  argument
19 val = timer->remain; in timer_list_pri_insert()
28 klist_insert(q, &timer->timer_list); in timer_list_pri_insert()
31 static void timer_list_rm(ktimer_t *timer) in timer_list_rm() argument
35 head = timer->to_head; in timer_list_rm()
37 klist_rm(&timer->timer_list); in timer_list_rm()
38 timer->to_head = NULL; in timer_list_rm()
42 static kstat_t timer_create(ktimer_t *timer, const name_t *name, timer_cb_t cb, tick_t first, in timer_create() argument
47 NULL_PARA_CHK(timer); in timer_create()
63 timer->name = name; in timer_create()
64 timer->cb = cb; in timer_create()
65 timer->init_count = first; in timer_create()
66 timer->round_ticks = round; in timer_create()
67 timer->remain = 0u; in timer_create()
68 timer->match = 0u; in timer_create()
69 timer->timer_state = TIMER_DEACTIVE; in timer_create()
70 timer->to_head = NULL; in timer_create()
71 timer->mm_alloc_flag = mm_alloc_flag; in timer_create()
72 timer->timer_cb_arg = arg; in timer_create()
74 klist_init(&timer->timer_list); in timer_create()
76 timer->obj_type = RHINO_TIMER_OBJ_TYPE; in timer_create()
79 err = krhino_timer_start(timer); in timer_create()
82 TRACE_TIMER_CREATE(krhino_cur_task_get(), timer); in timer_create()
87 kstat_t krhino_timer_create(ktimer_t *timer, const name_t *name, timer_cb_t cb, in krhino_timer_create() argument
90 return timer_create(timer, name, cb, first, round, arg, auto_run, K_OBJ_STATIC_ALLOC); in krhino_timer_create()
93 kstat_t krhino_timer_del(ktimer_t *timer) in krhino_timer_del() argument
97 NULL_PARA_CHK(timer); in krhino_timer_del()
99 cb.timer = timer; in krhino_timer_del()
106 kstat_t krhino_timer_dyn_create(ktimer_t **timer, const name_t *name, timer_cb_t cb, in krhino_timer_dyn_create() argument
112 NULL_PARA_CHK(timer); in krhino_timer_dyn_create()
125 *timer = timer_obj; in krhino_timer_dyn_create()
130 kstat_t krhino_timer_dyn_del(ktimer_t *timer) in krhino_timer_dyn_del() argument
134 NULL_PARA_CHK(timer); in krhino_timer_dyn_del()
136 cb.timer = timer; in krhino_timer_dyn_del()
143 kstat_t krhino_timer_start(ktimer_t *timer) in krhino_timer_start() argument
147 NULL_PARA_CHK(timer); in krhino_timer_start()
149 cb.timer = timer; in krhino_timer_start()
155 kstat_t krhino_timer_stop(ktimer_t *timer) in krhino_timer_stop() argument
159 NULL_PARA_CHK(timer); in krhino_timer_stop()
161 cb.timer = timer; in krhino_timer_stop()
167 kstat_t krhino_timer_change(ktimer_t *timer, tick_t first, tick_t round) in krhino_timer_change() argument
171 NULL_PARA_CHK(timer); in krhino_timer_change()
185 cb.timer = timer; in krhino_timer_change()
193 kstat_t krhino_timer_arg_change(ktimer_t *timer, void *arg) in krhino_timer_arg_change() argument
197 NULL_PARA_CHK(timer); in krhino_timer_arg_change()
199 cb.timer = timer; in krhino_timer_arg_change()
206 kstat_t krhino_timer_arg_change_auto(ktimer_t *timer, void *arg) in krhino_timer_arg_change_auto() argument
210 NULL_PARA_CHK(timer); in krhino_timer_arg_change_auto()
212 cb.timer = timer; in krhino_timer_arg_change_auto()
224 ktimer_t *timer; in timer_cb_proc() local
231 timer = krhino_list_entry(q, ktimer_t, timer_list); in timer_cb_proc()
232 delta = (tick_i_t)timer->match - (tick_i_t)g_timer_count; in timer_cb_proc()
235 timer->cb(timer, timer->timer_cb_arg); in timer_cb_proc()
236 timer_list_rm(timer); in timer_cb_proc()
238 if (timer->round_ticks > 0u) { in timer_cb_proc()
239 timer->remain = timer->round_ticks; in timer_cb_proc()
240 timer->match = g_timer_count + timer->remain; in timer_cb_proc()
241 timer->to_head = &g_timer_head; in timer_cb_proc()
242 timer_list_pri_insert(&g_timer_head, timer); in timer_cb_proc()
244 timer->timer_state = TIMER_DEACTIVE; in timer_cb_proc()
254 ktimer_t *timer = cb->timer; in cmd_proc() local
256 if (timer->obj_type != RHINO_TIMER_OBJ_TYPE) { in cmd_proc()
262 if (timer->timer_state == TIMER_ACTIVE) { in cmd_proc()
266 timer->match = g_timer_count + timer->init_count; in cmd_proc()
268 timer->remain = timer->init_count; in cmd_proc()
270 timer->to_head = &g_timer_head; in cmd_proc()
271 timer_list_pri_insert(&g_timer_head, timer); in cmd_proc()
272 timer->timer_state = TIMER_ACTIVE; in cmd_proc()
275 if (timer->timer_state == TIMER_DEACTIVE) { in cmd_proc()
278 timer_list_rm(timer); in cmd_proc()
279 timer->timer_state = TIMER_DEACTIVE; in cmd_proc()
286 if (timer->timer_state != TIMER_DEACTIVE) { in cmd_proc()
291 timer->init_count = cb->first; in cmd_proc()
292 timer->round_ticks = cb->u.round; in cmd_proc()
295 if (timer->timer_state != TIMER_DEACTIVE) { in cmd_proc()
299 timer->timer_cb_arg = cb->u.arg; in cmd_proc()
302 if (timer->timer_state != TIMER_DEACTIVE) { in cmd_proc()
306 if (timer->mm_alloc_flag != K_OBJ_STATIC_ALLOC) { in cmd_proc()
310 timer->obj_type = RHINO_OBJ_TYPE_NONE; in cmd_proc()
311 TRACE_TIMER_DEL(krhino_cur_task_get(), timer); in cmd_proc()
315 if (timer->timer_state != TIMER_DEACTIVE) { in cmd_proc()
319 if (timer->mm_alloc_flag != K_OBJ_DYN_ALLOC) { in cmd_proc()
323 timer->obj_type = RHINO_OBJ_TYPE_NONE; in cmd_proc()
324 TRACE_TIMER_DEL(krhino_cur_task_get(), timer); in cmd_proc()
325 krhino_mm_free(timer); in cmd_proc()
348 ktimer_t *timer; in timer_task() local
371 timer = krhino_list_entry(g_timer_head.next, ktimer_t, timer_list); in timer_task()
373 delta = (tick_i_t)timer->match - (tick_i_t)tick_start; in timer_task()