From 20544977dab5b00a86c73572b94e7e75a7499f7a Mon Sep 17 00:00:00 2001 From: wwylele Date: Fri, 10 Feb 2017 17:15:26 +0200 Subject: loader: use self NCCH archive --- src/core/CMakeLists.txt | 2 -- src/core/file_sys/archive_romfs.cpp | 43 ------------------------------------- src/core/file_sys/archive_romfs.h | 38 -------------------------------- src/core/hle/service/fs/archive.h | 2 +- src/core/loader/3dsx.cpp | 6 +++--- src/core/loader/ncch.cpp | 6 +++--- 6 files changed, 7 insertions(+), 90 deletions(-) delete mode 100644 src/core/file_sys/archive_romfs.cpp delete mode 100644 src/core/file_sys/archive_romfs.h diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index a4aa90477..8c2438831 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -20,7 +20,6 @@ set(SRCS file_sys/archive_extsavedata.cpp file_sys/archive_ncch.cpp file_sys/archive_other_savedata.cpp - file_sys/archive_romfs.cpp file_sys/archive_savedata.cpp file_sys/archive_sdmc.cpp file_sys/archive_sdmcwriteonly.cpp @@ -198,7 +197,6 @@ set(HEADERS file_sys/archive_extsavedata.h file_sys/archive_ncch.h file_sys/archive_other_savedata.h - file_sys/archive_romfs.h file_sys/archive_savedata.h file_sys/archive_sdmc.h file_sys/archive_sdmcwriteonly.h diff --git a/src/core/file_sys/archive_romfs.cpp b/src/core/file_sys/archive_romfs.cpp deleted file mode 100644 index 6c99ca5b4..000000000 --- a/src/core/file_sys/archive_romfs.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include -#include -#include "common/common_types.h" -#include "common/logging/log.h" -#include "core/file_sys/archive_romfs.h" -#include "core/file_sys/ivfc_archive.h" - -//////////////////////////////////////////////////////////////////////////////////////////////////// -// FileSys namespace - -namespace FileSys { - -ArchiveFactory_RomFS::ArchiveFactory_RomFS(Loader::AppLoader& app_loader) { - // Load the RomFS from the app - if (Loader::ResultStatus::Success != app_loader.ReadRomFS(romfs_file, data_offset, data_size)) { - LOG_ERROR(Service_FS, "Unable to read RomFS!"); - } -} - -ResultVal> ArchiveFactory_RomFS::Open(const Path& path) { - auto archive = std::make_unique(romfs_file, data_offset, data_size); - return MakeResult>(std::move(archive)); -} - -ResultCode ArchiveFactory_RomFS::Format(const Path& path, - const FileSys::ArchiveFormatInfo& format_info) { - LOG_ERROR(Service_FS, "Attempted to format a RomFS archive."); - // TODO: Verify error code - return ResultCode(ErrorDescription::NotAuthorized, ErrorModule::FS, ErrorSummary::NotSupported, - ErrorLevel::Permanent); -} - -ResultVal ArchiveFactory_RomFS::GetFormatInfo(const Path& path) const { - // TODO(Subv): Implement - LOG_ERROR(Service_FS, "Unimplemented GetFormatInfo archive %s", GetName().c_str()); - return ResultCode(-1); -} - -} // namespace FileSys diff --git a/src/core/file_sys/archive_romfs.h b/src/core/file_sys/archive_romfs.h deleted file mode 100644 index 1eaf99b54..000000000 --- a/src/core/file_sys/archive_romfs.h +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2014 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include -#include -#include -#include "common/common_types.h" -#include "core/file_sys/archive_backend.h" -#include "core/hle/result.h" -#include "core/loader/loader.h" - -//////////////////////////////////////////////////////////////////////////////////////////////////// -// FileSys namespace - -namespace FileSys { - -/// File system interface to the RomFS archive -class ArchiveFactory_RomFS final : public ArchiveFactory { -public: - explicit ArchiveFactory_RomFS(Loader::AppLoader& app_loader); - - std::string GetName() const override { - return "RomFS"; - } - ResultVal> Open(const Path& path) override; - ResultCode Format(const Path& path, const FileSys::ArchiveFormatInfo& format_info) override; - ResultVal GetFormatInfo(const Path& path) const override; - -private: - std::shared_ptr romfs_file; - u64 data_offset; - u64 data_size; -}; - -} // namespace FileSys diff --git a/src/core/hle/service/fs/archive.h b/src/core/hle/service/fs/archive.h index 519c1f3a9..2ea956e0b 100644 --- a/src/core/hle/service/fs/archive.h +++ b/src/core/hle/service/fs/archive.h @@ -26,7 +26,7 @@ namespace FS { /// Supported archive types enum class ArchiveIdCode : u32 { - RomFS = 0x00000003, + SelfNCCH = 0x00000003, SaveData = 0x00000004, ExtSaveData = 0x00000006, SharedExtSaveData = 0x00000007, diff --git a/src/core/loader/3dsx.cpp b/src/core/loader/3dsx.cpp index 09266e8b0..74e336487 100644 --- a/src/core/loader/3dsx.cpp +++ b/src/core/loader/3dsx.cpp @@ -5,7 +5,7 @@ #include #include #include "common/logging/log.h" -#include "core/file_sys/archive_romfs.h" +#include "core/file_sys/archive_selfncch.h" #include "core/hle/kernel/process.h" #include "core/hle/kernel/resource_limit.h" #include "core/hle/service/fs/archive.h" @@ -277,8 +277,8 @@ ResultStatus AppLoader_THREEDSX::Load() { Kernel::g_current_process->Run(48, Kernel::DEFAULT_STACK_SIZE); - Service::FS::RegisterArchiveType(std::make_unique(*this), - Service::FS::ArchiveIdCode::RomFS); + Service::FS::RegisterArchiveType(std::make_unique(*this), + Service::FS::ArchiveIdCode::SelfNCCH); is_loaded = true; return ResultStatus::Success; diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp index 5df33f6d2..98b8259d9 100644 --- a/src/core/loader/ncch.cpp +++ b/src/core/loader/ncch.cpp @@ -8,7 +8,7 @@ #include "common/logging/log.h" #include "common/string_util.h" #include "common/swap.h" -#include "core/file_sys/archive_romfs.h" +#include "core/file_sys/archive_selfncch.h" #include "core/hle/kernel/process.h" #include "core/hle/kernel/resource_limit.h" #include "core/hle/service/cfg/cfg.h" @@ -342,8 +342,8 @@ ResultStatus AppLoader_NCCH::Load() { if (ResultStatus::Success != result) return result; - Service::FS::RegisterArchiveType(std::make_unique(*this), - Service::FS::ArchiveIdCode::RomFS); + Service::FS::RegisterArchiveType(std::make_unique(*this), + Service::FS::ArchiveIdCode::SelfNCCH); ParseRegionLockoutInfo(); -- cgit v1.2.3