Cleaned up devices (read/write inherited from inode, only pwrite implemented)

This commit is contained in:
Marek Ledworowski 2025-11-03 18:39:14 +01:00
parent d338ac747b
commit b8f485df73
8 changed files with 11 additions and 55 deletions

View File

@ -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;
}

View File

@ -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(); }

View File

@ -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<char*>(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

View File

@ -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(); }

View File

@ -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<char*>(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

View File

@ -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(); }

View File

@ -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

View File

@ -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(); }