Cleaned up devices (only read/write implemented, p and vectors are handled by inode and Device class)

Removed read/write from VirtualFile (no use since reading via fptr requires handle)
Note to self regarding stat()
This commit is contained in:
marecl 2025-11-05 15:05:56 +01:00
parent 6b338d860a
commit 7b9cc2d481
11 changed files with 11 additions and 61 deletions

View File

@ -26,12 +26,6 @@ public:
s64 read(void* buf, u64 count) override { DEVICE_STUB(); };
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, s64 offset) override { DEVICE_STUB(); };
s64 pwrite(const void* buf, size_t count, s64 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, s64 offset) override { DEVICE_STUB(); };
s64 pwritev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, s64 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

@ -26,12 +26,6 @@ public:
s64 read(void* buf, u64 count) override { DEVICE_STUB(); };
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, s64 offset) override { DEVICE_STUB(); };
s64 pwrite(const void* buf, size_t count, s64 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, s64 offset) override { DEVICE_STUB(); };
s64 pwritev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, s64 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

@ -16,20 +16,6 @@ s64 Logger::write(const void* buf, u64 nbytes) {
return nbytes;
}
s64 Logger::pwrite(const void* buf, u64 nbytes, s64 offset) {
log(static_cast<const char*>(buf), nbytes);
return nbytes;
}
s64 Logger::writev(const Libraries::Kernel::OrbisKernelIovec* iov, s32 iovcnt) {
size_t total_written = 0;
for (int i = 0; i < iovcnt; i++) {
log(static_cast<const char*>(iov[i].iov_base), iov[i].iov_len);
total_written += iov[i].iov_len;
}
return total_written;
}
s32 Logger::fsync() {
log_flush();
return 0;

View File

@ -31,11 +31,17 @@ public:
~Logger();
s64 write(const void* buf, u64 nbytes) override;
s64 writev(const Libraries::Kernel::OrbisKernelIovec* iov, s32 iovcnt) override;
s64 pwrite(const void* buf, u64 nbytes, s64 offset) override;
s32 fsync() override;
// clang-format off
s64 read(void* buf, u64 count) override { DEVICE_STUB(); };
s32 ioctl(u64 cmd, Common::VaCtx* args) override { DEVICE_STUB(); }
s64 lseek(s64 offset, int whence) override { DEVICE_STUB(); }
s32 fstat(Libraries::Kernel::OrbisKernelStat* sb) override { DEVICE_STUB(); }
s32 ftruncate(s64 length) override { DEVICE_STUB(); }
s64 getdents(void* buf, u32 nbytes, s64* basep) override { DEVICE_STUB(); }
// clang-format on
private:
void log(const char* buf, u64 nbytes);
void log_flush();

View File

@ -19,12 +19,6 @@ public:
s64 read(void* buf, u64 count) override { return 0; };
s64 write(const void* buf, u64 count) override { return 0; };
s32 ioctl(u64 cmd, Common::VaCtx* args) override { return 0; };
s64 pread(void* buf, size_t count, s64 offset) override { return 0; };
s64 pwrite(const void* buf, size_t count, s64 offset) override { return 0; };
s64 readv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { return 0; };
s64 writev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt) override { return 0; };
s64 preadv(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, s64 offset) override { return 0; };
s64 pwritev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, s64 offset) override { return 0; };
s64 lseek(s64 offset, int whence) override { return 0; };
s32 fstat(Libraries::Kernel::OrbisKernelStat* sb) override { return 0; };
s32 fsync() override { return 0; };

View File

@ -26,12 +26,6 @@ public:
// clang-format off
s64 read(void* buf, u64 count) override { DEVICE_STUB(); }
s64 write(const void* buf, u64 count) override { DEVICE_STUB(); }
s64 pread(void* buf, size_t count, s64 offset) override { DEVICE_STUB(); }
s64 pwrite(const void* buf, size_t count, s64 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, s64 offset) override { DEVICE_STUB(); }
s64 pwritev(const Libraries::Kernel::OrbisKernelIovec* iov, int iovcnt, s64 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

@ -25,8 +25,6 @@ public:
UNREACHABLE();
}
s64 read(void* buf, size_t count) override;
s64 write(const void* buf, size_t count) override;
s64 pread(void* buf, size_t count, s64 offset) override;
s64 pwrite(const void* buf, size_t count, s64 offset) override;

View File

@ -19,8 +19,6 @@ public:
//
// Working functions
//
s64 read(void* buf, size_t count) override;
s64 write(const void* buf, size_t count) override;
s64 pread(void* buf, size_t count, s64 offset) override;
s64 pwrite(const void* buf, size_t count, s64 offset) override;
s32 ftruncate(s64 length) override;

View File

@ -414,6 +414,8 @@ void QFS::SyncHostImpl(partition_ptr part) {
continue;
}
// this should populate **everything** immediately
// this is a note to self TODO:
if (0 != this->hio_driver.Stat(entry_path, &new_inode->st)) {
LOG_ERROR(Kernel_Fs, "Cannot stat file: {}", entry_path.string());
continue;

View File

@ -7,14 +7,6 @@
namespace QuasiFS {
s64 QuasiFile::read(void* buf, size_t count) {
return pread(buf, count, 0);
}
s64 QuasiFile::write(const void* buf, size_t count) {
return pwrite(buf, count, 0);
}
s64 QuasiFile::pread(void* buf, size_t count, s64 offset) {
auto size = &this->st.st_size;
auto end_pos = offset + count;

View File

@ -7,14 +7,6 @@
namespace QuasiFS {
s64 VirtualFile::read(void* buf, size_t count) {
return pread(buf, count, 0);
}
s64 VirtualFile::write(const void* buf, size_t count) {
return pwrite(buf, count, 0);
}
s64 VirtualFile::pread(void* buf, size_t count, s64 offset) {
s64 idx;
s64 read_amt = this->data.size() - offset - count;