summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-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