Example #1
0
static int scheduleTestFunc1(SceSize argSize, void* argPointer) {
	u32 bits = 0xDEADBEEF;
	SceUInt timeout = 5000;

	schedf("T1B");
	int result = sceKernelWaitEventFlagCB(*(int*) argPointer, 0x00FF, PSP_EVENT_WAITOR | PSP_EVENT_WAITCLEAR, &bits, &timeout);
	schedf("T1D (result=%08x, bits=%08x) ", result, (uint) bits);

	return 0;
}
Example #2
0
static int scheduleTestFunc3(SceSize argSize, void* argPointer) {
	int result = 0x800201A8;
	u32 bits = 0xDEADBEEF;
	SceUInt timeout;

	schedf("T3B");
	while (result == 0x800201A8) {
		timeout = 5;
		result = sceKernelWaitEventFlagCB(*(int*) argPointer, 0xFFFF, PSP_EVENT_WAITOR | PSP_EVENT_WAITCLEAR, &bits, &timeout);
	}
	schedf("T3D (result=%08x, bits=%08x) ", result, (uint) bits);

	return 0;
}
Example #3
0
//Subroutine sceUmd_98AFBD10 - Address 0x00000BE8 - Aliases: sceUmdUser_4A9E5E29
s32 sceUmdWaitDriveStatCB(u32 umdState, u32 timeout)
{
    s32 oldK1;
    SceUID eventId;
    SceUInt *pTimeout;
    u32 outBits;
    s32 status;
        
    oldK1 = pspShiftK1();
    eventId = sceUmdGetUserEventFlagId();
        
    if (!(umdState & UMD_SUPPORTED_WAIT_DRIVE_STATES))
        return SCE_ERROR_ERRNO_INVALID_ARGUMENT;
       
    if (timeout != 0)
        pTimeout = &timeout;
    else
        pTimeout = NULL;
   
    status = sceKernelWaitEventFlagCB(eventId, umdState, SCE_KERNEL_EW_OR, &outBits, pTimeout);
    pspSetK1(oldK1);
    return status;
}