- removed syscall classes (will just use HLEFunction)
- added hle.cpp and module registration - removed unused code
This commit is contained in:
		| @@ -152,6 +152,7 @@ | ||||
|     <ClCompile Include="elf\elf_reader.cpp" /> | ||||
|     <ClCompile Include="file_sys\directory_file_system.cpp" /> | ||||
|     <ClCompile Include="file_sys\meta_file_system.cpp" /> | ||||
|     <ClCompile Include="hle.cpp" /> | ||||
|     <ClCompile Include="hle\hle_syscall.cpp" /> | ||||
|     <ClCompile Include="hw\hw.cpp" /> | ||||
|     <ClCompile Include="hw\hw_lcd.cpp" /> | ||||
|   | ||||
| @@ -81,6 +81,9 @@ | ||||
|     <ClCompile Include="hle\hle_syscall.cpp"> | ||||
|       <Filter>hle</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="hle.cpp"> | ||||
|       <Filter>hle</Filter> | ||||
|     </ClCompile> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <ClInclude Include="arm\disassembler\arm_disasm.h"> | ||||
|   | ||||
							
								
								
									
										33
									
								
								src/core/hle.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/core/hle.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| // Copyright 2014 Citra Emulator Project | ||||
| // Licensed under GPLv2 | ||||
| // Refer to the license.txt file included.   | ||||
|  | ||||
| #include <vector> | ||||
|  | ||||
| #include "core/hle/hle.h" | ||||
| #include "core/hle/hle_syscall.h" | ||||
|  | ||||
| //////////////////////////////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| namespace HLE { | ||||
|  | ||||
| static std::vector<HLEModule> g_module_db; | ||||
|  | ||||
| void RegisterModule(const char *name, int num_functions, const HLEFunction *func_table) { | ||||
|     HLEModule module = {name, num_functions, func_table}; | ||||
|     g_module_db.push_back(module); | ||||
| } | ||||
|  | ||||
| void RegisterAllModules() { | ||||
|     Register_SysCall(); | ||||
| } | ||||
|  | ||||
| void Init() { | ||||
|     RegisterAllModules(); | ||||
| } | ||||
|  | ||||
| void Shutdown() { | ||||
| 	g_module_db.clear(); | ||||
| } | ||||
|  | ||||
| } // namespace | ||||
| @@ -10,13 +10,11 @@ | ||||
| //////////////////////////////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| typedef void (*HLEFunc)(); | ||||
| typedef void (*SysCallFunc)(); | ||||
|  | ||||
| struct HLEFunction { | ||||
| 	u32                 id; | ||||
| 	HLEFunc             func; | ||||
| 	const char*         name; | ||||
| 	u32                 flags; | ||||
| }; | ||||
|  | ||||
| struct HLEModule { | ||||
| @@ -25,11 +23,15 @@ struct HLEModule { | ||||
| 	const HLEFunction*  func_table; | ||||
| }; | ||||
|  | ||||
| struct SysCall { | ||||
|     u8                  id; | ||||
| 	SysCallFunc         func; | ||||
|     const char*         name; | ||||
| }; | ||||
|  | ||||
| #define PARAM(n)        Core::g_app_core->GetReg(n) | ||||
| #define RETURN(n)       Core::g_app_core->SetReg(0, n) | ||||
|  | ||||
| namespace HLE { | ||||
|  | ||||
| void Init(); | ||||
|  | ||||
| void Shutdown(); | ||||
|  | ||||
| void RegisterModule(const char *name, int num_functions, const HLEFunction *func_table); | ||||
|  | ||||
| } // namespace | ||||
|   | ||||
| @@ -7,16 +7,18 @@ | ||||
|  | ||||
| //////////////////////////////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
|  | ||||
| typedef u32 Handle; | ||||
| typedef s32 Result; | ||||
|  | ||||
| Result SVC_ConnectToPort(void* out, const char* port_name) { | ||||
|     NOTICE_LOG(OSHLE, "SVC_ConnectToPort called, port_name: %s", port_name); | ||||
|     NOTICE_LOG(OSHLE, "svcConnectToPort called, port_name: %s", port_name); | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| const SysCall SysCallTable[] = { | ||||
| const HLEFunction SysCallTable[] = { | ||||
|     {0x2D, WrapI_VC<SVC_ConnectToPort>, "svcConnectToPort"}, | ||||
| }; | ||||
|  | ||||
| void Register_SysCalls() { | ||||
| void Register_SysCall() { | ||||
|     HLE::RegisterModule("SysCallTable", ARRAY_SIZE(SysCallTable), SysCallTable); | ||||
| } | ||||
|   | ||||
| @@ -35,8 +35,6 @@ | ||||
| //}; | ||||
|  | ||||
|  | ||||
| typedef u32 Handle; | ||||
| typedef s32 Result; | ||||
|  | ||||
|  | ||||
| Result ConnectToPort(Handle* out, const char* port_name); | ||||
| void Register_SysCall(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user