mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #1647 from mailwl/acu-closeasync
ac:u: stub CloseAsync; align memory size in svc:GetProcessInfo(type=2)
This commit is contained in:
		
						commit
						15d21c0dc5
					
				
					 2 changed files with 29 additions and 1 deletions
				
			
		|  | @ -3,6 +3,8 @@ | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
|  | 
 | ||||||
|  | #include "core/hle/kernel/event.h" | ||||||
| #include "core/hle/service/ac_u.h" | #include "core/hle/service/ac_u.h" | ||||||
| 
 | 
 | ||||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||||
|  | @ -10,6 +12,28 @@ | ||||||
| 
 | 
 | ||||||
| namespace AC_U { | namespace AC_U { | ||||||
| 
 | 
 | ||||||
|  | /**
 | ||||||
|  |  * AC_U::CloseAsync service function | ||||||
|  |  *  Inputs: | ||||||
|  |  *      1 : Always 0x20 | ||||||
|  |  *      3 : Always 0 | ||||||
|  |  *      4 : Event handle, should be signaled when AC connection is closed | ||||||
|  |  *  Outputs: | ||||||
|  |  *      1 : Result of function, 0 on success, otherwise error code | ||||||
|  |  */ | ||||||
|  | static void CloseAsync(Service::Interface* self) { | ||||||
|  |     u32* cmd_buff = Kernel::GetCommandBuffer(); | ||||||
|  | 
 | ||||||
|  |     auto evt = Kernel::g_handle_table.Get<Kernel::Event>(cmd_buff[4]); | ||||||
|  | 
 | ||||||
|  |     if (evt) { | ||||||
|  |         evt->name = "AC_U:close_event"; | ||||||
|  |         evt->Signal(); | ||||||
|  |     } | ||||||
|  |     cmd_buff[1] = RESULT_SUCCESS.raw; // No error
 | ||||||
|  | 
 | ||||||
|  |     LOG_WARNING(Service_AC, "(STUBBED) called"); | ||||||
|  | } | ||||||
| /**
 | /**
 | ||||||
|  * AC_U::GetWifiStatus service function |  * AC_U::GetWifiStatus service function | ||||||
|  *  Outputs: |  *  Outputs: | ||||||
|  | @ -47,7 +71,7 @@ const Interface::FunctionInfo FunctionTable[] = { | ||||||
|     {0x00010000, nullptr,               "CreateDefaultConfig"}, |     {0x00010000, nullptr,               "CreateDefaultConfig"}, | ||||||
|     {0x00040006, nullptr,               "ConnectAsync"}, |     {0x00040006, nullptr,               "ConnectAsync"}, | ||||||
|     {0x00050002, nullptr,               "GetConnectResult"}, |     {0x00050002, nullptr,               "GetConnectResult"}, | ||||||
|     {0x00080004, nullptr,               "CloseAsync"}, |     {0x00080004, CloseAsync,            "CloseAsync"}, | ||||||
|     {0x00090002, nullptr,               "GetCloseResult"}, |     {0x00090002, nullptr,               "GetCloseResult"}, | ||||||
|     {0x000A0000, nullptr,               "GetLastErrorCode"}, |     {0x000A0000, nullptr,               "GetLastErrorCode"}, | ||||||
|     {0x000D0000, GetWifiStatus,         "GetWifiStatus"}, |     {0x000D0000, GetWifiStatus,         "GetWifiStatus"}, | ||||||
|  |  | ||||||
|  | @ -859,6 +859,10 @@ static ResultCode GetProcessInfo(s64* out, Handle process_handle, u32 type) { | ||||||
|         // TODO(yuriks): Type 0 returns a slightly higher number than type 2, but I'm not sure
 |         // TODO(yuriks): Type 0 returns a slightly higher number than type 2, but I'm not sure
 | ||||||
|         // what's the difference between them.
 |         // what's the difference between them.
 | ||||||
|         *out = process->heap_used + process->linear_heap_used + process->misc_memory_used; |         *out = process->heap_used + process->linear_heap_used + process->misc_memory_used; | ||||||
|  |         if(*out % Memory::PAGE_SIZE != 0) { | ||||||
|  |             LOG_ERROR(Kernel_SVC, "called, memory size not page-aligned"); | ||||||
|  |             return ERR_MISALIGNED_SIZE; | ||||||
|  |         } | ||||||
|         break; |         break; | ||||||
|     case 1: |     case 1: | ||||||
|     case 3: |     case 3: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue