MCPcopy Create free account
hub / github.com/SmingHub/Sming / timer_insert

Function timer_insert

Sming/Arch/Rp2040/Components/driver/os_timer.cpp:41–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39};
40
41void IRAM_ATTR timer_insert(uint32_t expire, os_timer_t* ptimer)
42{
43 debug_tmr("insert %p %u", ptimer, expire);
44
45 os_timer_t* t_prev = nullptr;
46 auto t = timer_list;
47 while(t != nullptr) {
48 if(int(t->timer_expire - expire) > 0) {
49 break;
50 }
51 t_prev = t;
52 t = t->timer_next;
53 }
54 if(t_prev == nullptr) {
55 timer_list = ptimer;
56 } else {
57 t_prev->timer_next = ptimer;
58 }
59 ptimer->timer_next = t;
60 ptimer->timer_expire = expire;
61
62#ifdef ENABLE_OSTIMER_DEBUG
63 t = timer_list;
64 while(t != nullptr) {
65 debug_tmr("%p @ %u", t, t->timer_expire);
66 t = t->timer_next;
67 }
68#endif
69}
70
71// Schedule next timer, if there is one
72void IRAM_ATTR timer_schedule()

Callers 2

find_expired_timerFunction · 0.70
os_timer_arm_ticksFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected