mirror of
https://github.com/libretro/ppsspp.git
synced 2024-12-14 04:28:42 +00:00
Return better vtimer errors within interrupts.
This commit is contained in:
parent
b7fd768ecc
commit
0a373b08b7
@ -833,20 +833,20 @@ const HLEFunction ThreadManForUser[] =
|
||||
{0xA8AA591F,WrapI_IU<sceKernelCancelFpl>, "sceKernelCancelFpl"},
|
||||
{0xD8199E4C,WrapI_IU<sceKernelReferFplStatus>, "sceKernelReferFplStatus"},
|
||||
|
||||
{0x20fff560,WrapU_CU<sceKernelCreateVTimer>,"sceKernelCreateVTimer"},
|
||||
{0x328F9E52,WrapU_U<sceKernelDeleteVTimer>,"sceKernelDeleteVTimer"},
|
||||
{0xc68d9437,WrapU_U<sceKernelStartVTimer>,"sceKernelStartVTimer"},
|
||||
{0xD0AEEE87,WrapU_U<sceKernelStopVTimer>,"sceKernelStopVTimer"},
|
||||
{0xD2D615EF,WrapU_U<sceKernelCancelVTimerHandler>,"sceKernelCancelVTimerHandler"},
|
||||
{0xB3A59970,WrapU_UU<sceKernelGetVTimerBase>,"sceKernelGetVTimerBase"},
|
||||
{0xB7C18B77,WrapU64_U<sceKernelGetVTimerBaseWide>,"sceKernelGetVTimerBaseWide"},
|
||||
{0x034A921F,WrapU_UU<sceKernelGetVTimerTime>,"sceKernelGetVTimerTime"},
|
||||
{0xC0B3FFD2,WrapU64_U<sceKernelGetVTimerTimeWide>,"sceKernelGetVTimerTimeWide"},
|
||||
{0x5F32BEAA,WrapU_UU<sceKernelReferVTimerStatus>,"sceKernelReferVTimerStatus"},
|
||||
{0x542AD630,WrapU_UU<sceKernelSetVTimerTime>,"sceKernelSetVTimerTime"},
|
||||
{0xFB6425C3,WrapU64_UU64<sceKernelSetVTimerTimeWide>,"sceKernelSetVTimerTimeWide"},
|
||||
{0xd8b299ae,WrapU_UUUU<sceKernelSetVTimerHandler>,"sceKernelSetVTimerHandler"},
|
||||
{0x53B00E9A,WrapU_UU64UU<sceKernelSetVTimerHandlerWide>,"sceKernelSetVTimerHandlerWide"},
|
||||
{0x20fff560,WrapU_CU<sceKernelCreateVTimer>, "sceKernelCreateVTimer", HLE_NOT_IN_INTERRUPT},
|
||||
{0x328F9E52,WrapU_U<sceKernelDeleteVTimer>, "sceKernelDeleteVTimer", HLE_NOT_IN_INTERRUPT},
|
||||
{0xc68d9437,WrapU_U<sceKernelStartVTimer>, "sceKernelStartVTimer"},
|
||||
{0xD0AEEE87,WrapU_U<sceKernelStopVTimer>, "sceKernelStopVTimer"},
|
||||
{0xD2D615EF,WrapU_U<sceKernelCancelVTimerHandler>, "sceKernelCancelVTimerHandler"},
|
||||
{0xB3A59970,WrapU_UU<sceKernelGetVTimerBase>, "sceKernelGetVTimerBase"},
|
||||
{0xB7C18B77,WrapU64_U<sceKernelGetVTimerBaseWide>, "sceKernelGetVTimerBaseWide"},
|
||||
{0x034A921F,WrapU_UU<sceKernelGetVTimerTime>, "sceKernelGetVTimerTime"},
|
||||
{0xC0B3FFD2,WrapU64_U<sceKernelGetVTimerTimeWide>, "sceKernelGetVTimerTimeWide"},
|
||||
{0x5F32BEAA,WrapU_UU<sceKernelReferVTimerStatus>, "sceKernelReferVTimerStatus"},
|
||||
{0x542AD630,WrapU_UU<sceKernelSetVTimerTime>, "sceKernelSetVTimerTime"},
|
||||
{0xFB6425C3,WrapU64_UU64<sceKernelSetVTimerTimeWide>, "sceKernelSetVTimerTimeWide"},
|
||||
{0xd8b299ae,WrapU_UUUU<sceKernelSetVTimerHandler>, "sceKernelSetVTimerHandler"},
|
||||
{0x53B00E9A,WrapU_UU64UU<sceKernelSetVTimerHandlerWide>, "sceKernelSetVTimerHandlerWide"},
|
||||
|
||||
// Names are just guesses, not correct.
|
||||
{0x8daff657,WrapI_CUUUUU<sceKernelCreateTls>, "sceKernelCreateTls"},
|
||||
|
@ -349,7 +349,11 @@ u32 sceKernelSetVTimerTime(u32 uid, u32 timeClockAddr) {
|
||||
}
|
||||
|
||||
u64 sceKernelSetVTimerTimeWide(u32 uid, u64 timeClock) {
|
||||
DEBUG_LOG(SCEKERNEL, "sceKernelSetVTimerTimeWide(%08x, %llu", uid, timeClock);
|
||||
if (__IsInInterrupt()) {
|
||||
WARN_LOG(SCEKERNEL, "sceKernelSetVTimerTimeWide(%08x, %llu): in interrupt", uid, timeClock);
|
||||
return -1;
|
||||
}
|
||||
DEBUG_LOG(SCEKERNEL, "sceKernelSetVTimerTimeWide(%08x, %llu)", uid, timeClock);
|
||||
|
||||
u32 error;
|
||||
VTimer *vt = kernelObjects.Get<VTimer>(uid, error);
|
||||
|
Loading…
Reference in New Issue
Block a user