summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/romfs.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-09-25 22:59:44 +0200
committerGitHub <noreply@github.com>2018-09-25 22:59:44 +0200
commit7b81e1e52565ee867c285e2b0c2526f8d4b82581 (patch)
tree718decad5aae4153d8acaa444058914a1c12f147 /src/core/file_sys/romfs.h
parentMerge pull request #1393 from tech4me/svc (diff)
parentfsmitm: Cleanup and modernize fsmitm port (diff)
downloadyuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar
yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.gz
yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.bz2
yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.lz
yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.xz
yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.tar.zst
yuzu-7b81e1e52565ee867c285e2b0c2526f8d4b82581.zip
Diffstat (limited to 'src/core/file_sys/romfs.h')
-rw-r--r--src/core/file_sys/romfs.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/core/file_sys/romfs.h b/src/core/file_sys/romfs.h
index e54a7d7a9..ecd1eb725 100644
--- a/src/core/file_sys/romfs.h
+++ b/src/core/file_sys/romfs.h
@@ -5,6 +5,7 @@
#pragma once
#include <array>
+#include <map>
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/swap.h"
@@ -12,6 +13,8 @@
namespace FileSys {
+struct RomFSHeader;
+
struct IVFCLevel {
u64_le offset;
u64_le size;
@@ -29,8 +32,18 @@ struct IVFCHeader {
};
static_assert(sizeof(IVFCHeader) == 0xE0, "IVFCHeader has incorrect size.");
+enum class RomFSExtractionType {
+ Full, // Includes data directory
+ Truncated, // Traverses into data directory
+};
+
// Converts a RomFS binary blob to VFS Filesystem
// Returns nullptr on failure
-VirtualDir ExtractRomFS(VirtualFile file);
+VirtualDir ExtractRomFS(VirtualFile file,
+ RomFSExtractionType type = RomFSExtractionType::Truncated);
+
+// Converts a VFS filesystem into a RomFS binary
+// Returns nullptr on failure
+VirtualFile CreateRomFS(VirtualDir dir);
} // namespace FileSys