mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	svc: updated WaitSynchronizationN to properly use first pointer argument
This commit is contained in:
		
							parent
							
								
									4819e9a60f
								
							
						
					
					
						commit
						477b0caca4
					
				
					 2 changed files with 6 additions and 4 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue