Lines Matching refs:alarm
39 static void OSi_SetTimer(OSAlarm *alarm);
40 static void OSi_InsertAlarm(OSAlarm *alarm, OSTick fire);
55 static void OSi_SetTimer(OSAlarm *alarm) in OSi_SetTimer() argument
64 delta = (s64)(alarm->fire - tick); in OSi_SetTimer()
182 void OS_CreateAlarm(OSAlarm *alarm) in OS_CreateAlarm() argument
185 SDK_ASSERT(alarm); in OS_CreateAlarm()
187 alarm->handler = 0; in OS_CreateAlarm()
188 alarm->tag = 0; in OS_CreateAlarm()
202 static void OSi_InsertAlarm(OSAlarm *alarm, OSTick fire) in OSi_InsertAlarm() argument
208 if (alarm->period > 0) in OSi_InsertAlarm()
212 fire = alarm->start; in OSi_InsertAlarm()
213 if (alarm->start < tick) in OSi_InsertAlarm()
215 fire += alarm->period * ((tick - alarm->start) / alarm->period + 1); in OSi_InsertAlarm()
220 alarm->fire = fire; in OSi_InsertAlarm()
232 alarm->prev = next->prev; in OSi_InsertAlarm()
233 next->prev = alarm; in OSi_InsertAlarm()
234 alarm->next = next; in OSi_InsertAlarm()
235 prev = alarm->prev; in OSi_InsertAlarm()
238 prev->next = alarm; in OSi_InsertAlarm()
242 OSi_AlarmQueue.head = alarm; in OSi_InsertAlarm()
243 OSi_SetTimer(alarm); in OSi_InsertAlarm()
250 alarm->next = 0; in OSi_InsertAlarm()
252 OSi_AlarmQueue.tail = alarm; in OSi_InsertAlarm()
253 alarm->prev = prev; in OSi_InsertAlarm()
256 prev->next = alarm; in OSi_InsertAlarm()
260 OSi_AlarmQueue.head = OSi_AlarmQueue.tail = alarm; in OSi_InsertAlarm()
261 OSi_SetTimer(alarm); in OSi_InsertAlarm()
278 void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg) in OS_SetAlarm() argument
285 if (!alarm || alarm->handler) in OS_SetAlarm()
297 alarm->period = 0; in OS_SetAlarm()
300 alarm->handler = handler; in OS_SetAlarm()
301 alarm->arg = arg; in OS_SetAlarm()
304 OSi_InsertAlarm(alarm, OS_GetTick() + tick); in OS_SetAlarm()
322 void OS_SetPeriodicAlarm(OSAlarm *alarm, OSTick start, OSTick period, OSAlarmHandler handler, in OS_SetPeriodicAlarm() argument
331 if (!alarm || alarm->handler) in OS_SetPeriodicAlarm()
343 alarm->period = period; in OS_SetPeriodicAlarm()
344 alarm->start = start; in OS_SetPeriodicAlarm()
347 alarm->handler = handler; in OS_SetPeriodicAlarm()
348 alarm->arg = arg; in OS_SetPeriodicAlarm()
351 OSi_InsertAlarm(alarm, 0); in OS_SetPeriodicAlarm()
365 void OS_CancelAlarm(OSAlarm *alarm) in OS_CancelAlarm() argument
371 SDK_ASSERT(alarm); in OS_CancelAlarm()
375 if (alarm->handler == NULL) in OS_CancelAlarm()
382 next = alarm->next; in OS_CancelAlarm()
385 OSi_AlarmQueue.tail = alarm->prev; in OS_CancelAlarm()
389 next->prev = alarm->prev; in OS_CancelAlarm()
392 if (alarm->prev) in OS_CancelAlarm()
394 alarm->prev->next = next; in OS_CancelAlarm()
405 alarm->handler = NULL; in OS_CancelAlarm()
406 alarm->period = 0; // Not periodic alarm in OS_CancelAlarm()
444 OSAlarm *alarm; in OSi_ArrangeTimer() local
459 alarm = OSi_AlarmQueue.head; in OSi_ArrangeTimer()
464 if (alarm == NULL) in OSi_ArrangeTimer()
470 if (tick < alarm->fire) in OSi_ArrangeTimer()
472 OSi_SetTimer(alarm); in OSi_ArrangeTimer()
477 next = alarm->next; in OSi_ArrangeTimer()
490 handler = alarm->handler; in OSi_ArrangeTimer()
492 if (alarm->period == 0) in OSi_ArrangeTimer()
494 alarm->handler = NULL; in OSi_ArrangeTimer()
499 (handler) (alarm->arg); in OSi_ArrangeTimer()
503 if (alarm->period > 0) in OSi_ArrangeTimer()
505 alarm->handler = handler; in OSi_ArrangeTimer()
506 OSi_InsertAlarm(alarm, 0); in OSi_ArrangeTimer()
527 void OS_SetAlarmTag(OSAlarm *alarm, u32 tag) in OS_SetAlarmTag() argument
530 SDK_ASSERT(alarm); in OS_SetAlarmTag()
533 alarm->tag = tag; in OS_SetAlarmTag()
549 OSAlarm *alarm; in OS_CancelAlarms() local
562 for (alarm = OSi_AlarmQueue.head, next = alarm ? alarm->next : NULL; in OS_CancelAlarms()
563 alarm; alarm = next, next = alarm ? alarm->next : NULL) in OS_CancelAlarms()
565 if (alarm->tag == tag) in OS_CancelAlarms()
568 OS_CancelAlarm(alarm); in OS_CancelAlarms()
588 OSAlarm *alarm; in OS_CancelAllAlarms() local
594 for (alarm = OSi_AlarmQueue.head, next = alarm ? alarm->next : NULL; in OS_CancelAllAlarms()
595 alarm; alarm = next, next = alarm ? alarm->next : NULL) in OS_CancelAllAlarms()
598 OS_CancelAlarm(alarm); in OS_CancelAllAlarms()