mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:27:35 +00:00
Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T>
We now use AK::Error and AK::ErrorOr<T> in both kernel and userspace! This was a slightly tedious refactoring that took a long time, so it's not unlikely that some bugs crept in. Nevertheless, it does pass basic functionality testing, and it's just real nice to finally see the same pattern in all contexts. :^)
This commit is contained in:
parent
7ee10c6926
commit
79fa9765ca
262 changed files with 2415 additions and 2600 deletions
|
@ -6,9 +6,9 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <AK/Error.h>
|
||||
#include <AK/String.h>
|
||||
#include <AK/Types.h>
|
||||
#include <Kernel/API/KResult.h>
|
||||
#include <Kernel/Devices/BlockDevice.h>
|
||||
#include <Kernel/Graphics/GenericGraphicsAdapter.h>
|
||||
#include <Kernel/Locking/Mutex.h>
|
||||
|
@ -21,7 +21,7 @@ class GenericFramebufferDevice : public BlockDevice {
|
|||
friend class DeviceManagement;
|
||||
|
||||
public:
|
||||
virtual KResult try_to_initialize() = 0;
|
||||
virtual ErrorOr<void> try_to_initialize() = 0;
|
||||
|
||||
virtual void deactivate_writes() = 0;
|
||||
virtual void activate_writes() = 0;
|
||||
|
@ -29,8 +29,8 @@ public:
|
|||
virtual ~GenericFramebufferDevice() = default;
|
||||
|
||||
// ^File
|
||||
virtual KResultOr<Memory::Region*> mmap(Process&, OpenFileDescription&, Memory::VirtualRange const&, u64 offset, int prot, bool shared) = 0;
|
||||
virtual KResult ioctl(OpenFileDescription&, unsigned request, Userspace<void*> arg) override final;
|
||||
virtual ErrorOr<Memory::Region*> mmap(Process&, OpenFileDescription&, Memory::VirtualRange const&, u64 offset, int prot, bool shared) = 0;
|
||||
virtual ErrorOr<void> ioctl(OpenFileDescription&, unsigned request, Userspace<void*> arg) override final;
|
||||
virtual StringView class_name() const override final { return "FramebufferDevice"sv; }
|
||||
|
||||
private:
|
||||
|
@ -38,28 +38,28 @@ private:
|
|||
virtual bool can_read(const OpenFileDescription&, size_t) const override final { return true; }
|
||||
virtual bool can_write(const OpenFileDescription&, size_t) const override final { return true; }
|
||||
virtual void start_request(AsyncBlockDeviceRequest& request) override final { request.complete(AsyncDeviceRequest::Failure); }
|
||||
virtual KResultOr<size_t> read(OpenFileDescription&, u64, UserOrKernelBuffer&, size_t) override { return EINVAL; }
|
||||
virtual KResultOr<size_t> write(OpenFileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return EINVAL; }
|
||||
virtual ErrorOr<size_t> read(OpenFileDescription&, u64, UserOrKernelBuffer&, size_t) override { return EINVAL; }
|
||||
virtual ErrorOr<size_t> write(OpenFileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return EINVAL; }
|
||||
|
||||
protected:
|
||||
virtual bool multihead_support() const = 0;
|
||||
virtual bool flushing_support() const = 0;
|
||||
virtual bool partial_flushing_support() const = 0;
|
||||
virtual size_t heads_count() const = 0;
|
||||
virtual KResultOr<size_t> buffer_length(size_t head) const = 0;
|
||||
virtual KResultOr<size_t> pitch(size_t head) const = 0;
|
||||
virtual KResultOr<size_t> height(size_t head) const = 0;
|
||||
virtual KResultOr<size_t> width(size_t head) const = 0;
|
||||
virtual KResultOr<size_t> vertical_offset(size_t head) const = 0;
|
||||
virtual KResultOr<bool> vertical_offseted(size_t head) const = 0;
|
||||
virtual ErrorOr<size_t> buffer_length(size_t head) const = 0;
|
||||
virtual ErrorOr<size_t> pitch(size_t head) const = 0;
|
||||
virtual ErrorOr<size_t> height(size_t head) const = 0;
|
||||
virtual ErrorOr<size_t> width(size_t head) const = 0;
|
||||
virtual ErrorOr<size_t> vertical_offset(size_t head) const = 0;
|
||||
virtual ErrorOr<bool> vertical_offseted(size_t head) const = 0;
|
||||
|
||||
virtual KResult set_head_resolution(size_t head, size_t width, size_t height, size_t pitch) = 0;
|
||||
virtual KResult set_head_buffer(size_t head, bool second_buffer) = 0;
|
||||
virtual KResult flush_head_buffer(size_t head) = 0;
|
||||
virtual ErrorOr<void> set_head_resolution(size_t head, size_t width, size_t height, size_t pitch) = 0;
|
||||
virtual ErrorOr<void> set_head_buffer(size_t head, bool second_buffer) = 0;
|
||||
virtual ErrorOr<void> flush_head_buffer(size_t head) = 0;
|
||||
// FIXME: This method is too much specific to the VirtIO implementation (especially the buffer_index parameter)
|
||||
virtual KResult flush_rectangle(size_t buffer_index, FBRect const&) = 0;
|
||||
virtual ErrorOr<void> flush_rectangle(size_t buffer_index, FBRect const&) = 0;
|
||||
|
||||
KResult verify_head_index(int head_index) const;
|
||||
ErrorOr<void> verify_head_index(int head_index) const;
|
||||
|
||||
GenericFramebufferDevice(const GenericGraphicsAdapter&);
|
||||
mutable WeakPtr<GenericGraphicsAdapter> m_graphics_adapter;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue