summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-08-10 02:49:45 +0200
committerZach Hilman <zachhilman@gmail.com>2018-08-12 04:50:48 +0200
commit70a510bd8f2f8d150abe632c94dc9a3eb247e43f (patch)
tree349c3b175f2b1dfed827587a117b2720cb93ff55
parentloader: Join 0* files in directory if filename is 00 (diff)
downloadyuzu-70a510bd8f2f8d150abe632c94dc9a3eb247e43f.tar
yuzu-70a510bd8f2f8d150abe632c94dc9a3eb247e43f.tar.gz
yuzu-70a510bd8f2f8d150abe632c94dc9a3eb247e43f.tar.bz2
yuzu-70a510bd8f2f8d150abe632c94dc9a3eb247e43f.tar.lz
yuzu-70a510bd8f2f8d150abe632c94dc9a3eb247e43f.tar.xz
yuzu-70a510bd8f2f8d150abe632c94dc9a3eb247e43f.tar.zst
yuzu-70a510bd8f2f8d150abe632c94dc9a3eb247e43f.zip
-rw-r--r--src/core/file_sys/bis_factory.cpp24
-rw-r--r--src/core/file_sys/bis_factory.h30
2 files changed, 54 insertions, 0 deletions
diff --git a/src/core/file_sys/bis_factory.cpp b/src/core/file_sys/bis_factory.cpp
new file mode 100644
index 000000000..7d0de733b
--- /dev/null
+++ b/src/core/file_sys/bis_factory.cpp
@@ -0,0 +1,24 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "core/file_sys/bis_factory.h"
+
+namespace FileSys {
+
+BISFactory::BISFactory(VirtualDir nand_root_)
+ : nand_root(std::move(nand_root_)),
+ sysnand_cache(std::make_shared<RegisteredCache>(
+ nand_root->GetDirectoryRelative("/system/Contents/registered"))),
+ usrnand_cache(std::make_shared<RegisteredCache>(
+ nand_root->GetDirectoryRelative("/user/Contents/registered"))) {}
+
+std::shared_ptr<RegisteredCache> BISFactory::GetSystemNANDContents() const {
+ return sysnand_cache;
+}
+
+std::shared_ptr<RegisteredCache> BISFactory::GetUserNANDContents() const {
+ return usrnand_cache;
+}
+
+} // namespace FileSys
diff --git a/src/core/file_sys/bis_factory.h b/src/core/file_sys/bis_factory.h
new file mode 100644
index 000000000..a970a5e2e
--- /dev/null
+++ b/src/core/file_sys/bis_factory.h
@@ -0,0 +1,30 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include "core/loader/loader.h"
+#include "registered_cache.h"
+
+namespace FileSys {
+
+/// 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
+/// registered caches.
+class BISFactory {
+public:
+ explicit BISFactory(VirtualDir nand_root);
+
+ std::shared_ptr<RegisteredCache> GetSystemNANDContents() const;
+ std::shared_ptr<RegisteredCache> GetUserNANDContents() const;
+
+private:
+ VirtualDir nand_root;
+
+ std::shared_ptr<RegisteredCache> sysnand_cache;
+ std::shared_ptr<RegisteredCache> usrnand_cache;
+};
+
+} // namespace FileSys