summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Zach Hilman2019-04-16 14:27:34 -0400
committerGravatar Zach Hilman2019-09-21 16:43:10 -0400
commite47b57a90fb2123a2c4d98f4f990b61976c0ea1f (patch)
tree248e411b62e6172107b9299130445957bccc82cc
parentfilesystem: Add FileSystemController to deglobalize FS services (diff)
downloadyuzu-e47b57a90fb2123a2c4d98f4f990b61976c0ea1f.tar.gz
yuzu-e47b57a90fb2123a2c4d98f4f990b61976c0ea1f.tar.xz
yuzu-e47b57a90fb2123a2c4d98f4f990b61976c0ea1f.zip
bis_factory: Add getters for NAND partition sizes
-rw-r--r--src/core/file_sys/bis_factory.cpp32
-rw-r--r--src/core/file_sys/bis_factory.h6
2 files changed, 38 insertions, 0 deletions
diff --git a/src/core/file_sys/bis_factory.cpp b/src/core/file_sys/bis_factory.cpp
index 6cd0a98eb..8f758d6d9 100644
--- a/src/core/file_sys/bis_factory.cpp
+++ b/src/core/file_sys/bis_factory.cpp
@@ -3,8 +3,12 @@
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <fmt/format.h> 5#include <fmt/format.h>
6#include "common/file_util.h"
7#include "core/core.h"
6#include "core/file_sys/bis_factory.h" 8#include "core/file_sys/bis_factory.h"
9#include "core/file_sys/mode.h"
7#include "core/file_sys/registered_cache.h" 10#include "core/file_sys/registered_cache.h"
11#include "core/settings.h"
8 12
9namespace FileSys { 13namespace FileSys {
10 14
@@ -104,4 +108,32 @@ VirtualDir BISFactory::GetImageDirectory() const {
104 return GetOrCreateDirectoryRelative(nand_root, "/user/Album"); 108 return GetOrCreateDirectoryRelative(nand_root, "/user/Album");
105} 109}
106 110
111u64 BISFactory::GetSystemNANDFreeSpace() const {
112 const auto sys_dir = GetOrCreateDirectoryRelative(nand_root, "/system");
113 if (sys_dir == nullptr)
114 return 0;
115
116 return GetSystemNANDTotalSpace() - sys_dir->GetSize();
117}
118
119u64 BISFactory::GetSystemNANDTotalSpace() const {
120 return static_cast<u64>(Settings::values.nand_system_size);
121}
122
123u64 BISFactory::GetUserNANDFreeSpace() const {
124 const auto usr_dir = GetOrCreateDirectoryRelative(nand_root, "/user");
125 if (usr_dir == nullptr)
126 return 0;
127
128 return GetUserNANDTotalSpace() - usr_dir->GetSize();
129}
130
131u64 BISFactory::GetUserNANDTotalSpace() const {
132 return static_cast<u64>(Settings::values.nand_user_size);
133}
134
135u64 BISFactory::GetFullNANDTotalSpace() const {
136 return static_cast<u64>(Settings::values.nand_total_size);
137}
138
107} // namespace FileSys 139} // namespace FileSys
diff --git a/src/core/file_sys/bis_factory.h b/src/core/file_sys/bis_factory.h
index 6229cd5a9..bdfe728c9 100644
--- a/src/core/file_sys/bis_factory.h
+++ b/src/core/file_sys/bis_factory.h
@@ -55,6 +55,12 @@ public:
55 55
56 VirtualDir GetImageDirectory() const; 56 VirtualDir GetImageDirectory() const;
57 57
58 u64 GetSystemNANDFreeSpace() const;
59 u64 GetSystemNANDTotalSpace() const;
60 u64 GetUserNANDFreeSpace() const;
61 u64 GetUserNANDTotalSpace() const;
62 u64 GetFullNANDTotalSpace() const;
63
58private: 64private:
59 VirtualDir nand_root; 65 VirtualDir nand_root;
60 VirtualDir load_root; 66 VirtualDir load_root;