From b8f485df734984d6dd5c3063632d42bd8d8c5cd9 Mon Sep 17 00:00:00 2001 From: Marek Ledworowski Date: Mon, 3 Nov 2025 18:39:14 +0100 Subject: [PATCH] Cleaned up devices (read/write inherited from inode, only pwrite implemented) --- src/core/file_sys/devices/null_device.cpp | 8 -------- src/core/file_sys/devices/null_device.h | 6 ------ src/core/file_sys/devices/random_device.cpp | 12 ++---------- src/core/file_sys/devices/random_device.h | 6 ------ src/core/file_sys/devices/srandom_device.cpp | 6 +++++- src/core/file_sys/devices/srandom_device.h | 10 ++-------- src/core/file_sys/devices/zero_device.cpp | 12 ++---------- src/core/file_sys/devices/zero_device.h | 6 ------ 8 files changed, 11 insertions(+), 55 deletions(-) diff --git a/src/core/file_sys/devices/null_device.cpp b/src/core/file_sys/devices/null_device.cpp index 4ecf9f372..3d161d12c 100644 --- a/src/core/file_sys/devices/null_device.cpp +++ b/src/core/file_sys/devices/null_device.cpp @@ -10,14 +10,6 @@ namespace Core::Devices { NullDevice::NullDevice() = default; NullDevice::~NullDevice() = default; -s64 NullDevice::read(void* buf, u64 count) { - return 0; -} - -s64 NullDevice::write(const void* buf, u64 count) { - return count; -} - s64 NullDevice::pread(void* buf, size_t count, u64 offset) { return 0; } diff --git a/src/core/file_sys/devices/null_device.h b/src/core/file_sys/devices/null_device.h index c3d4da129..af210b68a 100644 --- a/src/core/file_sys/devices/null_device.h +++ b/src/core/file_sys/devices/null_device.h @@ -23,17 +23,11 @@ public: NullDevice(); ~NullDevice(); - s64 read(void* buf, u64 count) override; - s64 write(const void* buf, u64 count) override; s64 pread(void* buf, size_t count, u64 offset) override; s64 pwrite(const void* buf, size_t count, u64 offset) override; // clang-format off s32 ioctl(u64 cmd, Common::VaCtx* args) override { DEVICE_STUB(); } - s64 readv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { DEVICE_STUB(); } - s64 writev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { DEVICE_STUB(); } - s64 preadv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, u64 offset) override { DEVICE_STUB(); } - s64 pwritev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, u64 offset) override { DEVICE_STUB(); } s64 lseek(s64 offset, int whence) override { DEVICE_STUB(); } s32 fstat(Libraries::Kernel::OrbisKernelStat* sb) override { DEVICE_STUB(); } s32 fsync() override { DEVICE_STUB(); } diff --git a/src/core/file_sys/devices/random_device.cpp b/src/core/file_sys/devices/random_device.cpp index d583c1ab3..a20e0c5c3 100644 --- a/src/core/file_sys/devices/random_device.cpp +++ b/src/core/file_sys/devices/random_device.cpp @@ -14,7 +14,7 @@ RandomDevice::RandomDevice() { RandomDevice::~RandomDevice() = default; -s64 RandomDevice::read(void* buf, u64 count) { +s64 RandomDevice::pread(void* buf, u64 count, u64 offset) { auto rbuf = static_cast(buf); for (size_t i = 0; i < count; i++) { rbuf[i] = std::rand() & 0xFF; @@ -22,16 +22,8 @@ s64 RandomDevice::read(void* buf, u64 count) { return count; } -s64 RandomDevice::write(const void* buf, u64 count) { +s64 RandomDevice::pwrite(const void* buf, u64 count, u64 offset) { return count; } -s64 RandomDevice::pread(void* buf, u64 count, u64 offset) { - return read(buf, count); -} - -s64 RandomDevice::pwrite(const void* buf, u64 count, u64 offset) { - return write(buf, count); -} - } // namespace Core::Devices \ No newline at end of file diff --git a/src/core/file_sys/devices/random_device.h b/src/core/file_sys/devices/random_device.h index 18449f3f4..1f8c62f12 100644 --- a/src/core/file_sys/devices/random_device.h +++ b/src/core/file_sys/devices/random_device.h @@ -22,17 +22,11 @@ public: RandomDevice(); ~RandomDevice(); - s64 read(void* buf, u64 count) override; - s64 write(const void* buf, u64 count) override; s64 pread(void* buf, size_t count, u64 offset) override; s64 pwrite(const void* buf, size_t count, u64 offset) override; // clang-format off s32 ioctl(u64 cmd, Common::VaCtx* args) override { DEVICE_STUB(); } - s64 readv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { DEVICE_STUB(); } - s64 writev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { DEVICE_STUB(); } - s64 preadv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, u64 offset) override { DEVICE_STUB(); } - s64 pwritev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, u64 offset) override { DEVICE_STUB(); } s64 lseek(s64 offset, int whence) override { DEVICE_STUB(); } s32 fstat(Libraries::Kernel::OrbisKernelStat* sb) override { DEVICE_STUB(); } s32 fsync() override { DEVICE_STUB(); } diff --git a/src/core/file_sys/devices/srandom_device.cpp b/src/core/file_sys/devices/srandom_device.cpp index 9d0059018..78ea49b9f 100644 --- a/src/core/file_sys/devices/srandom_device.cpp +++ b/src/core/file_sys/devices/srandom_device.cpp @@ -14,7 +14,7 @@ SRandomDevice::SRandomDevice() { SRandomDevice::~SRandomDevice() = default; -s64 SRandomDevice::read(void* buf, u64 count) { +s64 SRandomDevice::pread(void* buf, size_t count, u64 offset) { auto rbuf = static_cast(buf); for (size_t i = 0; i < count; i++) { rbuf[i] = std::rand(); @@ -22,4 +22,8 @@ s64 SRandomDevice::read(void* buf, u64 count) { return count; } +s64 SRandomDevice::pwrite(const void* buf, size_t count, u64 offset) { + return count; +} + } // namespace Core::Devices \ No newline at end of file diff --git a/src/core/file_sys/devices/srandom_device.h b/src/core/file_sys/devices/srandom_device.h index 08130575e..56de90d24 100644 --- a/src/core/file_sys/devices/srandom_device.h +++ b/src/core/file_sys/devices/srandom_device.h @@ -23,17 +23,11 @@ public: SRandomDevice(); ~SRandomDevice(); - s64 read(void* buf, u64 count) override; + s64 pread(void* buf, size_t count, u64 offset) override; + //s64 pwrite(const void* buf, size_t count, u64 offset) override; // clang-format off - s64 write(const void* buf, u64 count) override { DEVICE_STUB(); } s32 ioctl(u64 cmd, Common::VaCtx* args) override { DEVICE_STUB(); } - s64 pread(void* buf, size_t count, u64 offset) override { DEVICE_STUB(); } - s64 pwrite(const void* buf, size_t count, u64 offset) override { DEVICE_STUB(); } - s64 readv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { DEVICE_STUB(); } - s64 writev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { DEVICE_STUB(); } - s64 preadv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, u64 offset) override { DEVICE_STUB(); } - s64 pwritev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, u64 offset) override { DEVICE_STUB(); } s64 lseek(s64 offset, int whence) override { DEVICE_STUB(); } s32 fstat(Libraries::Kernel::OrbisKernelStat* sb) override { DEVICE_STUB(); } s32 fsync() override { DEVICE_STUB(); } diff --git a/src/core/file_sys/devices/zero_device.cpp b/src/core/file_sys/devices/zero_device.cpp index 439ea879b..630300572 100644 --- a/src/core/file_sys/devices/zero_device.cpp +++ b/src/core/file_sys/devices/zero_device.cpp @@ -10,21 +10,13 @@ namespace Core::Devices { ZeroDevice::ZeroDevice() = default; ZeroDevice::~ZeroDevice() = default; -s64 ZeroDevice::read(void* buf, u64 count) { +s64 ZeroDevice::pread(void* buf, size_t count, u64 offset) { memset(buf, 0, count); return count; } -s64 ZeroDevice::write(const void* buf, u64 count) { +s64 ZeroDevice::pwrite(const void* buf, size_t count, u64 offset) { return count; } -s64 ZeroDevice::pread(void* buf, size_t count, u64 offset) { - return read(buf, count); -} - -s64 ZeroDevice::pwrite(const void* buf, size_t count, u64 offset) { - return write(buf, count); -} - } // namespace Core::Devices \ No newline at end of file diff --git a/src/core/file_sys/devices/zero_device.h b/src/core/file_sys/devices/zero_device.h index 50e58c180..cd3904ede 100644 --- a/src/core/file_sys/devices/zero_device.h +++ b/src/core/file_sys/devices/zero_device.h @@ -21,17 +21,11 @@ public: ZeroDevice(); ~ZeroDevice(); - s64 read(void* buf, u64 count) override; - s64 write(const void* buf, u64 count) override; s64 pread(void* buf, size_t count, u64 offset) override; s64 pwrite(const void* buf, size_t count, u64 offset) override; // clang-format off s32 ioctl(u64 cmd, Common::VaCtx* args) override { DEVICE_STUB(); } - s64 readv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { DEVICE_STUB(); } - s64 writev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { DEVICE_STUB(); } - s64 preadv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, u64 offset) override { DEVICE_STUB(); } - s64 pwritev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, u64 offset) override { DEVICE_STUB(); } s64 lseek(s64 offset, int whence) override { DEVICE_STUB(); } s32 fstat(Libraries::Kernel::OrbisKernelStat* sb) override { DEVICE_STUB(); } s32 fsync() override { DEVICE_STUB(); }