summaryrefslogtreecommitdiff
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/fsmitm_romfsbuild.cpp2
-rw-r--r--src/core/file_sys/vfs.cpp6
-rw-r--r--src/core/file_sys/vfs.h9
-rw-r--r--src/core/file_sys/vfs_static.h16
-rw-r--r--src/core/file_sys/vfs_vector.cpp4
-rw-r--r--src/core/file_sys/vfs_vector.h8
6 files changed, 23 insertions, 22 deletions
diff --git a/src/core/file_sys/fsmitm_romfsbuild.cpp b/src/core/file_sys/fsmitm_romfsbuild.cpp
index 21fc3d796..16172445a 100644
--- a/src/core/file_sys/fsmitm_romfsbuild.cpp
+++ b/src/core/file_sys/fsmitm_romfsbuild.cpp
@@ -97,7 +97,7 @@ struct RomFSBuildFileContext {
97 RomFSBuildFileContext() : path(""), cur_path_ofs(0), path_len(0) {} 97 RomFSBuildFileContext() : path(""), cur_path_ofs(0), path_len(0) {}
98}; 98};
99 99
100static u32 romfs_calc_path_hash(u32 parent, std::string path, u32 start, size_t path_len) { 100static u32 romfs_calc_path_hash(u32 parent, std::string path, u32 start, std::size_t path_len) {
101 u32 hash = parent ^ 123456789; 101 u32 hash = parent ^ 123456789;
102 for (u32 i = 0; i < path_len; i++) { 102 for (u32 i = 0; i < path_len; i++) {
103 hash = (hash >> 5) | (hash << 27); 103 hash = (hash >> 5) | (hash << 27);
diff --git a/src/core/file_sys/vfs.cpp b/src/core/file_sys/vfs.cpp
index 5fbea1739..bfe50da73 100644
--- a/src/core/file_sys/vfs.cpp
+++ b/src/core/file_sys/vfs.cpp
@@ -463,14 +463,14 @@ bool DeepEquals(const VirtualFile& file1, const VirtualFile& file2, std::size_t
463 return true; 463 return true;
464} 464}
465 465
466bool VfsRawCopy(const VirtualFile& src, const VirtualFile& dest, size_t block_size) { 466bool VfsRawCopy(const VirtualFile& src, const VirtualFile& dest, std::size_t block_size) {
467 if (src == nullptr || dest == nullptr || !src->IsReadable() || !dest->IsWritable()) 467 if (src == nullptr || dest == nullptr || !src->IsReadable() || !dest->IsWritable())
468 return false; 468 return false;
469 if (!dest->Resize(src->GetSize())) 469 if (!dest->Resize(src->GetSize()))
470 return false; 470 return false;
471 471
472 std::vector<u8> temp(std::min(block_size, src->GetSize())); 472 std::vector<u8> temp(std::min(block_size, src->GetSize()));
473 for (size_t i = 0; i < src->GetSize(); i += block_size) { 473 for (std::size_t i = 0; i < src->GetSize(); i += block_size) {
474 const auto read = std::min(block_size, src->GetSize() - i); 474 const auto read = std::min(block_size, src->GetSize() - i);
475 const auto block = src->Read(temp.data(), read, i); 475 const auto block = src->Read(temp.data(), read, i);
476 476
@@ -481,7 +481,7 @@ bool VfsRawCopy(const VirtualFile& src, const VirtualFile& dest, size_t block_si
481 return true; 481 return true;
482} 482}
483 483
484bool VfsRawCopyD(const VirtualDir& src, const VirtualDir& dest, size_t block_size) { 484bool VfsRawCopyD(const VirtualDir& src, const VirtualDir& dest, std::size_t block_size) {
485 if (src == nullptr || dest == nullptr || !src->IsReadable() || !dest->IsWritable()) 485 if (src == nullptr || dest == nullptr || !src->IsReadable() || !dest->IsWritable())
486 return false; 486 return false;
487 487
diff --git a/src/core/file_sys/vfs.h b/src/core/file_sys/vfs.h
index cea4aa8b8..270291631 100644
--- a/src/core/file_sys/vfs.h
+++ b/src/core/file_sys/vfs.h
@@ -315,18 +315,19 @@ public:
315 bool Rename(std::string_view name) override; 315 bool Rename(std::string_view name) override;
316}; 316};
317 317
318// Compare the two files, byte-for-byte, in increments specificed by block_size 318// Compare the two files, byte-for-byte, in increments specified by block_size
319bool DeepEquals(const VirtualFile& file1, const VirtualFile& file2, size_t block_size = 0x1000); 319bool DeepEquals(const VirtualFile& file1, const VirtualFile& file2,
320 std::size_t block_size = 0x1000);
320 321
321// A method that copies the raw data between two different implementations of VirtualFile. If you 322// A method that copies the raw data between two different implementations of VirtualFile. If you
322// are using the same implementation, it is probably better to use the Copy method in the parent 323// are using the same implementation, it is probably better to use the Copy method in the parent
323// directory of src/dest. 324// directory of src/dest.
324bool VfsRawCopy(const VirtualFile& src, const VirtualFile& dest, size_t block_size = 0x1000); 325bool VfsRawCopy(const VirtualFile& src, const VirtualFile& dest, std::size_t block_size = 0x1000);
325 326
326// A method that performs a similar function to VfsRawCopy above, but instead copies entire 327// A method that performs a similar function to VfsRawCopy above, but instead copies entire
327// directories. It suffers the same performance penalties as above and an implementation-specific 328// directories. It suffers the same performance penalties as above and an implementation-specific
328// Copy should always be preferred. 329// Copy should always be preferred.
329bool VfsRawCopyD(const VirtualDir& src, const VirtualDir& dest, size_t block_size = 0x1000); 330bool VfsRawCopyD(const VirtualDir& src, const VirtualDir& dest, std::size_t block_size = 0x1000);
330 331
331// Checks if the directory at path relative to rel exists. If it does, returns that. If it does not 332// Checks if the directory at path relative to rel exists. If it does, returns that. If it does not
332// it attempts to create it and returns the new dir or nullptr on failure. 333// it attempts to create it and returns the new dir or nullptr on failure.
diff --git a/src/core/file_sys/vfs_static.h b/src/core/file_sys/vfs_static.h
index 8ad77d300..44fab51d1 100644
--- a/src/core/file_sys/vfs_static.h
+++ b/src/core/file_sys/vfs_static.h
@@ -14,7 +14,7 @@ namespace FileSys {
14 14
15class StaticVfsFile : public VfsFile { 15class StaticVfsFile : public VfsFile {
16public: 16public:
17 explicit StaticVfsFile(u8 value, size_t size = 0, std::string name = "", 17 explicit StaticVfsFile(u8 value, std::size_t size = 0, std::string name = "",
18 VirtualDir parent = nullptr) 18 VirtualDir parent = nullptr)
19 : value{value}, size{size}, name{std::move(name)}, parent{std::move(parent)} {} 19 : value{value}, size{size}, name{std::move(name)}, parent{std::move(parent)} {}
20 20
@@ -22,11 +22,11 @@ public:
22 return name; 22 return name;
23 } 23 }
24 24
25 size_t GetSize() const override { 25 std::size_t GetSize() const override {
26 return size; 26 return size;
27 } 27 }
28 28
29 bool Resize(size_t new_size) override { 29 bool Resize(std::size_t new_size) override {
30 size = new_size; 30 size = new_size;
31 return true; 31 return true;
32 } 32 }
@@ -43,23 +43,23 @@ public:
43 return true; 43 return true;
44 } 44 }
45 45
46 size_t Read(u8* data, size_t length, size_t offset) const override { 46 std::size_t Read(u8* data, std::size_t length, std::size_t offset) const override {
47 const auto read = std::min(length, size - offset); 47 const auto read = std::min(length, size - offset);
48 std::fill(data, data + read, value); 48 std::fill(data, data + read, value);
49 return read; 49 return read;
50 } 50 }
51 51
52 size_t Write(const u8* data, size_t length, size_t offset) override { 52 std::size_t Write(const u8* data, std::size_t length, std::size_t offset) override {
53 return 0; 53 return 0;
54 } 54 }
55 55
56 boost::optional<u8> ReadByte(size_t offset) const override { 56 boost::optional<u8> ReadByte(std::size_t offset) const override {
57 if (offset < size) 57 if (offset < size)
58 return value; 58 return value;
59 return boost::none; 59 return boost::none;
60 } 60 }
61 61
62 std::vector<u8> ReadBytes(size_t length, size_t offset) const override { 62 std::vector<u8> ReadBytes(std::size_t length, std::size_t offset) const override {
63 const auto read = std::min(length, size - offset); 63 const auto read = std::min(length, size - offset);
64 return std::vector<u8>(read, value); 64 return std::vector<u8>(read, value);
65 } 65 }
@@ -71,7 +71,7 @@ public:
71 71
72private: 72private:
73 u8 value; 73 u8 value;
74 size_t size; 74 std::size_t size;
75 std::string name; 75 std::string name;
76 VirtualDir parent; 76 VirtualDir parent;
77}; 77};
diff --git a/src/core/file_sys/vfs_vector.cpp b/src/core/file_sys/vfs_vector.cpp
index 7033e2c88..23cff3fb9 100644
--- a/src/core/file_sys/vfs_vector.cpp
+++ b/src/core/file_sys/vfs_vector.cpp
@@ -38,13 +38,13 @@ bool VectorVfsFile::IsReadable() const {
38 return true; 38 return true;
39} 39}
40 40
41size_t VectorVfsFile::Read(u8* data_, size_t length, size_t offset) const { 41std::size_t VectorVfsFile::Read(u8* data_, std::size_t length, std::size_t offset) const {
42 const auto read = std::min(length, data.size() - offset); 42 const auto read = std::min(length, data.size() - offset);
43 std::memcpy(data_, data.data() + offset, read); 43 std::memcpy(data_, data.data() + offset, read);
44 return read; 44 return read;
45} 45}
46 46
47size_t VectorVfsFile::Write(const u8* data_, size_t length, size_t offset) { 47std::size_t VectorVfsFile::Write(const u8* data_, std::size_t length, std::size_t offset) {
48 if (offset + length > data.size()) 48 if (offset + length > data.size())
49 data.resize(offset + length); 49 data.resize(offset + length);
50 const auto write = std::min(length, data.size() - offset); 50 const auto write = std::min(length, data.size() - offset);
diff --git a/src/core/file_sys/vfs_vector.h b/src/core/file_sys/vfs_vector.h
index 115c3ae95..48a414c98 100644
--- a/src/core/file_sys/vfs_vector.h
+++ b/src/core/file_sys/vfs_vector.h
@@ -16,13 +16,13 @@ public:
16 ~VectorVfsFile() override; 16 ~VectorVfsFile() override;
17 17
18 std::string GetName() const override; 18 std::string GetName() const override;
19 size_t GetSize() const override; 19 std::size_t GetSize() const override;
20 bool Resize(size_t new_size) override; 20 bool Resize(std::size_t new_size) override;
21 std::shared_ptr<VfsDirectory> GetContainingDirectory() const override; 21 std::shared_ptr<VfsDirectory> GetContainingDirectory() const override;
22 bool IsWritable() const override; 22 bool IsWritable() const override;
23 bool IsReadable() const override; 23 bool IsReadable() const override;
24 size_t Read(u8* data, size_t length, size_t offset) const override; 24 std::size_t Read(u8* data, std::size_t length, std::size_t offset) const override;
25 size_t Write(const u8* data, size_t length, size_t offset) override; 25 std::size_t Write(const u8* data, std::size_t length, std::size_t offset) override;
26 bool Rename(std::string_view name) override; 26 bool Rename(std::string_view name) override;
27 27
28 virtual void Assign(std::vector<u8> new_data); 28 virtual void Assign(std::vector<u8> new_data);