mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 10:44:49 +01:00 
			
		
		
		
	Merge pull request #6224 from Morph1984/hid_InitializeSevenSixAxisSensor
service: hid: Get transfer memory for InitializeSevenSixAxisSensor
This commit is contained in:
		
						commit
						cdce1edf74
					
				| @ -19,6 +19,7 @@ | ||||
| #include "core/hle/kernel/k_shared_memory.h" | ||||
| #include "core/hle/kernel/k_writable_event.h" | ||||
| #include "core/hle/kernel/kernel.h" | ||||
| #include "core/hle/kernel/transfer_memory.h" | ||||
| #include "core/hle/service/hid/errors.h" | ||||
| #include "core/hle/service/hid/hid.h" | ||||
| #include "core/hle/service/hid/irs.h" | ||||
| @ -1484,7 +1485,43 @@ void Hid::StopSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
| } | ||||
| 
 | ||||
| void Hid::InitializeSevenSixAxisSensor(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_HID, "(STUBBED) called"); | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto applet_resource_user_id{rp.Pop<u64>()}; | ||||
|     const auto t_mem_1_size{rp.Pop<u64>()}; | ||||
|     const auto t_mem_2_size{rp.Pop<u64>()}; | ||||
|     const auto t_mem_1_handle{ctx.GetCopyHandle(0)}; | ||||
|     const auto t_mem_2_handle{ctx.GetCopyHandle(1)}; | ||||
| 
 | ||||
|     ASSERT_MSG(t_mem_1_size == 0x1000, "t_mem_1_size is not 0x1000 bytes"); | ||||
|     ASSERT_MSG(t_mem_2_size == 0x7F000, "t_mem_2_size is not 0x7F000 bytes"); | ||||
| 
 | ||||
|     auto t_mem_1 = | ||||
|         system.CurrentProcess()->GetHandleTable().Get<Kernel::TransferMemory>(t_mem_1_handle); | ||||
| 
 | ||||
|     if (t_mem_1 == nullptr) { | ||||
|         LOG_ERROR(Service_HID, "t_mem_1 is a nullptr for handle=0x{:08X}", t_mem_1_handle); | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_UNKNOWN); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     auto t_mem_2 = | ||||
|         system.CurrentProcess()->GetHandleTable().Get<Kernel::TransferMemory>(t_mem_2_handle); | ||||
| 
 | ||||
|     if (t_mem_2 == nullptr) { | ||||
|         LOG_ERROR(Service_HID, "t_mem_2 is a nullptr for handle=0x{:08X}", t_mem_2_handle); | ||||
|         IPC::ResponseBuilder rb{ctx, 2}; | ||||
|         rb.Push(RESULT_UNKNOWN); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     ASSERT_MSG(t_mem_1->GetSize() == 0x1000, "t_mem_1 has incorrect size"); | ||||
|     ASSERT_MSG(t_mem_2->GetSize() == 0x7F000, "t_mem_2 has incorrect size"); | ||||
| 
 | ||||
|     LOG_WARNING(Service_HID, | ||||
|                 "(STUBBED) called, t_mem_1_handle=0x{:08X}, t_mem_2_handle=0x{:08X}, " | ||||
|                 "applet_resource_user_id={}", | ||||
|                 t_mem_1_handle, t_mem_2_handle, applet_resource_user_id); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user