diff options
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2014-09-27 21:16:51 +0200 |
---|---|---|
committer | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2014-10-06 19:58:37 +0200 |
commit | 23c2fbfc7a900ae3c9f8791a87c5ad672f5778fe (patch) | |
tree | f5535cf4b4bde9054f0e1098eb1fd817b5ff1599 /src/core | |
parent | FileSys: Add forgotten docstrings. (diff) | |
download | yuzu-23c2fbfc7a900ae3c9f8791a87c5ad672f5778fe.tar yuzu-23c2fbfc7a900ae3c9f8791a87c5ad672f5778fe.tar.gz yuzu-23c2fbfc7a900ae3c9f8791a87c5ad672f5778fe.tar.bz2 yuzu-23c2fbfc7a900ae3c9f8791a87c5ad672f5778fe.tar.lz yuzu-23c2fbfc7a900ae3c9f8791a87c5ad672f5778fe.tar.xz yuzu-23c2fbfc7a900ae3c9f8791a87c5ad672f5778fe.tar.zst yuzu-23c2fbfc7a900ae3c9f8791a87c5ad672f5778fe.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/file_sys/file.h | 7 | ||||
-rw-r--r-- | src/core/file_sys/file_romfs.cpp | 9 | ||||
-rw-r--r-- | src/core/file_sys/file_romfs.h | 7 | ||||
-rw-r--r-- | src/core/file_sys/file_sdmc.cpp | 11 | ||||
-rw-r--r-- | src/core/file_sys/file_sdmc.h | 7 | ||||
-rw-r--r-- | src/core/hle/kernel/archive.cpp | 8 |
6 files changed, 49 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 */ diff --git a/src/core/hle/kernel/archive.cpp b/src/core/hle/kernel/archive.cpp index fa4972994..0a66ab29b 100644 --- a/src/core/hle/kernel/archive.cpp +++ b/src/core/hle/kernel/archive.cpp @@ -181,6 +181,14 @@ public: break; } + case FileCommand::SetSize: + { + u64 size = cmd_buff[1] | ((u64)cmd_buff[2] << 32); + DEBUG_LOG(KERNEL, "SetSize %s %s size=%d", GetTypeName().c_str(), GetName().c_str(), size); + backend->SetSize(size); + break; + } + case FileCommand::Close: { DEBUG_LOG(KERNEL, "Close %s %s", GetTypeName().c_str(), GetName().c_str()); |