void testVTimerGetSimple() { SceUID vtimer1; printf("sceKernelCreateVTimer:%08X\n", vtimer1 = sceKernelCreateVTimer("VTIMER1", NULL)); sceKernelDelayThread(10000); printf("sceKernelGetVTimerTimeWide: %lld\n", sceKernelGetVTimerTimeWide(vtimer1) / 10000); printf("sceKernelStartVTimer:0x%08X\n", sceKernelStartVTimer(vtimer1)); sceKernelDelayThread(10000); printf("sceKernelGetVTimerTimeWide: %lld\n", sceKernelGetVTimerTimeWide(vtimer1) / 10000); printf("sceKernelStopVTimer:0x%08X\n", sceKernelStopVTimer(vtimer1)); printf("sceKernelStartVTimer:0x%08X\n", sceKernelStartVTimer(vtimer1)); sceKernelDelayThread(10000); printf("sceKernelGetVTimerTimeWide: %lld\n", sceKernelGetVTimerTimeWide(vtimer1) / 10000); printf("sceKernelStopVTimer:0x%08X\n", sceKernelStopVTimer(vtimer1)); printf("sceKernelStopVTimer:0x%08X\n", sceKernelStopVTimer(vtimer1)); printf("sceKernelGetVTimerTimeWide: %lld\n", sceKernelGetVTimerTimeWide(vtimer1) / 10000); printf("sceKernelCancelVTimerHandler:0x%08X\n", sceKernelCancelVTimerHandler(vtimer1)); }
inline void testCancel(const char *title, SceUID vtimer) { int result = sceKernelCancelVTimerHandler(vtimer); if (result == 0) { checkpoint(NULL); schedf("%s: OK ", title); } else { checkpoint(NULL); schedf("%s: Failed (%08x) ", title, result); } schedfVTimer(vtimer); }
void testVTimerHandler() { SceKernelSysClock time; printf("sceKernelCreateVTimer:%08X\n", vtimer = sceKernelCreateVTimer("VTIMER", NULL)); printf("sceKernelStartVTimer:%08X\n", sceKernelStartVTimer(vtimer)); time.hi = 0; time.low = 1000; printf("sceKernelSetVTimerHandler:0x%08X\n", sceKernelSetVTimerHandler(vtimer, &time, testVTimerHandler_TimerHandler, NULL)); sceKernelDelayThread(5000); printf("sceKernelStopVTimer:0x%08X\n", sceKernelStopVTimer(vtimer)); printf("sceKernelCancelVTimerHandler:0x%08X\n", sceKernelCancelVTimerHandler(vtimer)); }
SceUInt cancelHandler(SceUID uid, SceKernelSysClock *scheduled, SceKernelSysClock *actual, void *common) { checkpoint("Inside handler, cancel timer: %08x", sceKernelCancelVTimerHandler(vtimer)); checkpoint("Inside handler, cancel NULL: %08x", sceKernelCancelVTimerHandler(0)); return 0; }