mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	HLE: Move SVC handlers to the Kernel namespace
This commit is contained in:
		
							parent
							
								
									ad71e23f23
								
							
						
					
					
						commit
						21188f5683
					
				
					 5 changed files with 209 additions and 281 deletions
				
			
		|  | @ -54,7 +54,7 @@ static Dynarmic::UserCallbacks GetUserCallbacks( | |||
|     Dynarmic::UserCallbacks user_callbacks{}; | ||||
|     user_callbacks.InterpreterFallback = &InterpreterFallback; | ||||
|     user_callbacks.user_arg = static_cast<void*>(interpreter_state.get()); | ||||
|     user_callbacks.CallSVC = &SVC::CallSVC; | ||||
|     user_callbacks.CallSVC = &Kernel::CallSVC; | ||||
|     user_callbacks.memory.IsReadOnlyMemory = &IsReadOnlyMemory; | ||||
|     user_callbacks.memory.ReadCode = &Memory::Read32; | ||||
|     user_callbacks.memory.Read8 = &Memory::Read8; | ||||
|  |  | |||
|  | @ -3863,7 +3863,7 @@ SWI_INST : { | |||
|         cpu->NumInstrsToExecute = | ||||
|             num_instrs >= cpu->NumInstrsToExecute ? 0 : cpu->NumInstrsToExecute - num_instrs; | ||||
|         num_instrs = 0; | ||||
|         SVC::CallSVC(inst_cream->num & 0xFFFF); | ||||
|         Kernel::CallSVC(inst_cream->num & 0xFFFF); | ||||
|     } | ||||
| 
 | ||||
|     cpu->Reg[15] += cpu->GetInstructionSize(); | ||||
|  |  | |||
|  | @ -99,10 +99,10 @@ void Wrap() { | |||
|     FuncReturn(retval); | ||||
| } | ||||
| 
 | ||||
| template <ResultCode func(MemoryInfo*, PageInfo*, u32)> | ||||
| template <ResultCode func(Kernel::MemoryInfo*, Kernel::PageInfo*, u32)> | ||||
| void Wrap() { | ||||
|     MemoryInfo memory_info = {}; | ||||
|     PageInfo page_info = {}; | ||||
|     Kernel::MemoryInfo memory_info = {}; | ||||
|     Kernel::PageInfo page_info = {}; | ||||
|     u32 retval = func(&memory_info, &page_info, PARAM(2)).raw; | ||||
|     Core::CPU().SetReg(1, memory_info.base_address); | ||||
|     Core::CPU().SetReg(2, memory_info.size); | ||||
|  | @ -112,10 +112,10 @@ void Wrap() { | |||
|     FuncReturn(retval); | ||||
| } | ||||
| 
 | ||||
| template <ResultCode func(MemoryInfo*, PageInfo*, Kernel::Handle, u32)> | ||||
| template <ResultCode func(Kernel::MemoryInfo*, Kernel::PageInfo*, Kernel::Handle, u32)> | ||||
| void Wrap() { | ||||
|     MemoryInfo memory_info = {}; | ||||
|     PageInfo page_info = {}; | ||||
|     Kernel::MemoryInfo memory_info = {}; | ||||
|     Kernel::PageInfo page_info = {}; | ||||
|     u32 retval = func(&memory_info, &page_info, PARAM(2), PARAM(3)).raw; | ||||
|     Core::CPU().SetReg(1, memory_info.base_address); | ||||
|     Core::CPU().SetReg(2, memory_info.size); | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -6,8 +6,7 @@ | |||
| 
 | ||||
| #include "common/common_types.h" | ||||
| 
 | ||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||
| // SVC types
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| struct MemoryInfo { | ||||
|     u32 base_address; | ||||
|  | @ -20,11 +19,6 @@ struct PageInfo { | |||
|     u32 flags; | ||||
| }; | ||||
| 
 | ||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||
| // Namespace SVC
 | ||||
| 
 | ||||
| namespace SVC { | ||||
| 
 | ||||
| /// Values accepted by svcGetSystemInfo's type parameter.
 | ||||
| enum class SystemInfoType { | ||||
|     /**
 | ||||
|  | @ -56,4 +50,4 @@ enum class SystemInfoMemUsageRegion { | |||
| 
 | ||||
| void CallSVC(u32 immediate); | ||||
| 
 | ||||
| } // namespace
 | ||||
| } // namespace Kernel
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue