static void ioAlarmFunc(s32 id, u16 time, void *arg) { if (!gIOTerminate && !stopIOTimer) { iWakeupThread ( gDispatcherThreadID ); iRotateThreadReadyQueue ( 30 ); alarmID = iSetAlarm ( 625, &ioAlarmFunc, NULL ); } }
static void _sleep_waker(s32 alarm_id, u16 time, void *arg2) { struct sleep_data *sd = (struct sleep_data *) arg2; if (clock() >= sd->wait) iSignalSema(sd->s); else iSetAlarm(HSYNC_COUNT, _sleep_waker, arg2); }