From 297be2cf8c4741a20dc639d0995a134eaba9a022 Mon Sep 17 00:00:00 2001 From: kdlz4161 <37803177+kdlz4161@users.noreply.github.com> Date: Sun, 1 Apr 2018 14:08:46 -0300 Subject: [PATCH] Create xc.h Add support of xci files --- src/core/loader/xc.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/core/loader/xc.h diff --git a/src/core/loader/xc.h b/src/core/loader/xc.h new file mode 100644 index 0000000000..f12ffbc158 --- /dev/null +++ b/src/core/loader/xc.h @@ -0,0 +1,40 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include +#include "common/common_types.h" +#include "core/hle/kernel/kernel.h" +#include "core/loader/linker.h" +#include "core/loader/loader.h" + +namespace Loader { + +/// Loads an XCI file +class AppLoader_XCI final : public AppLoader, Linker { +public: + AppLoader_NRO(FileUtil::IOFile&& file, std::string filepath); + + /** + * Returns the type of the file + * @param file FileUtil::IOFile open file + * @param filepath Path of the file that we are opening. + * @return FileType found, or FileType::Error if this loader doesn't know it + */ + static FileType IdentifyType(FileUtil::IOFile& file, const std::string& filepath); + + FileType GetFileType() override { + return IdentifyType(file, filepath); + } + + ResultStatus Load(Kernel::SharedPtr& process) override; + +private: + bool LoadNro(const std::string& path, VAddr load_base); + + std::string filepath; +}; + +} // namespace Loader