mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	UDS: devide IPC and impl for ConnectToNetwork
This commit is contained in:
		
							parent
							
								
									e121c59583
								
							
						
					
					
						commit
						fc0fe5c3c0
					
				
					 2 changed files with 24 additions and 12 deletions
				
			
		|  | @ -1165,18 +1165,11 @@ void NWM_UDS::GetChannel(Kernel::HLERequestContext& ctx) { | ||||||
|     LOG_DEBUG(Service_NWM, "called"); |     LOG_DEBUG(Service_NWM, "called"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx) { | void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx, const u8* network_info_buffer, | ||||||
|     IPC::RequestParser rp(ctx, 0x1E, 2, 4); |                                std::size_t network_info_size, u8 connection_type, | ||||||
| 
 |                                std::vector<u8> passphrase) { | ||||||
|     u8 connection_type = rp.Pop<u8>(); |     network_info = {}; | ||||||
|     u32 passphrase_size = rp.Pop<u32>(); |     std::memcpy(&network_info, network_info_buffer, network_info_size); | ||||||
| 
 |  | ||||||
|     const std::vector<u8> network_struct_buffer = rp.PopStaticBuffer(); |  | ||||||
|     ASSERT(network_struct_buffer.size() == sizeof(NetworkInfo)); |  | ||||||
| 
 |  | ||||||
|     const std::vector<u8> passphrase = rp.PopStaticBuffer(); |  | ||||||
| 
 |  | ||||||
|     std::memcpy(&network_info, network_struct_buffer.data(), sizeof(network_info)); |  | ||||||
| 
 | 
 | ||||||
|     // Start the connection sequence
 |     // Start the connection sequence
 | ||||||
|     StartConnectionSequence(network_info.host_mac_address); |     StartConnectionSequence(network_info.host_mac_address); | ||||||
|  | @ -1195,6 +1188,21 @@ void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx) { | ||||||
|             rb.Push(RESULT_SUCCESS); |             rb.Push(RESULT_SUCCESS); | ||||||
|             LOG_DEBUG(Service_NWM, "connection sequence finished"); |             LOG_DEBUG(Service_NWM, "connection sequence finished"); | ||||||
|         }); |         }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void NWM_UDS::ConnectToNetwork(Kernel::HLERequestContext& ctx) { | ||||||
|  |     IPC::RequestParser rp(ctx, 0x1E, 2, 4); | ||||||
|  | 
 | ||||||
|  |     u8 connection_type = rp.Pop<u8>(); | ||||||
|  |     u32 passphrase_size = rp.Pop<u32>(); | ||||||
|  | 
 | ||||||
|  |     const std::vector<u8> network_info_buffer = rp.PopStaticBuffer(); | ||||||
|  |     ASSERT(network_info_buffer.size() == sizeof(NetworkInfo)); | ||||||
|  | 
 | ||||||
|  |     std::vector<u8> passphrase = rp.PopStaticBuffer(); | ||||||
|  | 
 | ||||||
|  |     ConnectToNetwork(ctx, network_info_buffer.data(), network_info_buffer.size(), connection_type, | ||||||
|  |                      std::move(passphrase)); | ||||||
| 
 | 
 | ||||||
|     LOG_DEBUG(Service_NWM, "called"); |     LOG_DEBUG(Service_NWM, "called"); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -404,6 +404,10 @@ private: | ||||||
|     ResultCode BeginHostingNetwork(const u8* network_info_buffer, std::size_t network_info_size, |     ResultCode BeginHostingNetwork(const u8* network_info_buffer, std::size_t network_info_size, | ||||||
|                                    std::vector<u8> passphrase); |                                    std::vector<u8> passphrase); | ||||||
| 
 | 
 | ||||||
|  |     void ConnectToNetwork(Kernel::HLERequestContext& ctx, const u8* network_info_buffer, | ||||||
|  |                           std::size_t network_info_size, u8 connection_type, | ||||||
|  |                           std::vector<u8> passphrase); | ||||||
|  | 
 | ||||||
|     void BeaconBroadcastCallback(u64 userdata, s64 cycles_late); |     void BeaconBroadcastCallback(u64 userdata, s64 cycles_late); | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue