mirror of
https://github.com/citra-emu/citra-nightly.git
synced 2024-12-24 16:55:36 +00:00
svc: updated WaitSynchronizationN to properly use first pointer argument
This commit is contained in:
parent
4819e9a60f
commit
477b0caca4
|
@ -766,7 +766,9 @@ template<int func(u32, s64)> void WrapI_US64() {
|
||||||
}
|
}
|
||||||
|
|
||||||
template<int func(void*, void*, u32, u32, s64)> void WrapI_VVUUS64() {
|
template<int func(void*, void*, u32, u32, s64)> void WrapI_VVUUS64() {
|
||||||
int retval = func(Memory::GetPointer(PARAM(5)), Memory::GetPointer(PARAM(1)), PARAM(2), PARAM(3), (((u64)PARAM(4) << 32) | PARAM(0)));
|
u32 param_1 = 0;
|
||||||
|
int retval = func(¶m_1, Memory::GetPointer(PARAM(1)), PARAM(2), PARAM(3), (((u64)PARAM(4) << 32) | PARAM(0)));
|
||||||
|
Core::g_app_core->SetReg(1, param_1);
|
||||||
RETURN(retval);
|
RETURN(retval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -147,7 +147,7 @@ Result WaitSynchronization1(Handle handle, s64 nano_seconds) {
|
||||||
Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wait_all,
|
Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wait_all,
|
||||||
s64 nano_seconds) {
|
s64 nano_seconds) {
|
||||||
// TODO(bunnei): Do something with nano_seconds, currently ignoring this
|
// TODO(bunnei): Do something with nano_seconds, currently ignoring this
|
||||||
|
s32* out = (s32*)_out;
|
||||||
Handle* handles = (Handle*)_handles;
|
Handle* handles = (Handle*)_handles;
|
||||||
bool unlock_all = true;
|
bool unlock_all = true;
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wa
|
||||||
Result res = object->WaitSynchronization(&wait);
|
Result res = object->WaitSynchronization(&wait);
|
||||||
|
|
||||||
if (!wait && !wait_all) {
|
if (!wait && !wait_all) {
|
||||||
Core::g_app_core->SetReg(1, i);
|
*out = i;
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
unlock_all = false;
|
unlock_all = false;
|
||||||
|
@ -175,7 +175,7 @@ Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wa
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wait_all && unlock_all) {
|
if (wait_all && unlock_all) {
|
||||||
Core::g_app_core->SetReg(1, handle_count);
|
*out = handle_count;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue