From b05b4d4b249e7f0025ddf27544c1972e32af80c8 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Boric Date: Wed, 17 Mar 2021 13:18:51 +0100 Subject: [PATCH] Kernel: Refactor storage stack with u64 as file operations offset --- Kernel/Console.cpp | 4 ++-- Kernel/Console.h | 4 ++-- Kernel/Devices/BXVGADevice.h | 4 ++-- Kernel/Devices/FullDevice.cpp | 4 ++-- Kernel/Devices/FullDevice.h | 4 ++-- Kernel/Devices/KeyboardDevice.cpp | 4 ++-- Kernel/Devices/KeyboardDevice.h | 4 ++-- Kernel/Devices/MBVGADevice.h | 4 ++-- Kernel/Devices/MemoryDevice.cpp | 2 +- Kernel/Devices/MemoryDevice.h | 4 ++-- Kernel/Devices/NullDevice.cpp | 4 ++-- Kernel/Devices/NullDevice.h | 4 ++-- Kernel/Devices/PS2MouseDevice.cpp | 4 ++-- Kernel/Devices/PS2MouseDevice.h | 4 ++-- Kernel/Devices/RandomDevice.cpp | 4 ++-- Kernel/Devices/RandomDevice.h | 4 ++-- Kernel/Devices/SB16.cpp | 4 ++-- Kernel/Devices/SB16.h | 4 ++-- Kernel/Devices/SerialDevice.cpp | 4 ++-- Kernel/Devices/SerialDevice.h | 4 ++-- Kernel/Devices/ZeroDevice.cpp | 4 ++-- Kernel/Devices/ZeroDevice.h | 4 ++-- Kernel/FileSystem/AnonymousFile.h | 4 ++-- Kernel/FileSystem/FIFO.cpp | 4 ++-- Kernel/FileSystem/FIFO.h | 4 ++-- Kernel/FileSystem/File.h | 4 ++-- Kernel/FileSystem/InodeFile.cpp | 4 ++-- Kernel/FileSystem/InodeFile.h | 4 ++-- Kernel/FileSystem/InodeWatcher.cpp | 4 ++-- Kernel/FileSystem/InodeWatcher.h | 4 ++-- Kernel/Net/Socket.cpp | 4 ++-- Kernel/Net/Socket.h | 4 ++-- Kernel/Storage/Partition/DiskPartition.cpp | 4 ++-- Kernel/Storage/Partition/DiskPartition.h | 4 ++-- Kernel/Storage/StorageDevice.cpp | 4 ++-- Kernel/Storage/StorageDevice.h | 4 ++-- Kernel/TTY/MasterPTY.cpp | 4 ++-- Kernel/TTY/MasterPTY.h | 4 ++-- Kernel/TTY/PTYMultiplexer.h | 4 ++-- Kernel/TTY/SlavePTY.cpp | 2 +- Kernel/TTY/SlavePTY.h | 2 +- Kernel/TTY/TTY.cpp | 4 ++-- Kernel/TTY/TTY.h | 4 ++-- 43 files changed, 83 insertions(+), 83 deletions(-) diff --git a/Kernel/Console.cpp b/Kernel/Console.cpp index 21c6ac78c42..b17ca51dcd3 100644 --- a/Kernel/Console.cpp +++ b/Kernel/Console.cpp @@ -65,14 +65,14 @@ bool Console::can_read(const Kernel::FileDescription&, size_t) const return false; } -Kernel::KResultOr Console::read(Kernel::FileDescription&, size_t, Kernel::UserOrKernelBuffer&, size_t) +Kernel::KResultOr Console::read(FileDescription&, u64, Kernel::UserOrKernelBuffer&, size_t) { // FIXME: Implement reading from the console. // Maybe we could use a ring buffer for this device? return 0; } -Kernel::KResultOr Console::write(Kernel::FileDescription&, size_t, const Kernel::UserOrKernelBuffer& data, size_t size) +Kernel::KResultOr Console::write(FileDescription&, u64, const Kernel::UserOrKernelBuffer& data, size_t size) { if (!size) return 0; diff --git a/Kernel/Console.h b/Kernel/Console.h index 7c15631e925..ca97ebcb2b9 100644 --- a/Kernel/Console.h +++ b/Kernel/Console.h @@ -43,8 +43,8 @@ public: // ^CharacterDevice virtual bool can_read(const Kernel::FileDescription&, size_t) const override; virtual bool can_write(const Kernel::FileDescription&, size_t) const override { return true; } - virtual Kernel::KResultOr read(Kernel::FileDescription&, size_t, Kernel::UserOrKernelBuffer&, size_t) override; - virtual Kernel::KResultOr write(Kernel::FileDescription&, size_t, const Kernel::UserOrKernelBuffer&, size_t) override; + virtual Kernel::KResultOr read(FileDescription&, u64, Kernel::UserOrKernelBuffer&, size_t) override; + virtual Kernel::KResultOr write(FileDescription&, u64, const Kernel::UserOrKernelBuffer&, size_t) override; virtual const char* class_name() const override { return "Console"; } void put_char(char); diff --git a/Kernel/Devices/BXVGADevice.h b/Kernel/Devices/BXVGADevice.h index 236aad8fa83..ed780ad6a0f 100644 --- a/Kernel/Devices/BXVGADevice.h +++ b/Kernel/Devices/BXVGADevice.h @@ -53,8 +53,8 @@ private: virtual bool can_read(const FileDescription&, size_t) const override { return true; } virtual bool can_write(const FileDescription&, size_t) const override { return true; } virtual void start_request(AsyncBlockDeviceRequest& request) override { request.complete(AsyncDeviceRequest::Failure); } - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override { return -EINVAL; } - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override { return -EINVAL; } + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override { return -EINVAL; } + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return -EINVAL; } void set_safe_resolution(); diff --git a/Kernel/Devices/FullDevice.cpp b/Kernel/Devices/FullDevice.cpp index f68524f5b9a..0dfbf416e68 100644 --- a/Kernel/Devices/FullDevice.cpp +++ b/Kernel/Devices/FullDevice.cpp @@ -46,7 +46,7 @@ bool FullDevice::can_read(const FileDescription&, size_t) const return true; } -KResultOr FullDevice::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr FullDevice::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { ssize_t count = min(static_cast(PAGE_SIZE), size); if (!buffer.memset(0, count)) @@ -54,7 +54,7 @@ KResultOr FullDevice::read(FileDescription&, size_t, UserOrKernelBuffer& return count; } -KResultOr FullDevice::write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t size) +KResultOr FullDevice::write(FileDescription&, u64, const UserOrKernelBuffer&, size_t size) { if (size == 0) return 0; diff --git a/Kernel/Devices/FullDevice.h b/Kernel/Devices/FullDevice.h index 98b8e29c016..807bc217397 100644 --- a/Kernel/Devices/FullDevice.h +++ b/Kernel/Devices/FullDevice.h @@ -42,8 +42,8 @@ public: private: // ^CharacterDevice - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_read(const FileDescription&, size_t) const override; virtual bool can_write(const FileDescription&, size_t) const override { return true; } virtual const char* class_name() const override { return "FullDevice"; } diff --git a/Kernel/Devices/KeyboardDevice.cpp b/Kernel/Devices/KeyboardDevice.cpp index a091d3a9aad..386d4d1f09a 100644 --- a/Kernel/Devices/KeyboardDevice.cpp +++ b/Kernel/Devices/KeyboardDevice.cpp @@ -430,7 +430,7 @@ bool KeyboardDevice::can_read(const FileDescription&, size_t) const return !m_queue.is_empty(); } -KResultOr KeyboardDevice::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr KeyboardDevice::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { size_t nread = 0; ScopedSpinLock lock(m_queue_lock); @@ -458,7 +458,7 @@ KResultOr KeyboardDevice::read(FileDescription&, size_t, UserOrKernelBuf return nread; } -KResultOr KeyboardDevice::write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) +KResultOr KeyboardDevice::write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) { return 0; } diff --git a/Kernel/Devices/KeyboardDevice.h b/Kernel/Devices/KeyboardDevice.h index 1770d40a305..00afb18136b 100644 --- a/Kernel/Devices/KeyboardDevice.h +++ b/Kernel/Devices/KeyboardDevice.h @@ -61,9 +61,9 @@ public: const String keymap_name() { return m_character_map.character_map_name(); } // ^CharacterDevice - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; virtual bool can_read(const FileDescription&, size_t) const override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_write(const FileDescription&, size_t) const override { return true; } virtual const char* purpose() const override { return class_name(); } diff --git a/Kernel/Devices/MBVGADevice.h b/Kernel/Devices/MBVGADevice.h index f07cc238fc0..dd06c7b7cbd 100644 --- a/Kernel/Devices/MBVGADevice.h +++ b/Kernel/Devices/MBVGADevice.h @@ -51,8 +51,8 @@ private: virtual const char* class_name() const override { return "MBVGA"; } virtual bool can_read(const FileDescription&, size_t) const override { return true; } virtual bool can_write(const FileDescription&, size_t) const override { return true; } - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override { return -EINVAL; } - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override { return -EINVAL; } + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override { return -EINVAL; } + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return -EINVAL; } virtual void start_request(AsyncBlockDeviceRequest& request) override { request.complete(AsyncDeviceRequest::Failure); } size_t framebuffer_size_in_bytes() const { return m_framebuffer_pitch * m_framebuffer_height; } diff --git a/Kernel/Devices/MemoryDevice.cpp b/Kernel/Devices/MemoryDevice.cpp index 3623669f0a1..f82b3d5d5f5 100644 --- a/Kernel/Devices/MemoryDevice.cpp +++ b/Kernel/Devices/MemoryDevice.cpp @@ -42,7 +42,7 @@ UNMAP_AFTER_INIT MemoryDevice::~MemoryDevice() { } -KResultOr MemoryDevice::read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) +KResultOr MemoryDevice::read(FileDescription&, u64, UserOrKernelBuffer&, size_t) { TODO(); } diff --git a/Kernel/Devices/MemoryDevice.h b/Kernel/Devices/MemoryDevice.h index cd14c864d68..37b1f1dfc40 100644 --- a/Kernel/Devices/MemoryDevice.h +++ b/Kernel/Devices/MemoryDevice.h @@ -50,8 +50,8 @@ private: virtual bool can_read(const FileDescription&, size_t) const override { return true; } virtual bool can_write(const FileDescription&, size_t) const override { return false; } virtual bool is_seekable() const { return true; } - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override { return -EINVAL; } + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return -EINVAL; } virtual void did_seek(FileDescription&, off_t) override; diff --git a/Kernel/Devices/NullDevice.cpp b/Kernel/Devices/NullDevice.cpp index 3d6ff44529e..ecdd21eb2fb 100644 --- a/Kernel/Devices/NullDevice.cpp +++ b/Kernel/Devices/NullDevice.cpp @@ -56,12 +56,12 @@ bool NullDevice::can_read(const FileDescription&, size_t) const return true; } -KResultOr NullDevice::read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) +KResultOr NullDevice::read(FileDescription&, u64, UserOrKernelBuffer&, size_t) { return 0; } -KResultOr NullDevice::write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t buffer_size) +KResultOr NullDevice::write(FileDescription&, u64, const UserOrKernelBuffer&, size_t buffer_size) { return min(static_cast(PAGE_SIZE), buffer_size); } diff --git a/Kernel/Devices/NullDevice.h b/Kernel/Devices/NullDevice.h index 36bf0035ba6..5761349dd8e 100644 --- a/Kernel/Devices/NullDevice.h +++ b/Kernel/Devices/NullDevice.h @@ -45,8 +45,8 @@ public: private: // ^CharacterDevice - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_write(const FileDescription&, size_t) const override { return true; } virtual bool can_read(const FileDescription&, size_t) const override; virtual const char* class_name() const override { return "NullDevice"; } diff --git a/Kernel/Devices/PS2MouseDevice.cpp b/Kernel/Devices/PS2MouseDevice.cpp index afb94395177..aadffead5cd 100644 --- a/Kernel/Devices/PS2MouseDevice.cpp +++ b/Kernel/Devices/PS2MouseDevice.cpp @@ -273,7 +273,7 @@ bool PS2MouseDevice::can_read(const FileDescription&, size_t) const return !m_queue.is_empty(); } -KResultOr PS2MouseDevice::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr PS2MouseDevice::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { VERIFY(size > 0); size_t nread = 0; @@ -300,7 +300,7 @@ KResultOr PS2MouseDevice::read(FileDescription&, size_t, UserOrKernelBuf return nread; } -KResultOr PS2MouseDevice::write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) +KResultOr PS2MouseDevice::write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) { return 0; } diff --git a/Kernel/Devices/PS2MouseDevice.h b/Kernel/Devices/PS2MouseDevice.h index 1eabfb89185..cc595eafc0d 100644 --- a/Kernel/Devices/PS2MouseDevice.h +++ b/Kernel/Devices/PS2MouseDevice.h @@ -48,8 +48,8 @@ public: // ^CharacterDevice virtual bool can_read(const FileDescription&, size_t) const override; - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_write(const FileDescription&, size_t) const override { return true; } virtual const char* purpose() const override { return class_name(); } diff --git a/Kernel/Devices/RandomDevice.cpp b/Kernel/Devices/RandomDevice.cpp index 69351535a7d..092a1a11e89 100644 --- a/Kernel/Devices/RandomDevice.cpp +++ b/Kernel/Devices/RandomDevice.cpp @@ -43,7 +43,7 @@ bool RandomDevice::can_read(const FileDescription&, size_t) const return true; } -KResultOr RandomDevice::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr RandomDevice::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { bool success = buffer.write_buffered<256>(size, [&](u8* data, size_t data_size) { get_good_random_bytes(data, data_size); @@ -54,7 +54,7 @@ KResultOr RandomDevice::read(FileDescription&, size_t, UserOrKernelBuffe return size; } -KResultOr RandomDevice::write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t size) +KResultOr RandomDevice::write(FileDescription&, u64, const UserOrKernelBuffer&, size_t size) { // FIXME: Use input for entropy? I guess that could be a neat feature? return min(static_cast(PAGE_SIZE), size); diff --git a/Kernel/Devices/RandomDevice.h b/Kernel/Devices/RandomDevice.h index 04ba907cf1c..1b7fe7bf160 100644 --- a/Kernel/Devices/RandomDevice.h +++ b/Kernel/Devices/RandomDevice.h @@ -42,8 +42,8 @@ public: private: // ^CharacterDevice - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_read(const FileDescription&, size_t) const override; virtual bool can_write(const FileDescription&, size_t) const override { return true; } virtual const char* class_name() const override { return "RandomDevice"; } diff --git a/Kernel/Devices/SB16.cpp b/Kernel/Devices/SB16.cpp index 64457c17e42..43749c96063 100644 --- a/Kernel/Devices/SB16.cpp +++ b/Kernel/Devices/SB16.cpp @@ -189,7 +189,7 @@ bool SB16::can_read(const FileDescription&, size_t) const return false; } -KResultOr SB16::read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) +KResultOr SB16::read(FileDescription&, u64, UserOrKernelBuffer&, size_t) { return 0; } @@ -243,7 +243,7 @@ void SB16::wait_for_irq() disable_irq(); } -KResultOr SB16::write(FileDescription&, size_t, const UserOrKernelBuffer& data, size_t length) +KResultOr SB16::write(FileDescription&, u64, const UserOrKernelBuffer& data, size_t length) { if (!m_dma_region) { auto page = MM.allocate_supervisor_physical_page(); diff --git a/Kernel/Devices/SB16.h b/Kernel/Devices/SB16.h index c30f5a77653..74023c328ee 100644 --- a/Kernel/Devices/SB16.h +++ b/Kernel/Devices/SB16.h @@ -48,8 +48,8 @@ public: // ^CharacterDevice virtual bool can_read(const FileDescription&, size_t) const override; - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_write(const FileDescription&, size_t) const override { return true; } virtual const char* purpose() const override { return class_name(); } diff --git a/Kernel/Devices/SerialDevice.cpp b/Kernel/Devices/SerialDevice.cpp index 4568e016b8e..e2f7afefa65 100644 --- a/Kernel/Devices/SerialDevice.cpp +++ b/Kernel/Devices/SerialDevice.cpp @@ -45,7 +45,7 @@ bool SerialDevice::can_read(const FileDescription&, size_t) const return (get_line_status() & DataReady) != 0; } -KResultOr SerialDevice::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr SerialDevice::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { if (!size) return 0; @@ -69,7 +69,7 @@ bool SerialDevice::can_write(const FileDescription&, size_t) const return (get_line_status() & EmptyTransmitterHoldingRegister) != 0; } -KResultOr SerialDevice::write(FileDescription&, size_t, const UserOrKernelBuffer& buffer, size_t size) +KResultOr SerialDevice::write(FileDescription&, u64, const UserOrKernelBuffer& buffer, size_t size) { if (!size) return 0; diff --git a/Kernel/Devices/SerialDevice.h b/Kernel/Devices/SerialDevice.h index d85e25b6a11..9816ccae88d 100644 --- a/Kernel/Devices/SerialDevice.h +++ b/Kernel/Devices/SerialDevice.h @@ -43,9 +43,9 @@ public: // ^CharacterDevice virtual bool can_read(const FileDescription&, size_t) const override; - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; virtual bool can_write(const FileDescription&, size_t) const override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; enum InterruptEnable { LowPowerMode = 0x01 << 5, diff --git a/Kernel/Devices/ZeroDevice.cpp b/Kernel/Devices/ZeroDevice.cpp index 299ecaac3af..dfc3df9e372 100644 --- a/Kernel/Devices/ZeroDevice.cpp +++ b/Kernel/Devices/ZeroDevice.cpp @@ -44,7 +44,7 @@ bool ZeroDevice::can_read(const FileDescription&, size_t) const return true; } -KResultOr ZeroDevice::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr ZeroDevice::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { ssize_t count = min(static_cast(PAGE_SIZE), size); if (!buffer.memset(0, count)) @@ -52,7 +52,7 @@ KResultOr ZeroDevice::read(FileDescription&, size_t, UserOrKernelBuffer& return count; } -KResultOr ZeroDevice::write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t size) +KResultOr ZeroDevice::write(FileDescription&, u64, const UserOrKernelBuffer&, size_t size) { return min(static_cast(PAGE_SIZE), size); } diff --git a/Kernel/Devices/ZeroDevice.h b/Kernel/Devices/ZeroDevice.h index 517955aafb6..f575f554063 100644 --- a/Kernel/Devices/ZeroDevice.h +++ b/Kernel/Devices/ZeroDevice.h @@ -42,8 +42,8 @@ public: private: // ^CharacterDevice - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_read(const FileDescription&, size_t) const override; virtual bool can_write(const FileDescription&, size_t) const override { return true; } virtual const char* class_name() const override { return "ZeroDevice"; } diff --git a/Kernel/FileSystem/AnonymousFile.h b/Kernel/FileSystem/AnonymousFile.h index 6e1dd99f40c..51455db60e0 100644 --- a/Kernel/FileSystem/AnonymousFile.h +++ b/Kernel/FileSystem/AnonymousFile.h @@ -46,8 +46,8 @@ private: virtual String absolute_path(const FileDescription&) const override { return ":anonymous-file:"; } virtual bool can_read(const FileDescription&, size_t) const override { return false; } virtual bool can_write(const FileDescription&, size_t) const override { return false; } - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override { return ENOTSUP; } - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override { return ENOTSUP; } + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override { return ENOTSUP; } + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return ENOTSUP; } explicit AnonymousFile(NonnullRefPtr); diff --git a/Kernel/FileSystem/FIFO.cpp b/Kernel/FileSystem/FIFO.cpp index 82c6abefba1..ab009fd8757 100644 --- a/Kernel/FileSystem/FIFO.cpp +++ b/Kernel/FileSystem/FIFO.cpp @@ -144,14 +144,14 @@ bool FIFO::can_write(const FileDescription&, size_t) const return m_buffer.space_for_writing() || !m_readers; } -KResultOr FIFO::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr FIFO::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { if (!m_writers && m_buffer.is_empty()) return 0; return m_buffer.read(buffer, size); } -KResultOr FIFO::write(FileDescription&, size_t, const UserOrKernelBuffer& buffer, size_t size) +KResultOr FIFO::write(FileDescription&, u64, const UserOrKernelBuffer& buffer, size_t size) { if (!m_readers) { Thread::current()->send_signal(SIGPIPE, Process::current()); diff --git a/Kernel/FileSystem/FIFO.h b/Kernel/FileSystem/FIFO.h index 7ac6012229e..82c8c326f19 100644 --- a/Kernel/FileSystem/FIFO.h +++ b/Kernel/FileSystem/FIFO.h @@ -57,8 +57,8 @@ public: private: // ^File - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; virtual KResult stat(::stat&) const override; virtual bool can_read(const FileDescription&, size_t) const override; virtual bool can_write(const FileDescription&, size_t) const override; diff --git a/Kernel/FileSystem/File.h b/Kernel/FileSystem/File.h index a43964f1919..38aac0a62c0 100644 --- a/Kernel/FileSystem/File.h +++ b/Kernel/FileSystem/File.h @@ -111,8 +111,8 @@ public: virtual KResult attach(FileDescription&) { return KSuccess; } virtual void detach(FileDescription&) { } virtual void did_seek(FileDescription&, off_t) { } - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) = 0; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) = 0; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) = 0; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) = 0; virtual int ioctl(FileDescription&, unsigned request, FlatPtr arg); virtual KResultOr mmap(Process&, FileDescription&, const Range&, size_t offset, int prot, bool shared); virtual KResult stat(::stat&) const { return EBADF; } diff --git a/Kernel/FileSystem/InodeFile.cpp b/Kernel/FileSystem/InodeFile.cpp index 0dd4fa87c20..4c13865f083 100644 --- a/Kernel/FileSystem/InodeFile.cpp +++ b/Kernel/FileSystem/InodeFile.cpp @@ -46,7 +46,7 @@ InodeFile::~InodeFile() { } -KResultOr InodeFile::read(FileDescription& description, size_t offset, UserOrKernelBuffer& buffer, size_t count) +KResultOr InodeFile::read(FileDescription& description, u64 offset, UserOrKernelBuffer& buffer, size_t count) { if (Checked::addition_would_overflow(offset, count)) return EOVERFLOW; @@ -61,7 +61,7 @@ KResultOr InodeFile::read(FileDescription& description, size_t offset, U return nread; } -KResultOr InodeFile::write(FileDescription& description, size_t offset, const UserOrKernelBuffer& data, size_t count) +KResultOr InodeFile::write(FileDescription& description, u64 offset, const UserOrKernelBuffer& data, size_t count) { if (Checked::addition_would_overflow(offset, count)) return EOVERFLOW; diff --git a/Kernel/FileSystem/InodeFile.h b/Kernel/FileSystem/InodeFile.h index ba3fc99ad6d..e00dfc8d67d 100644 --- a/Kernel/FileSystem/InodeFile.h +++ b/Kernel/FileSystem/InodeFile.h @@ -47,8 +47,8 @@ public: virtual bool can_read(const FileDescription&, size_t) const override { return true; } virtual bool can_write(const FileDescription&, size_t) const override { return true; } - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual int ioctl(FileDescription&, unsigned request, FlatPtr arg) override; virtual KResultOr mmap(Process&, FileDescription&, const Range&, size_t offset, int prot, bool shared) override; diff --git a/Kernel/FileSystem/InodeWatcher.cpp b/Kernel/FileSystem/InodeWatcher.cpp index 17de99259ae..7a6c0077807 100644 --- a/Kernel/FileSystem/InodeWatcher.cpp +++ b/Kernel/FileSystem/InodeWatcher.cpp @@ -57,7 +57,7 @@ bool InodeWatcher::can_write(const FileDescription&, size_t) const return true; } -KResultOr InodeWatcher::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t buffer_size) +KResultOr InodeWatcher::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t buffer_size) { LOCKER(m_lock); VERIFY(!m_queue.is_empty() || !m_inode); @@ -82,7 +82,7 @@ KResultOr InodeWatcher::read(FileDescription&, size_t, UserOrKernelBuffe return bytes_to_write; } -KResultOr InodeWatcher::write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) +KResultOr InodeWatcher::write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) { return EIO; } diff --git a/Kernel/FileSystem/InodeWatcher.h b/Kernel/FileSystem/InodeWatcher.h index ba5a9bef365..e5b85658d50 100644 --- a/Kernel/FileSystem/InodeWatcher.h +++ b/Kernel/FileSystem/InodeWatcher.h @@ -44,8 +44,8 @@ public: virtual bool can_read(const FileDescription&, size_t) const override; virtual bool can_write(const FileDescription&, size_t) const override; - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual String absolute_path(const FileDescription&) const override; virtual const char* class_name() const override { return "InodeWatcher"; }; diff --git a/Kernel/Net/Socket.cpp b/Kernel/Net/Socket.cpp index 24be0321195..ee0d1459293 100644 --- a/Kernel/Net/Socket.cpp +++ b/Kernel/Net/Socket.cpp @@ -243,7 +243,7 @@ KResult Socket::getsockopt(FileDescription&, int level, int option, Userspace Socket::read(FileDescription& description, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr Socket::read(FileDescription& description, u64, UserOrKernelBuffer& buffer, size_t size) { if (is_shut_down_for_reading()) return 0; @@ -251,7 +251,7 @@ KResultOr Socket::read(FileDescription& description, size_t, UserOrKerne return recvfrom(description, buffer, size, 0, {}, 0, t); } -KResultOr Socket::write(FileDescription& description, size_t, const UserOrKernelBuffer& data, size_t size) +KResultOr Socket::write(FileDescription& description, u64, const UserOrKernelBuffer& data, size_t size) { if (is_shut_down_for_writing()) return EPIPE; diff --git a/Kernel/Net/Socket.h b/Kernel/Net/Socket.h index c45f1a28657..ce0938c9f88 100644 --- a/Kernel/Net/Socket.h +++ b/Kernel/Net/Socket.h @@ -123,8 +123,8 @@ public: Lock& lock() { return m_lock; } // ^File - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override final; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override final; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override final; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override final; virtual KResult stat(::stat&) const override; virtual String absolute_path(const FileDescription&) const override = 0; diff --git a/Kernel/Storage/Partition/DiskPartition.cpp b/Kernel/Storage/Partition/DiskPartition.cpp index a7d49f9fdb8..bceb396a805 100644 --- a/Kernel/Storage/Partition/DiskPartition.cpp +++ b/Kernel/Storage/Partition/DiskPartition.cpp @@ -57,7 +57,7 @@ void DiskPartition::start_request(AsyncBlockDeviceRequest& request) request.block_index() + m_metadata.start_block(), request.block_count(), request.buffer(), request.buffer_size())); } -KResultOr DiskPartition::read(FileDescription& fd, size_t offset, UserOrKernelBuffer& outbuf, size_t len) +KResultOr DiskPartition::read(FileDescription& fd, u64 offset, UserOrKernelBuffer& outbuf, size_t len) { unsigned adjust = m_metadata.start_block() * block_size(); dbgln_if(OFFD_DEBUG, "DiskPartition::read offset={}, adjust={}, len={}", fd.offset(), adjust, len); @@ -71,7 +71,7 @@ bool DiskPartition::can_read(const FileDescription& fd, size_t offset) const return m_device->can_read(fd, offset + adjust); } -KResultOr DiskPartition::write(FileDescription& fd, size_t offset, const UserOrKernelBuffer& inbuf, size_t len) +KResultOr DiskPartition::write(FileDescription& fd, u64 offset, const UserOrKernelBuffer& inbuf, size_t len) { unsigned adjust = m_metadata.start_block() * block_size(); dbgln_if(OFFD_DEBUG, "DiskPartition::write offset={}, adjust={}, len={}", offset, adjust, len); diff --git a/Kernel/Storage/Partition/DiskPartition.h b/Kernel/Storage/Partition/DiskPartition.h index ebb59707f12..b830d13c4d3 100644 --- a/Kernel/Storage/Partition/DiskPartition.h +++ b/Kernel/Storage/Partition/DiskPartition.h @@ -40,9 +40,9 @@ public: virtual void start_request(AsyncBlockDeviceRequest&) override; // ^BlockDevice - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; virtual bool can_read(const FileDescription&, size_t) const override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_write(const FileDescription&, size_t) const override; // ^Device diff --git a/Kernel/Storage/StorageDevice.cpp b/Kernel/Storage/StorageDevice.cpp index b158fdfa9f5..7bac408f1a7 100644 --- a/Kernel/Storage/StorageDevice.cpp +++ b/Kernel/Storage/StorageDevice.cpp @@ -57,7 +57,7 @@ NonnullRefPtr StorageDevice::controller() const return m_storage_controller; } -KResultOr StorageDevice::read(FileDescription&, size_t offset, UserOrKernelBuffer& outbuf, size_t len) +KResultOr StorageDevice::read(FileDescription&, u64 offset, UserOrKernelBuffer& outbuf, size_t len) { unsigned index = offset / block_size(); u16 whole_blocks = len / block_size(); @@ -122,7 +122,7 @@ bool StorageDevice::can_read(const FileDescription&, size_t offset) const return offset < (max_addressable_block() * block_size()); } -KResultOr StorageDevice::write(FileDescription&, size_t offset, const UserOrKernelBuffer& inbuf, size_t len) +KResultOr StorageDevice::write(FileDescription&, u64 offset, const UserOrKernelBuffer& inbuf, size_t len) { unsigned index = offset / block_size(); u16 whole_blocks = len / block_size(); diff --git a/Kernel/Storage/StorageDevice.h b/Kernel/Storage/StorageDevice.h index c2c3537c2d3..ebdea7757cf 100644 --- a/Kernel/Storage/StorageDevice.h +++ b/Kernel/Storage/StorageDevice.h @@ -52,9 +52,9 @@ public: NonnullRefPtr controller() const; // ^BlockDevice - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; virtual bool can_read(const FileDescription&, size_t) const override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_write(const FileDescription&, size_t) const override; // ^Device diff --git a/Kernel/TTY/MasterPTY.cpp b/Kernel/TTY/MasterPTY.cpp index 791541e2752..bffbd4a871b 100644 --- a/Kernel/TTY/MasterPTY.cpp +++ b/Kernel/TTY/MasterPTY.cpp @@ -62,14 +62,14 @@ String MasterPTY::pts_name() const return m_pts_name; } -KResultOr MasterPTY::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr MasterPTY::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { if (!m_slave && m_buffer.is_empty()) return 0; return m_buffer.read(buffer, size); } -KResultOr MasterPTY::write(FileDescription&, size_t, const UserOrKernelBuffer& buffer, size_t size) +KResultOr MasterPTY::write(FileDescription&, u64, const UserOrKernelBuffer& buffer, size_t size) { if (!m_slave) return EIO; diff --git a/Kernel/TTY/MasterPTY.h b/Kernel/TTY/MasterPTY.h index 8c2bb547399..c172d642757 100644 --- a/Kernel/TTY/MasterPTY.h +++ b/Kernel/TTY/MasterPTY.h @@ -54,8 +54,8 @@ public: private: // ^CharacterDevice - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_read(const FileDescription&, size_t) const override; virtual bool can_write(const FileDescription&, size_t) const override; virtual KResult close() override; diff --git a/Kernel/TTY/PTYMultiplexer.h b/Kernel/TTY/PTYMultiplexer.h index 79a6f1d2bfa..4ef2d32cb57 100644 --- a/Kernel/TTY/PTYMultiplexer.h +++ b/Kernel/TTY/PTYMultiplexer.h @@ -48,8 +48,8 @@ public: // ^CharacterDevice virtual KResultOr> open(int options) override; - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override { return 0; } - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override { return 0; } + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override { return 0; } + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return 0; } virtual bool can_read(const FileDescription&, size_t) const override { return true; } virtual bool can_write(const FileDescription&, size_t) const override { return true; } diff --git a/Kernel/TTY/SlavePTY.cpp b/Kernel/TTY/SlavePTY.cpp index 5c7b93d2ebf..f9a081fb8b7 100644 --- a/Kernel/TTY/SlavePTY.cpp +++ b/Kernel/TTY/SlavePTY.cpp @@ -93,7 +93,7 @@ bool SlavePTY::can_read(const FileDescription& description, size_t offset) const return TTY::can_read(description, offset); } -KResultOr SlavePTY::read(FileDescription& description, size_t offset, UserOrKernelBuffer& buffer, size_t size) +KResultOr SlavePTY::read(FileDescription& description, u64 offset, UserOrKernelBuffer& buffer, size_t size) { if (m_master->is_closed()) return 0; diff --git a/Kernel/TTY/SlavePTY.h b/Kernel/TTY/SlavePTY.h index 4fd889ed9b8..4b075e1c602 100644 --- a/Kernel/TTY/SlavePTY.h +++ b/Kernel/TTY/SlavePTY.h @@ -52,7 +52,7 @@ private: // ^CharacterDevice virtual bool can_read(const FileDescription&, size_t) const override; - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; virtual bool can_write(const FileDescription&, size_t) const override; virtual const char* class_name() const override { return "SlavePTY"; } virtual KResult close() override; diff --git a/Kernel/TTY/TTY.cpp b/Kernel/TTY/TTY.cpp index e3fcf469af8..f7facde2b3e 100644 --- a/Kernel/TTY/TTY.cpp +++ b/Kernel/TTY/TTY.cpp @@ -52,7 +52,7 @@ void TTY::set_default_termios() memcpy(m_termios.c_cc, default_cc, sizeof(default_cc)); } -KResultOr TTY::read(FileDescription&, size_t, UserOrKernelBuffer& buffer, size_t size) +KResultOr TTY::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size) { if (Process::current()->pgid() != pgid()) { // FIXME: Should we propagate this error path somehow? @@ -100,7 +100,7 @@ KResultOr TTY::read(FileDescription&, size_t, UserOrKernelBuffer& buffer return (size_t)nwritten; } -KResultOr TTY::write(FileDescription&, size_t, const UserOrKernelBuffer& buffer, size_t size) +KResultOr TTY::write(FileDescription&, u64, const UserOrKernelBuffer& buffer, size_t size) { if (m_termios.c_lflag & TOSTOP && Process::current()->pgid() != pgid()) { [[maybe_unused]] auto rc = Process::current()->send_signal(SIGTTOU, nullptr); diff --git a/Kernel/TTY/TTY.h b/Kernel/TTY/TTY.h index a60526078ce..404ad2f755c 100644 --- a/Kernel/TTY/TTY.h +++ b/Kernel/TTY/TTY.h @@ -39,8 +39,8 @@ class TTY : public CharacterDevice { public: virtual ~TTY() override; - virtual KResultOr read(FileDescription&, size_t, UserOrKernelBuffer&, size_t) override; - virtual KResultOr write(FileDescription&, size_t, const UserOrKernelBuffer&, size_t) override; + virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override; + virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override; virtual bool can_read(const FileDescription&, size_t) const override; virtual bool can_write(const FileDescription&, size_t) const override; virtual int ioctl(FileDescription&, unsigned request, FlatPtr arg) override final;