Serenity Operating System
at master 39 lines 1.1 kB view raw
1/* 2 * Copyright (c) 2021, Liav A. <liavalb@hotmail.co.il> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/Types.h> 10#include <Kernel/Bus/PCI/Device.h> 11#include <Kernel/Graphics/Bochs/Definitions.h> 12#include <Kernel/Graphics/Console/GenericFramebufferConsole.h> 13#include <Kernel/Graphics/GenericGraphicsAdapter.h> 14#include <Kernel/Memory/TypedMapping.h> 15#include <Kernel/PhysicalAddress.h> 16 17namespace Kernel { 18 19class GraphicsManagement; 20struct BochsDisplayMMIORegisters; 21 22class BochsGraphicsAdapter final : public GenericGraphicsAdapter 23 , public PCI::Device { 24 friend class GraphicsManagement; 25 26public: 27 static ErrorOr<bool> probe(PCI::DeviceIdentifier const&); 28 static ErrorOr<NonnullLockRefPtr<GenericGraphicsAdapter>> create(PCI::DeviceIdentifier const&); 29 virtual ~BochsGraphicsAdapter() = default; 30 virtual StringView device_name() const override { return "BochsGraphicsAdapter"sv; } 31 32private: 33 ErrorOr<void> initialize_adapter(PCI::DeviceIdentifier const&); 34 35 explicit BochsGraphicsAdapter(PCI::DeviceIdentifier const&); 36 37 LockRefPtr<DisplayConnector> m_display_connector; 38}; 39}