aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys/bis_factory.cpp
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2019-04-16 14:27:34 -0400
committerZach Hilman <zachhilman@gmail.com>2019-09-21 16:43:10 -0400
commit4a2e1c6ae613620faf56dea0ac4c4b8a5306bf4a (patch)
tree248e411b62e6172107b9299130445957bccc82cc /src/core/file_sys/bis_factory.cpp
parent49440d51b1bea86e8c850b6fd9dedf7c66da0d1e (diff)
bis_factory: Add getters for NAND partition sizes
Diffstat (limited to 'src/core/file_sys/bis_factory.cpp')
-rw-r--r--src/core/file_sys/bis_factory.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/core/file_sys/bis_factory.cpp b/src/core/file_sys/bis_factory.cpp
index 6cd0a98ebe..8f758d6d9d 100644
--- a/src/core/file_sys/bis_factory.cpp
+++ b/src/core/file_sys/bis_factory.cpp
@@ -3,8 +3,12 @@
// Refer to the license.txt file included.
#include <fmt/format.h>
+#include "common/file_util.h"
+#include "core/core.h"
#include "core/file_sys/bis_factory.h"
+#include "core/file_sys/mode.h"
#include "core/file_sys/registered_cache.h"
+#include "core/settings.h"
namespace FileSys {
@@ -104,4 +108,32 @@ VirtualDir BISFactory::GetImageDirectory() const {
return GetOrCreateDirectoryRelative(nand_root, "/user/Album");
}
+u64 BISFactory::GetSystemNANDFreeSpace() const {
+ const auto sys_dir = GetOrCreateDirectoryRelative(nand_root, "/system");
+ if (sys_dir == nullptr)
+ return 0;
+
+ return GetSystemNANDTotalSpace() - sys_dir->GetSize();
+}
+
+u64 BISFactory::GetSystemNANDTotalSpace() const {
+ return static_cast<u64>(Settings::values.nand_system_size);
+}
+
+u64 BISFactory::GetUserNANDFreeSpace() const {
+ const auto usr_dir = GetOrCreateDirectoryRelative(nand_root, "/user");
+ if (usr_dir == nullptr)
+ return 0;
+
+ return GetUserNANDTotalSpace() - usr_dir->GetSize();
+}
+
+u64 BISFactory::GetUserNANDTotalSpace() const {
+ return static_cast<u64>(Settings::values.nand_user_size);
+}
+
+u64 BISFactory::GetFullNANDTotalSpace() const {
+ return static_cast<u64>(Settings::values.nand_total_size);
+}
+
} // namespace FileSys