summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/file_sys')
-rw-r--r--src/core/file_sys/file.h7
-rw-r--r--src/core/file_sys/file_romfs.cpp9
-rw-r--r--src/core/file_sys/file_romfs.h7
-rw-r--r--src/core/file_sys/file_sdmc.cpp11
-rw-r--r--src/core/file_sys/file_sdmc.h7
5 files changed, 41 insertions, 0 deletions
diff --git a/src/core/file_sys/file.h b/src/core/file_sys/file.h
index 3749e4fcf..443e65319 100644
--- a/src/core/file_sys/file.h
+++ b/src/core/file_sys/file.h
@@ -44,6 +44,13 @@ public:
virtual size_t GetSize() const = 0;
/**
+ * Set the size of the file in bytes
+ * @param size New size of the file
+ * @return true if successful
+ */
+ virtual bool SetSize(const u64 size) const = 0;
+
+ /**
* Close the file
* @return true if the file closed correctly
*/
diff --git a/src/core/file_sys/file_romfs.cpp b/src/core/file_sys/file_romfs.cpp
index 0709e98f0..3ef616e08 100644
--- a/src/core/file_sys/file_romfs.cpp
+++ b/src/core/file_sys/file_romfs.cpp
@@ -49,6 +49,15 @@ size_t File_RomFS::GetSize() const {
}
/**
+ * Set the size of the file in bytes
+ * @param size New size of the file
+ * @return true if successful
+ */
+bool File_RomFS::SetSize(const u64 size) const {
+ return false;
+}
+
+/**
* Close the file
* @return true if the file closed correctly
*/
diff --git a/src/core/file_sys/file_romfs.h b/src/core/file_sys/file_romfs.h
index 28b4f1158..06973eb93 100644
--- a/src/core/file_sys/file_romfs.h
+++ b/src/core/file_sys/file_romfs.h
@@ -45,6 +45,13 @@ public:
size_t GetSize() const override;
/**
+ * Set the size of the file in bytes
+ * @param size New size of the file
+ * @return true if successful
+ */
+ bool SetSize(const u64 size) const override;
+
+ /**
* Close the file
* @return true if the file closed correctly
*/
diff --git a/src/core/file_sys/file_sdmc.cpp b/src/core/file_sys/file_sdmc.cpp
index 76e7f5d3d..3ef2b0c0e 100644
--- a/src/core/file_sys/file_sdmc.cpp
+++ b/src/core/file_sys/file_sdmc.cpp
@@ -76,6 +76,17 @@ size_t File_SDMC::GetSize() const {
}
/**
+ * Set the size of the file in bytes
+ * @param size New size of the file
+ * @return true if successful
+ */
+bool File_SDMC::SetSize(const u64 size) const {
+ file->Resize(size);
+ file->Flush();
+ return true;
+}
+
+/**
* Close the file
* @return true if the file closed correctly
*/
diff --git a/src/core/file_sys/file_sdmc.h b/src/core/file_sys/file_sdmc.h
index d23020494..6b3a1f3a5 100644
--- a/src/core/file_sys/file_sdmc.h
+++ b/src/core/file_sys/file_sdmc.h
@@ -48,6 +48,13 @@ public:
size_t GetSize() const override;
/**
+ * Set the size of the file in bytes
+ * @param size New size of the file
+ * @return true if successful
+ */
+ bool SetSize(const u64 size) const override;
+
+ /**
* Close the file
* @return true if the file closed correctly
*/