mirror of
				https://github.com/yuzu-emu/yuzu.git
				synced 2025-11-04 12:13:42 +00:00 
			
		
		
		
	- removed syscall classes (will just use HLEFunction)
- added hle.cpp and module registration - removed unused code
This commit is contained in:
		
							parent
							
								
									95f237a086
								
							
						
					
					
						commit
						2a7d7ce55d
					
				@ -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();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user