/* * Copyright (c) 2024, Idan Horowitz * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Kernel::Memory { class MMIOVMObject final : public VMObject { public: static ErrorOr> try_create_for_physical_range(PhysicalAddress paddr, size_t size); virtual ErrorOr> try_clone() override { return ENOTSUP; } PhysicalAddress base_address() const { return m_base_address; } private: MMIOVMObject(PhysicalAddress, FixedArray>&&); virtual StringView class_name() const override { return "MMIOVMObject"sv; } virtual bool is_mmio() const override { return true; } PhysicalAddress m_base_address; }; }