hle: service: ldr: Implement UnloadNrr.
- Used by Final Fantasy X/X-2 HD Remaster.
This commit is contained in:
		
							parent
							
								
									6db0c0d8d9
								
							
						
					
					
						commit
						a0e5cccb92
					
				| @ -166,7 +166,7 @@ public: | |||||||
|             {0, &RelocatableObject::LoadNro, "LoadNro"}, |             {0, &RelocatableObject::LoadNro, "LoadNro"}, | ||||||
|             {1, &RelocatableObject::UnloadNro, "UnloadNro"}, |             {1, &RelocatableObject::UnloadNro, "UnloadNro"}, | ||||||
|             {2, &RelocatableObject::LoadNrr, "LoadNrr"}, |             {2, &RelocatableObject::LoadNrr, "LoadNrr"}, | ||||||
|             {3, nullptr, "UnloadNrr"}, |             {3, &RelocatableObject::UnloadNrr, "UnloadNrr"}, | ||||||
|             {4, &RelocatableObject::Initialize, "Initialize"}, |             {4, &RelocatableObject::Initialize, "Initialize"}, | ||||||
|             {10, nullptr, "LoadNrrEx"}, |             {10, nullptr, "LoadNrrEx"}, | ||||||
|         }; |         }; | ||||||
| @ -272,6 +272,20 @@ public: | |||||||
|         rb.Push(RESULT_SUCCESS); |         rb.Push(RESULT_SUCCESS); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     void UnloadNrr(Kernel::HLERequestContext& ctx) { | ||||||
|  |         IPC::RequestParser rp{ctx}; | ||||||
|  |         const auto pid = rp.Pop<u64>(); | ||||||
|  |         const auto nrr_address = rp.Pop<VAddr>(); | ||||||
|  | 
 | ||||||
|  |         LOG_DEBUG(Service_LDR, "called with pid={}, nrr_address={:016X}", pid, nrr_address); | ||||||
|  | 
 | ||||||
|  |         nrr.erase(nrr_address); | ||||||
|  | 
 | ||||||
|  |         IPC::ResponseBuilder rb{ctx, 2}; | ||||||
|  | 
 | ||||||
|  |         rb.Push(RESULT_SUCCESS); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     bool ValidateRegionForMap(Kernel::Memory::PageTable& page_table, VAddr start, |     bool ValidateRegionForMap(Kernel::Memory::PageTable& page_table, VAddr start, | ||||||
|                               std::size_t size) const { |                               std::size_t size) const { | ||||||
|         constexpr std::size_t padding_size{4 * Kernel::Memory::PageSize}; |         constexpr std::size_t padding_size{4 * Kernel::Memory::PageSize}; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei