Don't use a dynamic string for wait debugging.

Happens in release, and shows up on the profiler.
Not huge, but should save ~0.5% of cpu time.
This commit is contained in:
Unknown W. Brackets 2013-01-26 10:44:04 -08:00
parent 88d484f028
commit 1cb7a88137
12 changed files with 39 additions and 39 deletions

View file

@ -116,7 +116,7 @@ u32 __AudioEnqueue(AudioChannel &chan, int chanNum, bool blocking)
if (blocking) { if (blocking) {
chan.waitingThread = __KernelGetCurThread(); chan.waitingThread = __KernelGetCurThread();
// WARNING: This changes currentThread so must grab waitingThread before (line above). // WARNING: This changes currentThread so must grab waitingThread before (line above).
__KernelWaitCurThread(WAITTYPE_AUDIOCHANNEL, (SceUID)chanNum, 0, 0, false); __KernelWaitCurThread(WAITTYPE_AUDIOCHANNEL, (SceUID)chanNum, 0, 0, false, "blocking audio waited");
// Fall through to the sample queueing, don't want to lose the samples even though // Fall through to the sample queueing, don't want to lose the samples even though
// we're getting full. // we're getting full.
} }

View file

@ -408,7 +408,7 @@ void sceCtrlReadBufferPositive(u32 ctrlDataPtr, u32 nBufs)
else else
{ {
waitingThreads.push_back(__KernelGetCurThread()); waitingThreads.push_back(__KernelGetCurThread());
__KernelWaitCurThread(WAITTYPE_CTRL, CTRL_WAIT_POSITIVE, ctrlDataPtr, 0, false); __KernelWaitCurThread(WAITTYPE_CTRL, CTRL_WAIT_POSITIVE, ctrlDataPtr, 0, false, "ctrl buffer waited");
DEBUG_LOG(HLE, "sceCtrlReadBufferPositive(%08x, %i) - waiting", ctrlDataPtr, nBufs); DEBUG_LOG(HLE, "sceCtrlReadBufferPositive(%08x, %i) - waiting", ctrlDataPtr, nBufs);
} }
} }
@ -424,7 +424,7 @@ void sceCtrlReadBufferNegative(u32 ctrlDataPtr, u32 nBufs)
else else
{ {
waitingThreads.push_back(__KernelGetCurThread()); waitingThreads.push_back(__KernelGetCurThread());
__KernelWaitCurThread(WAITTYPE_CTRL, CTRL_WAIT_NEGATIVE, ctrlDataPtr, 0, false); __KernelWaitCurThread(WAITTYPE_CTRL, CTRL_WAIT_NEGATIVE, ctrlDataPtr, 0, false, "ctrl buffer waited");
DEBUG_LOG(HLE, "sceCtrlReadBufferNegative(%08x, %i) - waiting", ctrlDataPtr, nBufs); DEBUG_LOG(HLE, "sceCtrlReadBufferNegative(%08x, %i) - waiting", ctrlDataPtr, nBufs);
} }
} }

View file

@ -369,7 +369,7 @@ u32 sceDisplayGetFramebuf(u32 topaddrPtr, u32 linesizePtr, u32 pixelFormatPtr, i
u32 sceDisplayWaitVblankStart() { u32 sceDisplayWaitVblankStart() {
DEBUG_LOG(HLE,"sceDisplayWaitVblankStart()"); DEBUG_LOG(HLE,"sceDisplayWaitVblankStart()");
vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread())); vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread()));
__KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, false); __KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, false, "vblank start waited");
return 0; return 0;
} }
@ -377,7 +377,7 @@ u32 sceDisplayWaitVblank() {
if (!isVblank) { if (!isVblank) {
DEBUG_LOG(HLE,"sceDisplayWaitVblank()"); DEBUG_LOG(HLE,"sceDisplayWaitVblank()");
vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread())); vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread()));
__KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, false); __KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, false, "vblank waited");
return 0; return 0;
} else { } else {
DEBUG_LOG(HLE,"sceDisplayWaitVblank() - not waiting since in vBlank"); DEBUG_LOG(HLE,"sceDisplayWaitVblank() - not waiting since in vBlank");
@ -388,7 +388,7 @@ u32 sceDisplayWaitVblank() {
u32 sceDisplayWaitVblankStartMulti() { u32 sceDisplayWaitVblankStartMulti() {
DEBUG_LOG(HLE,"sceDisplayWaitVblankStartMulti()"); DEBUG_LOG(HLE,"sceDisplayWaitVblankStartMulti()");
vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread())); vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread()));
__KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, false); __KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, false, "vblank start multi waited");
return 0; return 0;
} }
@ -396,7 +396,7 @@ u32 sceDisplayWaitVblankCB() {
if (!isVblank) { if (!isVblank) {
DEBUG_LOG(HLE,"sceDisplayWaitVblankCB()"); DEBUG_LOG(HLE,"sceDisplayWaitVblankCB()");
vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread())); vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread()));
__KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, true); __KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, true, "vblank waited");
return 0; return 0;
} else { } else {
DEBUG_LOG(HLE,"sceDisplayWaitVblank() - not waiting since in vBlank"); DEBUG_LOG(HLE,"sceDisplayWaitVblank() - not waiting since in vBlank");
@ -407,14 +407,14 @@ u32 sceDisplayWaitVblankCB() {
u32 sceDisplayWaitVblankStartCB() { u32 sceDisplayWaitVblankStartCB() {
DEBUG_LOG(HLE,"sceDisplayWaitVblankStartCB()"); DEBUG_LOG(HLE,"sceDisplayWaitVblankStartCB()");
vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread())); vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread()));
__KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, true); __KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, true, "vblank start waited");
return 0; return 0;
} }
u32 sceDisplayWaitVblankStartMultiCB() { u32 sceDisplayWaitVblankStartMultiCB() {
DEBUG_LOG(HLE,"sceDisplayWaitVblankStartMultiCB()"); DEBUG_LOG(HLE,"sceDisplayWaitVblankStartMultiCB()");
vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread())); vblankWaitingThreads.push_back(WaitVBlankInfo(__KernelGetCurThread()));
__KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, true); __KernelWaitCurThread(WAITTYPE_VBLANK, 0, 0, 0, true, "vblank start multi waited");
return 0; return 0;
} }

View file

@ -417,7 +417,7 @@ int sceKernelWaitEventFlag(SceUID id, u32 bits, u32 wait, u32 outBitsPtr, u32 ti
e->waitingThreads.push_back(th); e->waitingThreads.push_back(th);
__KernelSetEventFlagTimeout(e, timeoutPtr); __KernelSetEventFlagTimeout(e, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_EVENTFLAG, id, 0, timeoutPtr, false); __KernelWaitCurThread(WAITTYPE_EVENTFLAG, id, 0, timeoutPtr, false, "event flag waited");
} }
return 0; return 0;
@ -470,7 +470,7 @@ int sceKernelWaitEventFlagCB(SceUID id, u32 bits, u32 wait, u32 outBitsPtr, u32
e->waitingThreads.push_back(th); e->waitingThreads.push_back(th);
__KernelSetEventFlagTimeout(e, timeoutPtr); __KernelSetEventFlagTimeout(e, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_EVENTFLAG, id, 0, timeoutPtr, true); __KernelWaitCurThread(WAITTYPE_EVENTFLAG, id, 0, timeoutPtr, true, "event flag waited");
} }
else else
hleCheckCurrentCallbacks(); hleCheckCurrentCallbacks();

View file

@ -450,7 +450,7 @@ int sceKernelReceiveMbx(SceUID id, u32 packetAddrPtr, u32 timeoutPtr)
__KernelMbxRemoveThread(m, __KernelGetCurThread()); __KernelMbxRemoveThread(m, __KernelGetCurThread());
m->AddWaitingThread(__KernelGetCurThread(), packetAddrPtr); m->AddWaitingThread(__KernelGetCurThread(), packetAddrPtr);
__KernelWaitMbx(m, timeoutPtr); __KernelWaitMbx(m, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_MBX, id, 0, timeoutPtr, false); __KernelWaitCurThread(WAITTYPE_MBX, id, 0, timeoutPtr, false, "mbx waited");
return 0; return 0;
} }
} }
@ -478,7 +478,7 @@ int sceKernelReceiveMbxCB(SceUID id, u32 packetAddrPtr, u32 timeoutPtr)
__KernelMbxRemoveThread(m, __KernelGetCurThread()); __KernelMbxRemoveThread(m, __KernelGetCurThread());
m->AddWaitingThread(__KernelGetCurThread(), packetAddrPtr); m->AddWaitingThread(__KernelGetCurThread(), packetAddrPtr);
__KernelWaitMbx(m, timeoutPtr); __KernelWaitMbx(m, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_MBX, id, 0, timeoutPtr, true); __KernelWaitCurThread(WAITTYPE_MBX, id, 0, timeoutPtr, true, "mbx waited");
return 0; return 0;
} }
} }

View file

@ -976,7 +976,7 @@ int sceKernelAllocateVpl(SceUID uid, u32 size, u32 addrPtr, u32 timeoutPtr)
} }
__KernelSetVplTimeout(timeoutPtr); __KernelSetVplTimeout(timeoutPtr);
__KernelWaitCurThread(WAITTYPE_VPL, uid, size, timeoutPtr, false); __KernelWaitCurThread(WAITTYPE_VPL, uid, size, timeoutPtr, false, "vpl waited");
} }
} }
return error; return error;
@ -1002,7 +1002,7 @@ int sceKernelAllocateVplCB(SceUID uid, u32 size, u32 addrPtr, u32 timeoutPtr)
} }
__KernelSetVplTimeout(timeoutPtr); __KernelSetVplTimeout(timeoutPtr);
__KernelWaitCurThread(WAITTYPE_VPL, uid, size, timeoutPtr, true); __KernelWaitCurThread(WAITTYPE_VPL, uid, size, timeoutPtr, true, "vpl waited");
} }
} }
return error; return error;

View file

@ -289,7 +289,7 @@ void __KernelSendMsgPipe(MsgPipe *m, u32 sendBufAddr, u32 sendSize, int waitMode
{ {
m->AddSendWaitingThread(__KernelGetCurThread(), curSendAddr, sendSize, waitMode, resultAddr); m->AddSendWaitingThread(__KernelGetCurThread(), curSendAddr, sendSize, waitMode, resultAddr);
RETURN(0); RETURN(0);
__KernelWaitCurThread(WAITTYPE_MSGPIPE, 0, 0, 0, cbEnabled); __KernelWaitCurThread(WAITTYPE_MSGPIPE, 0, 0, 0, cbEnabled, "msgpipe waited");
return; return;
} }
} }
@ -321,7 +321,7 @@ void __KernelSendMsgPipe(MsgPipe *m, u32 sendBufAddr, u32 sendSize, int waitMode
{ {
m->AddSendWaitingThread(__KernelGetCurThread(), curSendAddr, sendSize, waitMode, resultAddr); m->AddSendWaitingThread(__KernelGetCurThread(), curSendAddr, sendSize, waitMode, resultAddr);
RETURN(0); RETURN(0);
__KernelWaitCurThread(WAITTYPE_MSGPIPE, 0, 0, 0, cbEnabled); __KernelWaitCurThread(WAITTYPE_MSGPIPE, 0, 0, 0, cbEnabled, "msgpipe waited");
return; return;
} }
} }
@ -461,7 +461,7 @@ void __KernelReceiveMsgPipe(MsgPipe *m, u32 receiveBufAddr, u32 receiveSize, int
{ {
m->AddReceiveWaitingThread(__KernelGetCurThread(), curReceiveAddr, receiveSize, waitMode, resultAddr); m->AddReceiveWaitingThread(__KernelGetCurThread(), curReceiveAddr, receiveSize, waitMode, resultAddr);
RETURN(0); RETURN(0);
__KernelWaitCurThread(WAITTYPE_MSGPIPE, 0, 0, 0, cbEnabled); __KernelWaitCurThread(WAITTYPE_MSGPIPE, 0, 0, 0, cbEnabled, "msgpipe waited");
return; return;
} }
} }
@ -497,7 +497,7 @@ void __KernelReceiveMsgPipe(MsgPipe *m, u32 receiveBufAddr, u32 receiveSize, int
{ {
m->AddReceiveWaitingThread(__KernelGetCurThread(), curReceiveAddr, receiveSize, waitMode, resultAddr); m->AddReceiveWaitingThread(__KernelGetCurThread(), curReceiveAddr, receiveSize, waitMode, resultAddr);
RETURN(0); RETURN(0);
__KernelWaitCurThread(WAITTYPE_MSGPIPE, 0, 0, 0, cbEnabled); __KernelWaitCurThread(WAITTYPE_MSGPIPE, 0, 0, 0, cbEnabled, "msgpipe waited");
return; return;
} }
} }

View file

@ -464,7 +464,7 @@ int sceKernelLockMutex(SceUID id, int count, u32 timeoutPtr)
if (std::find(mutex->waitingThreads.begin(), mutex->waitingThreads.end(), threadID) == mutex->waitingThreads.end()) if (std::find(mutex->waitingThreads.begin(), mutex->waitingThreads.end(), threadID) == mutex->waitingThreads.end())
mutex->waitingThreads.push_back(threadID); mutex->waitingThreads.push_back(threadID);
__KernelWaitMutex(mutex, timeoutPtr); __KernelWaitMutex(mutex, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_MUTEX, id, count, timeoutPtr, false); __KernelWaitCurThread(WAITTYPE_MUTEX, id, count, timeoutPtr, false, "mutex waited");
// Return value will be overwritten by wait. // Return value will be overwritten by wait.
return 0; return 0;
@ -492,7 +492,7 @@ int sceKernelLockMutexCB(SceUID id, int count, u32 timeoutPtr)
if (std::find(mutex->waitingThreads.begin(), mutex->waitingThreads.end(), threadID) == mutex->waitingThreads.end()) if (std::find(mutex->waitingThreads.begin(), mutex->waitingThreads.end(), threadID) == mutex->waitingThreads.end())
mutex->waitingThreads.push_back(threadID); mutex->waitingThreads.push_back(threadID);
__KernelWaitMutex(mutex, timeoutPtr); __KernelWaitMutex(mutex, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_MUTEX, id, count, timeoutPtr, true); __KernelWaitCurThread(WAITTYPE_MUTEX, id, count, timeoutPtr, true, "mutex waited");
// Return value will be overwritten by wait. // Return value will be overwritten by wait.
return 0; return 0;
@ -846,7 +846,7 @@ int sceKernelLockLwMutex(u32 workareaPtr, int count, u32 timeoutPtr)
if (std::find(mutex->waitingThreads.begin(), mutex->waitingThreads.end(), threadID) == mutex->waitingThreads.end()) if (std::find(mutex->waitingThreads.begin(), mutex->waitingThreads.end(), threadID) == mutex->waitingThreads.end())
mutex->waitingThreads.push_back(threadID); mutex->waitingThreads.push_back(threadID);
__KernelWaitLwMutex(mutex, timeoutPtr); __KernelWaitLwMutex(mutex, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_LWMUTEX, workarea.uid, count, timeoutPtr, false); __KernelWaitCurThread(WAITTYPE_LWMUTEX, workarea.uid, count, timeoutPtr, false, "lwmutex waited");
// Return value will be overwritten by wait. // Return value will be overwritten by wait.
return 0; return 0;
@ -882,7 +882,7 @@ int sceKernelLockLwMutexCB(u32 workareaPtr, int count, u32 timeoutPtr)
if (std::find(mutex->waitingThreads.begin(), mutex->waitingThreads.end(), threadID) == mutex->waitingThreads.end()) if (std::find(mutex->waitingThreads.begin(), mutex->waitingThreads.end(), threadID) == mutex->waitingThreads.end())
mutex->waitingThreads.push_back(threadID); mutex->waitingThreads.push_back(threadID);
__KernelWaitLwMutex(mutex, timeoutPtr); __KernelWaitLwMutex(mutex, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_LWMUTEX, workarea.uid, count, timeoutPtr, true); __KernelWaitCurThread(WAITTYPE_LWMUTEX, workarea.uid, count, timeoutPtr, true, "lwmutex waited");
// Return value will be overwritten by wait. // Return value will be overwritten by wait.
return 0; return 0;

View file

@ -343,7 +343,7 @@ int __KernelWaitSema(SceUID id, int wantedCount, u32 timeoutPtr, const char *bad
if (std::find(s->waitingThreads.begin(), s->waitingThreads.end(), threadID) == s->waitingThreads.end()) if (std::find(s->waitingThreads.begin(), s->waitingThreads.end(), threadID) == s->waitingThreads.end())
s->waitingThreads.push_back(threadID); s->waitingThreads.push_back(threadID);
__KernelSetSemaTimeout(s, timeoutPtr); __KernelSetSemaTimeout(s, timeoutPtr);
__KernelWaitCurThread(WAITTYPE_SEMA, id, wantedCount, timeoutPtr, processCallbacks); __KernelWaitCurThread(WAITTYPE_SEMA, id, wantedCount, timeoutPtr, processCallbacks, "sema waited");
} }
return 0; return 0;

View file

@ -1031,7 +1031,7 @@ bool __KernelTriggerWait(WaitType type, int id, int retVal, bool dontSwitch)
} }
// makes the current thread wait for an event // makes the current thread wait for an event
void __KernelWaitCurThread(WaitType type, SceUID waitID, u32 waitValue, u32 timeoutPtr, bool processCallbacks) void __KernelWaitCurThread(WaitType type, SceUID waitID, u32 waitValue, u32 timeoutPtr, bool processCallbacks, const char *reason)
{ {
// TODO: Need to defer if in callback? // TODO: Need to defer if in callback?
if (g_inCbCount > 0) if (g_inCbCount > 0)
@ -1049,10 +1049,10 @@ void __KernelWaitCurThread(WaitType type, SceUID waitID, u32 waitValue, u32 time
RETURN(0); //pretend all went OK RETURN(0); //pretend all went OK
// TODO: time waster // TODO: time waster
char temp[256]; if (!reason)
sprintf(temp, "started wait %s", waitTypeStrings[(int)type]); reason = "started wait";
hleReSchedule(processCallbacks, temp); hleReSchedule(processCallbacks, reason);
// TODO: Remove thread from Ready queue? // TODO: Remove thread from Ready queue?
} }
@ -1728,7 +1728,7 @@ void sceKernelDelayThreadCB()
SceUID curThread = __KernelGetCurThread(); SceUID curThread = __KernelGetCurThread();
__KernelScheduleWakeup(curThread, usec); __KernelScheduleWakeup(curThread, usec);
__KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, true); __KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, true, "thread delayed");
} }
void sceKernelDelayThread() void sceKernelDelayThread()
@ -1739,7 +1739,7 @@ void sceKernelDelayThread()
SceUID curThread = __KernelGetCurThread(); SceUID curThread = __KernelGetCurThread();
__KernelScheduleWakeup(curThread, usec); __KernelScheduleWakeup(curThread, usec);
__KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, false); __KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, false, "thread delayed");
} }
void sceKernelDelaySysClockThreadCB() void sceKernelDelaySysClockThreadCB()
@ -1760,7 +1760,7 @@ void sceKernelDelaySysClockThreadCB()
SceUID curThread = __KernelGetCurThread(); SceUID curThread = __KernelGetCurThread();
__KernelScheduleWakeup(curThread, usec); __KernelScheduleWakeup(curThread, usec);
__KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, true); __KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, true, "thread delayed");
} }
void sceKernelDelaySysClockThread() void sceKernelDelaySysClockThread()
@ -1781,7 +1781,7 @@ void sceKernelDelaySysClockThread()
SceUID curThread = __KernelGetCurThread(); SceUID curThread = __KernelGetCurThread();
__KernelScheduleWakeup(curThread, usec); __KernelScheduleWakeup(curThread, usec);
__KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, false); __KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, false, "thread delayed");
} }
u32 __KernelGetThreadPrio(SceUID id) u32 __KernelGetThreadPrio(SceUID id)
@ -1855,7 +1855,7 @@ static void __KernelSleepThread(bool doCallbacks) {
RETURN(0); RETURN(0);
} else { } else {
RETURN(0); RETURN(0);
__KernelWaitCurThread(WAITTYPE_SLEEP, 0, 0, 0, doCallbacks); __KernelWaitCurThread(WAITTYPE_SLEEP, 0, 0, 0, doCallbacks, "thread slept");
} }
} }
@ -1886,7 +1886,7 @@ int sceKernelWaitThreadEnd(SceUID threadID, u32 timeoutPtr)
{ {
if (Memory::IsValidAddress(timeoutPtr)) if (Memory::IsValidAddress(timeoutPtr))
__KernelScheduleThreadEndTimeout(currentThread, threadID, Memory::Read_U32(timeoutPtr)); __KernelScheduleThreadEndTimeout(currentThread, threadID, Memory::Read_U32(timeoutPtr));
__KernelWaitCurThread(WAITTYPE_THREADEND, threadID, 0, timeoutPtr, false); __KernelWaitCurThread(WAITTYPE_THREADEND, threadID, 0, timeoutPtr, false, "thread wait end");
} }
return t->nt.exitStatus; return t->nt.exitStatus;
@ -1913,7 +1913,7 @@ int sceKernelWaitThreadEndCB(SceUID threadID, u32 timeoutPtr)
{ {
if (Memory::IsValidAddress(timeoutPtr)) if (Memory::IsValidAddress(timeoutPtr))
__KernelScheduleThreadEndTimeout(currentThread, threadID, Memory::Read_U32(timeoutPtr)); __KernelScheduleThreadEndTimeout(currentThread, threadID, Memory::Read_U32(timeoutPtr));
__KernelWaitCurThread(WAITTYPE_THREADEND, threadID, 0, timeoutPtr, true); __KernelWaitCurThread(WAITTYPE_THREADEND, threadID, 0, timeoutPtr, true, "thread wait end");
} }
return t->nt.exitStatus; return t->nt.exitStatus;

View file

@ -129,7 +129,7 @@ u32 __KernelResumeThreadFromWait(SceUID threadID, int retval);
u32 __KernelGetWaitValue(SceUID threadID, u32 &error); u32 __KernelGetWaitValue(SceUID threadID, u32 &error);
u32 __KernelGetWaitTimeoutPtr(SceUID threadID, u32 &error); u32 __KernelGetWaitTimeoutPtr(SceUID threadID, u32 &error);
SceUID __KernelGetWaitID(SceUID threadID, WaitType type, u32 &error); SceUID __KernelGetWaitID(SceUID threadID, WaitType type, u32 &error);
void __KernelWaitCurThread(WaitType type, SceUID waitId, u32 waitValue, u32 timeoutPtr, bool processCallbacks); void __KernelWaitCurThread(WaitType type, SceUID waitId, u32 waitValue, u32 timeoutPtr, bool processCallbacks, const char *reason);
void __KernelReSchedule(const char *reason = "no reason"); void __KernelReSchedule(const char *reason = "no reason");
void __KernelReSchedule(bool doCallbacks, const char *reason); void __KernelReSchedule(bool doCallbacks, const char *reason);

View file

@ -249,7 +249,7 @@ int sceUmdWaitDriveStat(u32 stat)
DEBUG_LOG(HLE,"0=sceUmdWaitDriveStat(stat = %08x)", stat); DEBUG_LOG(HLE,"0=sceUmdWaitDriveStat(stat = %08x)", stat);
if ((stat & __KernelUmdGetState()) == 0) if ((stat & __KernelUmdGetState()) == 0)
__KernelWaitCurThread(WAITTYPE_UMD, 1, stat, 0, 0); __KernelWaitCurThread(WAITTYPE_UMD, 1, stat, 0, 0, "umd stat waited");
return 0; return 0;
} }
@ -261,7 +261,7 @@ int sceUmdWaitDriveStatWithTimer(u32 stat, u32 timeout)
if ((stat & __KernelUmdGetState()) == 0) if ((stat & __KernelUmdGetState()) == 0)
{ {
__UmdWaitStat(timeout); __UmdWaitStat(timeout);
__KernelWaitCurThread(WAITTYPE_UMD, 1, stat, 0, 0); __KernelWaitCurThread(WAITTYPE_UMD, 1, stat, 0, 0, "umd stat waited");
} }
else else
hleReSchedule("umd stat waited with timer"); hleReSchedule("umd stat waited with timer");
@ -287,7 +287,7 @@ int sceUmdWaitDriveStatCB(u32 stat, u32 timeout)
timeout = 8000; timeout = 8000;
__UmdWaitStat(timeout); __UmdWaitStat(timeout);
__KernelWaitCurThread(WAITTYPE_UMD, 1, stat, 0, true); __KernelWaitCurThread(WAITTYPE_UMD, 1, stat, 0, true, "umd stat waited");
} }
else else
hleReSchedule("umd stat waited"); hleReSchedule("umd stat waited");