mirror of https://github.com/zeldaret/tp.git
47 lines
1.2 KiB
C
47 lines
1.2 KiB
C
#ifndef OSALARM_H
|
|
#define OSALARM_H
|
|
|
|
#include "dolphin/os/OSTime.h"
|
|
#include "dolphin/os/OSError.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct OSAlarmLink {
|
|
/* 0x0 */ struct OSAlarm* prev;
|
|
/* 0x4 */ struct OSAlarm* next;
|
|
} OSAlarmLink;
|
|
|
|
typedef struct OSAlarm;
|
|
typedef void (*OSAlarmHandler)(struct OSAlarm* alarm, OSContext* context);
|
|
|
|
typedef struct OSAlarm {
|
|
/* 0x00 */ OSAlarmHandler handler;
|
|
/* 0x04 */ u32 tag;
|
|
/* 0x08 */ OSTime fire_time;
|
|
/* 0x10 */ OSAlarmLink link;
|
|
/* 0x18 */ OSTime period_time;
|
|
/* 0x20 */ OSTime start_time;
|
|
} OSAlarm; // Size: 0x28
|
|
|
|
typedef struct OSAlarmQueue {
|
|
OSAlarm* head;
|
|
OSAlarm* tail;
|
|
} OSAlarmQueue;
|
|
|
|
void OSInitAlarm(void);
|
|
void OSCreateAlarm(OSAlarm* alarm);
|
|
static void InsertAlarm(OSAlarm* alarm, s64 time, OSAlarmHandler handler);
|
|
void OSSetAlarm(OSAlarm* alarm, s64 time, OSAlarmHandler handler);
|
|
void OSSetPeriodicAlarm(OSAlarm* alarm, s64 start, s64 period, OSAlarmHandler handler);
|
|
void OSCancelAlarm(OSAlarm* alarm);
|
|
static void DecrementerExceptionCallback(__OSException exception, OSContext* context);
|
|
static void DecrementerExceptionHandler(__OSException exception, OSContext* context);
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif /* OSALARM_H */
|