sceKernelDelaySysClockThread() cleanup.
It doesn't wait either of course.
This commit is contained in:
parent
93b461774a
commit
252bf04c64
3 changed files with 22 additions and 24 deletions
|
@ -2410,44 +2410,42 @@ int sceKernelDelayThread(u32 usec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void sceKernelDelaySysClockThreadCB()
|
||||
int sceKernelDelaySysClockThreadCB(u32 sysclockAddr)
|
||||
{
|
||||
u32 sysclockAddr = PARAM(0);
|
||||
if (!Memory::IsValidAddress(sysclockAddr)) {
|
||||
ERROR_LOG(HLE, "sceKernelDelaySysClockThread(%08x) - bad pointer", sysclockAddr);
|
||||
RETURN(-1);
|
||||
return;
|
||||
PSPPointer<SceKernelSysClock> sysclock;
|
||||
sysclock = sysclockAddr;
|
||||
if (!sysclock.IsValid()) {
|
||||
ERROR_LOG(HLE, "sceKernelDelaySysClockThreadCB(%08x) - bad pointer", sysclockAddr);
|
||||
return -1;
|
||||
}
|
||||
SceKernelSysClock sysclock;
|
||||
Memory::ReadStruct(sysclockAddr, &sysclock);
|
||||
|
||||
// TODO: Which unit?
|
||||
u64 usec = sysclock.lo | ((u64)sysclock.hi << 32);
|
||||
DEBUG_LOG(HLE, "sceKernelDelaySysClockThread(%08x (%llu))", sysclockAddr, usec);
|
||||
u64 usec = sysclock->lo | ((u64)sysclock->hi << 32);
|
||||
DEBUG_LOG(HLE, "sceKernelDelaySysClockThreadCB(%08x (%llu))", sysclockAddr, usec);
|
||||
|
||||
SceUID curThread = __KernelGetCurThread();
|
||||
__KernelScheduleWakeup(curThread, __KernelDelayThreadUs(usec));
|
||||
__KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, true, "thread delayed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sceKernelDelaySysClockThread()
|
||||
int sceKernelDelaySysClockThread(u32 sysclockAddr)
|
||||
{
|
||||
u32 sysclockAddr = PARAM(0);
|
||||
if (!Memory::IsValidAddress(sysclockAddr)) {
|
||||
PSPPointer<SceKernelSysClock> sysclock;
|
||||
sysclock = sysclockAddr;
|
||||
if (!sysclock.IsValid()) {
|
||||
ERROR_LOG(HLE, "sceKernelDelaySysClockThread(%08x) - bad pointer", sysclockAddr);
|
||||
RETURN(-1);
|
||||
return;
|
||||
return -1;
|
||||
}
|
||||
SceKernelSysClock sysclock;
|
||||
Memory::ReadStruct(sysclockAddr, &sysclock);
|
||||
|
||||
// TODO: Which unit?
|
||||
u64 usec = sysclock.lo | ((u64)sysclock.hi << 32);
|
||||
u64 usec = sysclock->lo | ((u64)sysclock->hi << 32);
|
||||
DEBUG_LOG(HLE, "sceKernelDelaySysClockThread(%08x (%llu))", sysclockAddr, usec);
|
||||
|
||||
SceUID curThread = __KernelGetCurThread();
|
||||
__KernelScheduleWakeup(curThread, __KernelDelayThreadUs(usec));
|
||||
__KernelWaitCurThread(WAITTYPE_DELAY, curThread, 0, 0, false, "thread delayed");
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 __KernelGetThreadPrio(SceUID id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue