summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2019-04-10 18:10:38 +0200
committerZach Hilman <zachhilman@gmail.com>2019-09-21 22:43:10 +0200
commitb71bda45ae26695665bba45e7a3f84ae5a13d2b3 (patch)
treecede44f2d6f30a8a7b1beeb38375621e07698a20
parentbis_factory: Add accessor for NAND Image Directory (diff)
downloadyuzu-b71bda45ae26695665bba45e7a3f84ae5a13d2b3.tar
yuzu-b71bda45ae26695665bba45e7a3f84ae5a13d2b3.tar.gz
yuzu-b71bda45ae26695665bba45e7a3f84ae5a13d2b3.tar.bz2
yuzu-b71bda45ae26695665bba45e7a3f84ae5a13d2b3.tar.lz
yuzu-b71bda45ae26695665bba45e7a3f84ae5a13d2b3.tar.xz
yuzu-b71bda45ae26695665bba45e7a3f84ae5a13d2b3.tar.zst
yuzu-b71bda45ae26695665bba45e7a3f84ae5a13d2b3.zip
-rw-r--r--src/core/file_sys/bis_factory.cpp14
-rw-r--r--src/core/file_sys/bis_factory.h7
2 files changed, 20 insertions, 1 deletions
diff --git a/src/core/file_sys/bis_factory.cpp b/src/core/file_sys/bis_factory.cpp
index b8967853f..cbeb2f73a 100644
--- a/src/core/file_sys/bis_factory.cpp
+++ b/src/core/file_sys/bis_factory.cpp
@@ -14,7 +14,11 @@ BISFactory::BISFactory(VirtualDir nand_root_, VirtualDir load_root_, VirtualDir
sysnand_cache(std::make_unique<RegisteredCache>(
GetOrCreateDirectoryRelative(nand_root, "/system/Contents/registered"))),
usrnand_cache(std::make_unique<RegisteredCache>(
- GetOrCreateDirectoryRelative(nand_root, "/user/Contents/registered"))) {}
+ GetOrCreateDirectoryRelative(nand_root, "/user/Contents/registered"))),
+ sysnand_placeholder(std::make_unique<PlaceholderCache>(
+ GetOrCreateDirectoryRelative(nand_root, "/system/Contents/placehld"))),
+ usrnand_placeholder(std::make_unique<PlaceholderCache>(
+ GetOrCreateDirectoryRelative(nand_root, "/user/Contents/placehld"))) {}
BISFactory::~BISFactory() = default;
@@ -34,6 +38,14 @@ RegisteredCache* BISFactory::GetUserNANDContents() const {
return usrnand_cache.get();
}
+PlaceholderCache* BISFactory::GetSystemNANDPlaceholder() const {
+ return sysnand_placeholder.get();
+}
+
+PlaceholderCache* BISFactory::GetUserNANDPlaceholder() const {
+ return usrnand_placeholder.get();
+}
+
VirtualDir BISFactory::GetModificationLoadRoot(u64 title_id) const {
// LayeredFS doesn't work on updates and title id-less homebrew
if (title_id == 0 || (title_id & 0x800) > 0)
diff --git a/src/core/file_sys/bis_factory.h b/src/core/file_sys/bis_factory.h
index 38dcd28dc..6229cd5a9 100644
--- a/src/core/file_sys/bis_factory.h
+++ b/src/core/file_sys/bis_factory.h
@@ -28,6 +28,7 @@ enum class BisPartitionId : u32 {
};
class RegisteredCache;
+class PlaceholderCache;
/// File system interface to the Built-In Storage
/// This is currently missing accessors to BIS partitions, but seemed like a good place for the NAND
@@ -43,6 +44,9 @@ public:
RegisteredCache* GetSystemNANDContents() const;
RegisteredCache* GetUserNANDContents() const;
+ PlaceholderCache* GetSystemNANDPlaceholder() const;
+ PlaceholderCache* GetUserNANDPlaceholder() const;
+
VirtualDir GetModificationLoadRoot(u64 title_id) const;
VirtualDir GetModificationDumpRoot(u64 title_id) const;
@@ -58,6 +62,9 @@ private:
std::unique_ptr<RegisteredCache> sysnand_cache;
std::unique_ptr<RegisteredCache> usrnand_cache;
+
+ std::unique_ptr<PlaceholderCache> sysnand_placeholder;
+ std::unique_ptr<PlaceholderCache> usrnand_placeholder;
};
} // namespace FileSys