Lines Matching refs:dwork
33 void k_work_init_delayable(struct k_work_delayable *dwork, k_work_handler_t handler) in k_work_init_delayable() argument
35 dwork->work.handler = handler; in k_work_init_delayable()
38 int k_work_reschedule(struct k_work_delayable *dwork, k_timeout_t delay) in k_work_reschedule() argument
43 dwork->timeout.dticks = delay.ticks; in k_work_reschedule()
47 on_list = work == &dwork->work; in k_work_reschedule()
53 if (dwork->timeout.dticks == 0) { in k_work_reschedule()
54 dwork->work.handler(&dwork->work); in k_work_reschedule()
56 (void)sys_slist_remove(&work_pending, NULL, &dwork->work.node); in k_work_reschedule()
59 sys_slist_append(&work_pending, &dwork->work.node); in k_work_reschedule()
65 int k_work_schedule(struct k_work_delayable *dwork, k_timeout_t delay) in k_work_schedule() argument
71 if (work == &dwork->work) { in k_work_schedule()
76 dwork->timeout.dticks = delay.ticks; in k_work_schedule()
77 if (dwork->timeout.dticks == 0) { in k_work_schedule()
78 dwork->work.handler(&dwork->work); in k_work_schedule()
80 sys_slist_append(&work_pending, &dwork->work.node); in k_work_schedule()
86 int k_work_cancel_delayable(struct k_work_delayable *dwork) in k_work_cancel_delayable() argument
88 (void)sys_slist_find_and_remove(&work_pending, &dwork->work.node); in k_work_cancel_delayable()
123 struct k_work_delayable *dwork = k_work_delayable_from_work(work); in k_sleep() local
125 if (dwork->timeout.dticks > timeout.ticks) { in k_sleep()
126 dwork->timeout.dticks -= timeout.ticks; in k_sleep()