mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-11-04 12:34:39 +08: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() {
 | 
			
		||||
    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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -147,7 +147,7 @@ Result WaitSynchronization1(Handle handle, s64 nano_seconds) {
 | 
			
		||||
Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wait_all, 
 | 
			
		||||
    s64 nano_seconds) {
 | 
			
		||||
    // TODO(bunnei): Do something with nano_seconds, currently ignoring this
 | 
			
		||||
 | 
			
		||||
    s32* out = (s32*)_out;
 | 
			
		||||
    Handle* handles = (Handle*)_handles;
 | 
			
		||||
    bool unlock_all = true;
 | 
			
		||||
 | 
			
		||||
@ -167,7 +167,7 @@ Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wa
 | 
			
		||||
        Result res = object->WaitSynchronization(&wait);
 | 
			
		||||
 | 
			
		||||
        if (!wait && !wait_all) {
 | 
			
		||||
            Core::g_app_core->SetReg(1, i);
 | 
			
		||||
            *out = i;
 | 
			
		||||
            return 0;
 | 
			
		||||
        } else {
 | 
			
		||||
            unlock_all = false;
 | 
			
		||||
@ -175,7 +175,7 @@ Result WaitSynchronizationN(void* _out, void* _handles, u32 handle_count, u32 wa
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (wait_all && unlock_all) {
 | 
			
		||||
        Core::g_app_core->SetReg(1, handle_count);
 | 
			
		||||
        *out = handle_count;
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user