diff options
author | Zach Hilman <zachhilman@gmail.com> | 2019-04-10 18:10:38 +0200 |
---|---|---|
committer | Zach Hilman <zachhilman@gmail.com> | 2019-09-21 22:43:10 +0200 |
commit | b71bda45ae26695665bba45e7a3f84ae5a13d2b3 (patch) | |
tree | cede44f2d6f30a8a7b1beeb38375621e07698a20 | |
parent | bis_factory: Add accessor for NAND Image Directory (diff) | |
download | yuzu-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.cpp | 14 | ||||
-rw-r--r-- | src/core/file_sys/bis_factory.h | 7 |
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 |