extern "C" int main(int argc, char *argv[]) { vtimer = sceKernelCreateVTimer("cancel", NULL); testCancel("Normal", vtimer); testCancel("Twice", vtimer); testCancel("NULL", 0); testCancel("Invalid", 0xDEADBEEF); sceKernelDeleteVTimer(vtimer); testCancel("Deleted", vtimer); vtimer = sceKernelCreateVTimer("delete", NULL); sceKernelStartVTimer(vtimer); testCancel("Started", vtimer); sceKernelSetVTimerHandlerWide(vtimer, 1, &basicHandler, (void *)0xABCD1337); testCancel("With handler", vtimer); SceKernelSysClock t = {1, 0}; sceKernelSetVTimerHandler(vtimer, &t, &cancelHandler, (void *)0xABCD1337); sceKernelDelayThread(1000); testCancel("After cancel handler", vtimer); sceKernelSetVTimerHandlerWide(vtimer, 1, &zeroHandler, (void *)0xABCD1337); sceKernelDelayThread(1000); schedfVTimer(vtimer); testCancel("After return zero handler", vtimer); return 0; }
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)); }