Quick and dirty attempt to delay loadmodule.

This commit is contained in:
Unknown W. Brackets 2013-03-06 07:40:34 -08:00
parent 6adb6762f2
commit db52d3d43c
4 changed files with 10 additions and 9 deletions

View File

@ -621,8 +621,8 @@ const HLEFunction ThreadManForUser[] =
{0x9fa03cd3,WrapI_I<sceKernelDeleteThread>,"sceKernelDeleteThread"},
{0xBD123D9E,sceKernelDelaySysClockThread,"sceKernelDelaySysClockThread"},
{0x1181E963,sceKernelDelaySysClockThreadCB,"sceKernelDelaySysClockThreadCB"},
{0xceadeb47,sceKernelDelayThread,"sceKernelDelayThread"},
{0x68da9e36,sceKernelDelayThreadCB,"sceKernelDelayThreadCB"},
{0xceadeb47,WrapI_U<sceKernelDelayThread>,"sceKernelDelayThread"},
{0x68da9e36,WrapI_U<sceKernelDelayThreadCB>,"sceKernelDelayThreadCB"},
{0xaa73c935,sceKernelExitThread,"sceKernelExitThread"},
{0x809ce29b,sceKernelExitDeleteThread,"sceKernelExitDeleteThread"},
{0x94aa61ee,sceKernelGetThreadCurrentPriority,"sceKernelGetThreadCurrentPriority"},

View File

@ -1852,26 +1852,26 @@ void sceKernelChangeThreadPriority()
}
}
void sceKernelDelayThreadCB()
int sceKernelDelayThreadCB(u32 usec)
{
u32 usec = PARAM(0);
if (usec < 200) usec = 200;
DEBUG_LOG(HLE,"sceKernelDelayThreadCB(%i usec)",usec);
SceUID curThread = __KernelGetCurThread();
__KernelScheduleWakeup(curThread, usec);
__KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, true, "thread delayed");
return 0;
}
void sceKernelDelayThread()
int sceKernelDelayThread(u32 usec)
{
u32 usec = PARAM(0);
if (usec < 200) usec = 200;
DEBUG_LOG(HLE,"sceKernelDelayThread(%i usec)",usec);
SceUID curThread = __KernelGetCurThread();
__KernelScheduleWakeup(curThread, usec);
__KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, false, "thread delayed");
return 0;
}
void sceKernelDelaySysClockThreadCB()

View File

@ -28,8 +28,8 @@
void sceKernelChangeThreadPriority();
int __KernelCreateThread(const char *threadName, SceUID moduleID, u32 entry, u32 prio, int stacksize, u32 attr, u32 optionAddr);
int sceKernelCreateThread(const char *threadName, u32 entry, u32 prio, int stacksize, u32 attr, u32 optionAddr);
void sceKernelDelayThread();
void sceKernelDelayThreadCB();
int sceKernelDelayThread(u32 usec);
int sceKernelDelayThreadCB(u32 usec);
void sceKernelDelaySysClockThread();
void sceKernelDelaySysClockThreadCB();
int sceKernelDeleteThread(int threadHandle);

View File

@ -105,7 +105,8 @@ u32 sceUtilityUnloadAvModule(u32 module)
u32 sceUtilityLoadModule(u32 module)
{
DEBUG_LOG(HLE,"sceUtilityLoadModule(%i)", module);
hleReSchedule("utilityloadmodule");
sceKernelDelayThread(500);
//hleReSchedule("utilityloadmodule");
return 0;
}