diff options
Diffstat (limited to 'include/dolphin/os/OSAlarm.h')
-rw-r--r-- | include/dolphin/os/OSAlarm.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/dolphin/os/OSAlarm.h b/include/dolphin/os/OSAlarm.h new file mode 100644 index 0000000..a0c9d38 --- /dev/null +++ b/include/dolphin/os/OSAlarm.h @@ -0,0 +1,39 @@ +#ifndef _DOLPHIN_OSALARM +#define _DOLPHIN_OSALARM + +#include <dolphin/os/OSContext.h> +#include <types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct OSAlarm OSAlarm; +typedef void (*OSAlarmHandler)(OSAlarm* alarm, OSContext* context); + +struct OSAlarm { + OSAlarmHandler handler; + u32 tag; + OSTime fire; + OSAlarm* prev; + OSAlarm* next; + OSTime period; + OSTime start; +}; + +void OSInitAlarm(void); +void OSSetAlarm(OSAlarm* alarm, OSTime tick, OSAlarmHandler handler); +void OSSetAlarmTag(OSAlarm* alarm, u32 tag); +void OSSetAbsAlarm(OSAlarm* alarm, OSTime time, OSAlarmHandler handler); +void OSSetPeriodicAlarm(OSAlarm* alarm, OSTime start, OSTime period, OSAlarmHandler handler); +void OSCreateAlarm(OSAlarm* alarm); +void OSCancelAlarm(OSAlarm* alarm); +void OSCancelAlarms(u32 tag); + +BOOL OSCheckAlarmQueue(void); + +#ifdef __cplusplus +} +#endif + +#endif // _DOLPHIN_OSALARM |