small fixes , cleanups
This commit is contained in:
parent
9d4149f006
commit
e272b152ed
|
@ -89,11 +89,11 @@ void load(const std::filesystem::path& path) {
|
|||
}
|
||||
}
|
||||
if (data.contains("LLE")) {
|
||||
auto generalResult = toml::expect<toml::value>(data.at("LLE"));
|
||||
if (generalResult.is_ok()) {
|
||||
auto general = generalResult.unwrap();
|
||||
auto lleResult = toml::expect<toml::value>(data.at("LLE"));
|
||||
if (lleResult.is_ok()) {
|
||||
auto lle = lleResult.unwrap();
|
||||
|
||||
isLibc = toml::find_or<toml::boolean>(general, "libc", true);
|
||||
isLibc = toml::find_or<toml::boolean>(lle, "libc", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,9 +27,7 @@ namespace Core::Libraries::LibKernel {
|
|||
static u64 g_stack_chk_guard = 0xDEADBEEF54321ABC; // dummy return
|
||||
|
||||
static void* PS4_SYSV_ABI sceKernelGetProcParam() {
|
||||
|
||||
auto* linker = Common::Singleton<Core::Linker>::Instance();
|
||||
|
||||
return reinterpret_cast<void*>(linker->GetProcParam());
|
||||
}
|
||||
|
||||
|
|
|
@ -84,14 +84,6 @@ Module* Linker::LoadModule(const std::filesystem::path& elf_name) {
|
|||
return m.get();
|
||||
}
|
||||
|
||||
Module* Linker::FindModule(u32 id) {
|
||||
// TODO atm we only have 1 module so we don't need to iterate on vector
|
||||
if (m_modules.empty()) [[unlikely]] {
|
||||
return nullptr;
|
||||
}
|
||||
return m_modules[0].get();
|
||||
}
|
||||
|
||||
void Linker::LoadModuleToMemory(Module* m) {
|
||||
// get elf header, program header
|
||||
const auto elf_header = m->elf.GetElfHeader();
|
||||
|
@ -628,7 +620,7 @@ static PS4_SYSV_ABI int run_module(uint64_t addr, size_t args, const void* argp,
|
|||
}
|
||||
|
||||
int Linker::StartModule(Module* m, size_t args, const void* argp, module_func_t func) {
|
||||
LOG_INFO(Core_Linker, "Module started : {}\n", m->file_name);
|
||||
LOG_INFO(Core_Linker, "Module started : {}", m->file_name);
|
||||
return run_module(m->dynamic_info.init_virtual_addr + m->base_virtual_addr, args, argp, func);
|
||||
}
|
||||
|
||||
|
|
|
@ -126,7 +126,6 @@ public:
|
|||
virtual ~Linker();
|
||||
|
||||
Module* LoadModule(const std::filesystem::path& elf_name);
|
||||
Module* FindModule(u32 id = 0);
|
||||
void LoadModuleToMemory(Module* m);
|
||||
void LoadDynamicInfo(Module* m);
|
||||
void LoadSymbols(Module* m);
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include <cstdio>
|
||||
#include <thread>
|
||||
|
||||
#include <common/logging/log.h>
|
||||
#include <core/hle/libraries/libc/libc.h>
|
||||
#include <core/hle/libraries/libkernel/thread_management.h>
|
||||
#include "common/config.h"
|
||||
|
@ -53,13 +54,12 @@ int main(int argc, char* argv[]) {
|
|||
// check if there is a libc.prx in sce_module folder
|
||||
bool found = false;
|
||||
if (Config::isLleLibc()) {
|
||||
std::filesystem::path sce_module_folder =
|
||||
std::string(p.parent_path().string() + "\\sce_module");
|
||||
if (std::filesystem::exists(sce_module_folder)) {
|
||||
std::filesystem::path sce_module_folder = p.parent_path() / "sce_module";
|
||||
if (std::filesystem::is_directory(sce_module_folder)) {
|
||||
for (const auto& entry : std::filesystem::directory_iterator(sce_module_folder)) {
|
||||
if (entry.path().filename() == "libc.prx") {
|
||||
found = true;
|
||||
printf("%s\n", entry.path().string().c_str());
|
||||
LOG_INFO(Loader, "Loading {}", entry.path().string().c_str());
|
||||
linker->LoadModule(entry.path().string().c_str());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue