core: Add wrapper for calling into guest code. (#967)

This commit is contained in:
squidbus
2024-09-23 10:30:16 -07:00
committed by GitHub
parent ad9f1370d5
commit 4ba19a02b0
8 changed files with 57 additions and 35 deletions

View File

@@ -9,6 +9,7 @@
#include "common/string_util.h"
#include "core/aerolib/aerolib.h"
#include "core/cpu_patches.h"
#include "core/linker.h"
#include "core/loader/dwarf.h"
#include "core/memory.h"
#include "core/module.h"
@@ -69,8 +70,9 @@ Module::~Module() = default;
s32 Module::Start(size_t args, const void* argp, void* param) {
LOG_INFO(Core_Linker, "Module started : {}", name);
auto* linker = Common::Singleton<Core::Linker>::Instance();
const VAddr addr = dynamic_info.init_virtual_addr + GetBaseAddress();
return reinterpret_cast<EntryFunc>(addr)(args, argp, param);
return linker->ExecuteGuest(reinterpret_cast<EntryFunc>(addr), args, argp, param);
}
void Module::LoadModuleToMemory(u32& max_tls_index) {