diff options
author | bunnei <bunneidev@gmail.com> | 2017-10-06 05:30:08 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2017-10-06 05:30:08 +0200 |
commit | 33ea53094cc1f34c27ca295472f01f8dd09a300b (patch) | |
tree | c45a8eefd68222c390b28ab2dfba3d787c4634ac /src/core/loader/nso.h | |
parent | nso: Fixes to support homebrew NSOs without a MOD header. (diff) | |
download | yuzu-33ea53094cc1f34c27ca295472f01f8dd09a300b.tar yuzu-33ea53094cc1f34c27ca295472f01f8dd09a300b.tar.gz yuzu-33ea53094cc1f34c27ca295472f01f8dd09a300b.tar.bz2 yuzu-33ea53094cc1f34c27ca295472f01f8dd09a300b.tar.lz yuzu-33ea53094cc1f34c27ca295472f01f8dd09a300b.tar.xz yuzu-33ea53094cc1f34c27ca295472f01f8dd09a300b.tar.zst yuzu-33ea53094cc1f34c27ca295472f01f8dd09a300b.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/loader/nso.h | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/src/core/loader/nso.h b/src/core/loader/nso.h index 16b41b6dc..431b960b1 100644 --- a/src/core/loader/nso.h +++ b/src/core/loader/nso.h @@ -9,12 +9,13 @@ #include "common/common_types.h" #include "common/file_util.h" #include "core/hle/kernel/kernel.h" +#include "core/loader/linker.h" #include "core/loader/loader.h" namespace Loader { /// Loads an NSO file -class AppLoader_NSO final : public AppLoader { +class AppLoader_NSO final : public AppLoader, Linker { public: AppLoader_NSO(FileUtil::IOFile&& file, std::string filename, std::string filepath) : AppLoader(std::move(file)), filename(std::move(filename)), filepath(std::move(filepath)) { @@ -34,25 +35,8 @@ public: ResultStatus Load() override; private: - struct Symbol { - Symbol(std::string&& name, u64 value) : name(std::move(name)), value(value) {} - std::string name; - u64 value; - }; - - struct Import { - VAddr ea; - s64 addend; - }; - - void WriteRelocations(const std::vector<Symbol>& symbols, VAddr load_base, - u64 relocation_offset, u64 size, bool is_jump_relocation); VAddr GetEntryPoint(VAddr load_base) const; bool LoadNso(const std::string& path, VAddr load_base); - void Relocate(VAddr load_base, VAddr dynamic_section_addr); - - std::map<std::string, Import> imports; - std::map<std::string, VAddr> exports; std::string filename; std::string filepath; |