summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2015-07-14 01:43:34 +0200
committerYuri Kunde Schlesner <yuriks@yuriks.net>2015-07-14 02:10:12 +0200
commita1f08788d9626434c6f743b1cf2a9a4e59dbc741 (patch)
tree275321ce3675c38581e51a431cea63f67b7912cc /src
parentLoader: Remove unnecessary pointer indirection to IOFile (diff)
downloadyuzu-a1f08788d9626434c6f743b1cf2a9a4e59dbc741.tar
yuzu-a1f08788d9626434c6f743b1cf2a9a4e59dbc741.tar.gz
yuzu-a1f08788d9626434c6f743b1cf2a9a4e59dbc741.tar.bz2
yuzu-a1f08788d9626434c6f743b1cf2a9a4e59dbc741.tar.lz
yuzu-a1f08788d9626434c6f743b1cf2a9a4e59dbc741.tar.xz
yuzu-a1f08788d9626434c6f743b1cf2a9a4e59dbc741.tar.zst
yuzu-a1f08788d9626434c6f743b1cf2a9a4e59dbc741.zip
Diffstat (limited to 'src')
-rw-r--r--src/core/file_sys/disk_archive.cpp8
-rw-r--r--src/core/file_sys/disk_archive.h8
-rw-r--r--src/core/file_sys/file_backend.h8
-rw-r--r--src/core/file_sys/ivfc_archive.cpp10
-rw-r--r--src/core/file_sys/ivfc_archive.h8
-rw-r--r--src/core/hle/service/fs/archive.cpp2
6 files changed, 22 insertions, 22 deletions
diff --git a/src/core/file_sys/disk_archive.cpp b/src/core/file_sys/disk_archive.cpp
index 85151a311..1096fd34d 100644
--- a/src/core/file_sys/disk_archive.cpp
+++ b/src/core/file_sys/disk_archive.cpp
@@ -105,12 +105,12 @@ bool DiskFile::Open() {
return true;
}
-size_t DiskFile::Read(const u64 offset, const u32 length, u8* buffer) const {
+size_t DiskFile::Read(const u64 offset, const size_t length, u8* buffer) const {
file->Seek(offset, SEEK_SET);
return file->ReadBytes(buffer, length);
}
-size_t DiskFile::Write(const u64 offset, const u32 length, const u32 flush, const u8* buffer) const {
+size_t DiskFile::Write(const u64 offset, const size_t length, const bool flush, const u8* buffer) const {
file->Seek(offset, SEEK_SET);
size_t written = file->WriteBytes(buffer, length);
if (flush)
@@ -118,8 +118,8 @@ size_t DiskFile::Write(const u64 offset, const u32 length, const u32 flush, cons
return written;
}
-size_t DiskFile::GetSize() const {
- return static_cast<size_t>(file->GetSize());
+u64 DiskFile::GetSize() const {
+ return file->GetSize();
}
bool DiskFile::SetSize(const u64 size) const {
diff --git a/src/core/file_sys/disk_archive.h b/src/core/file_sys/disk_archive.h
index 5cfcddf6c..c5da07508 100644
--- a/src/core/file_sys/disk_archive.h
+++ b/src/core/file_sys/disk_archive.h
@@ -55,10 +55,10 @@ public:
DiskFile(const DiskArchive& archive, const Path& path, const Mode mode);
bool Open() override;
- size_t Read(const u64 offset, const u32 length, u8* buffer) const override;
- size_t Write(const u64 offset, const u32 length, const u32 flush, const u8* buffer) const override;
- size_t GetSize() const override;
- bool SetSize(const u64 size) const override;
+ size_t Read(u64 offset, size_t length, u8* buffer) const override;
+ size_t Write(u64 offset, size_t length, bool flush, const u8* buffer) const override;
+ u64 GetSize() const override;
+ bool SetSize(u64 size) const override;
bool Close() const override;
void Flush() const override {
diff --git a/src/core/file_sys/file_backend.h b/src/core/file_sys/file_backend.h
index f5f72c722..df7165df3 100644
--- a/src/core/file_sys/file_backend.h
+++ b/src/core/file_sys/file_backend.h
@@ -31,7 +31,7 @@ public:
* @param buffer Buffer to read data into
* @return Number of bytes read
*/
- virtual size_t Read(const u64 offset, const u32 length, u8* buffer) const = 0;
+ virtual size_t Read(u64 offset, size_t length, u8* buffer) const = 0;
/**
* Write data to the file
@@ -41,20 +41,20 @@ public:
* @param buffer Buffer to read data from
* @return Number of bytes written
*/
- virtual size_t Write(const u64 offset, const u32 length, const u32 flush, const u8* buffer) const = 0;
+ virtual size_t Write(u64 offset, size_t length, bool flush, const u8* buffer) const = 0;
/**
* Get the size of the file in bytes
* @return Size of the file in bytes
*/
- virtual size_t GetSize() const = 0;
+ virtual u64 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;
+ virtual bool SetSize(u64 size) const = 0;
/**
* Close the file
diff --git a/src/core/file_sys/ivfc_archive.cpp b/src/core/file_sys/ivfc_archive.cpp
index 2b88b1d5d..e16aa1491 100644
--- a/src/core/file_sys/ivfc_archive.cpp
+++ b/src/core/file_sys/ivfc_archive.cpp
@@ -61,21 +61,21 @@ std::unique_ptr<DirectoryBackend> IVFCArchive::OpenDirectory(const Path& path) c
////////////////////////////////////////////////////////////////////////////////////////////////////
-size_t IVFCFile::Read(const u64 offset, const u32 length, u8* buffer) const {
+size_t IVFCFile::Read(const u64 offset, const size_t length, u8* buffer) const {
LOG_TRACE(Service_FS, "called offset=%llu, length=%d", offset, length);
romfs_file->Seek(data_offset + offset, SEEK_SET);
- u32 read_length = (u32)std::min((u64)length, data_size - offset);
+ size_t read_length = (size_t)std::min((u64)length, data_size - offset);
return romfs_file->ReadBytes(buffer, read_length);
}
-size_t IVFCFile::Write(const u64 offset, const u32 length, const u32 flush, const u8* buffer) const {
+size_t IVFCFile::Write(const u64 offset, const size_t length, const bool flush, const u8* buffer) const {
LOG_ERROR(Service_FS, "Attempted to write to IVFC file");
return 0;
}
-size_t IVFCFile::GetSize() const {
- return data_size; // TODO: return value will overflow on 32-bit machines
+u64 IVFCFile::GetSize() const {
+ return data_size;
}
bool IVFCFile::SetSize(const u64 size) const {
diff --git a/src/core/file_sys/ivfc_archive.h b/src/core/file_sys/ivfc_archive.h
index c25666223..c15a6c4ae 100644
--- a/src/core/file_sys/ivfc_archive.h
+++ b/src/core/file_sys/ivfc_archive.h
@@ -55,10 +55,10 @@ public:
: romfs_file(file), data_offset(offset), data_size(size) {}
bool Open() override { return true; }
- size_t Read(const u64 offset, const u32 length, u8* buffer) const override;
- size_t Write(const u64 offset, const u32 length, const u32 flush, const u8* buffer) const override;
- size_t GetSize() const override;
- bool SetSize(const u64 size) const override;
+ size_t Read(u64 offset, size_t length, u8* buffer) const override;
+ size_t Write(u64 offset, size_t length, bool flush, const u8* buffer) const override;
+ u64 GetSize() const override;
+ bool SetSize(u64 size) const override;
bool Close() const override { return false; }
void Flush() const override { }
diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp
index ba272f05f..6c0df67c3 100644
--- a/src/core/hle/service/fs/archive.cpp
+++ b/src/core/hle/service/fs/archive.cpp
@@ -116,7 +116,7 @@ ResultVal<bool> File::SyncRequest() {
u32 address = cmd_buff[6];
LOG_TRACE(Service_FS, "Write %s %s: offset=0x%llx length=%d address=0x%x, flush=0x%x",
GetTypeName().c_str(), GetName().c_str(), offset, length, address, flush);
- cmd_buff[2] = static_cast<u32>(backend->Write(offset, length, flush, Memory::GetPointer(address)));
+ cmd_buff[2] = static_cast<u32>(backend->Write(offset, length, flush != 0, Memory::GetPointer(address)));
break;
}