mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Dialog: Lock volatile on thread.
This means it doesn't matter if GetStatus is called.
This commit is contained in:
parent
429b4594d0
commit
90f4098b3d
2 changed files with 8 additions and 0 deletions
|
@ -97,6 +97,8 @@ void PSPDialog::FinishVolatile() {
|
|||
int PSPDialog::FinishInit() {
|
||||
if (ReadStatus() != SCE_UTILITY_STATUS_INITIALIZE)
|
||||
return -1;
|
||||
// The thread already locked.
|
||||
volatileLocked_ = true;
|
||||
ChangeStatus(SCE_UTILITY_STATUS_RUNNING, 0);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -283,6 +283,12 @@ void UtilityDialogInitialize(UtilityDialogType type, int delayUs, int priority)
|
|||
(u32_le)MIPS_MAKE_ORI(MIPS_REG_A0, MIPS_REG_S0, 0),
|
||||
(u32_le)MIPS_MAKE_SYSCALL("sceUtility", "__UtilityWorkUs"),
|
||||
|
||||
// Now actually lock the volatile memory. Maybe this should be earlier...
|
||||
(u32_le)MIPS_MAKE_ORI(MIPS_REG_A0, MIPS_REG_ZERO, 0),
|
||||
(u32_le)MIPS_MAKE_ORI(MIPS_REG_A1, MIPS_REG_ZERO, 0),
|
||||
(u32_le)MIPS_MAKE_ORI(MIPS_REG_A2, MIPS_REG_ZERO, 0),
|
||||
(u32_le)MIPS_MAKE_SYSCALL("sceSuspendForUser", "sceKernelVolatileMemLock"),
|
||||
|
||||
(u32_le)MIPS_MAKE_ORI(MIPS_REG_A0, MIPS_REG_ZERO, (int)type),
|
||||
(u32_le)MIPS_MAKE_JR_RA(),
|
||||
(u32_le)MIPS_MAKE_SYSCALL("sceUtility", "__UtilityInitDialog"),
|
||||
|
|
Loading…
Add table
Reference in a new issue