mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 00:47:45 +00:00
Kernel/PCI: Propagate usage of DeviceIdentifier everywhere
This allows us to remove a bunch of PCI API functions, and instead to leverage the cached data from DeviceIdentifier object in many places.
This commit is contained in:
parent
da327746a2
commit
057f5a12c2
40 changed files with 150 additions and 186 deletions
|
@ -46,8 +46,8 @@ void GPU::initialize()
|
|||
}
|
||||
}
|
||||
|
||||
GPU::GPU(PCI::Address address)
|
||||
: VirtIO::Device(address)
|
||||
GPU::GPU(PCI::DeviceIdentifier const& device_identifier)
|
||||
: VirtIO::Device(device_identifier)
|
||||
{
|
||||
auto region_or_error = MM.allocate_contiguous_kernel_region(32 * PAGE_SIZE, "VirtGPU Scratch Space", Memory::Region::Access::ReadWrite);
|
||||
if (region_or_error.is_error())
|
||||
|
|
|
@ -40,7 +40,7 @@ class GPU final
|
|||
friend class FrameBufferDevice;
|
||||
|
||||
public:
|
||||
GPU(PCI::Address);
|
||||
GPU(PCI::DeviceIdentifier const&);
|
||||
virtual ~GPU() override;
|
||||
|
||||
void create_framebuffer_devices();
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
|
||||
namespace Kernel::Graphics::VirtIOGPU {
|
||||
|
||||
NonnullRefPtr<GraphicsAdapter> GraphicsAdapter::initialize(PCI::Address base_address)
|
||||
NonnullRefPtr<GraphicsAdapter> GraphicsAdapter::initialize(PCI::DeviceIdentifier const& device_identifier)
|
||||
{
|
||||
VERIFY(PCI::get_hardware_id(base_address).vendor_id == PCI::VendorID::VirtIO);
|
||||
return adopt_ref(*new GraphicsAdapter(base_address));
|
||||
VERIFY(device_identifier.hardware_id().vendor_id == PCI::VendorID::VirtIO);
|
||||
return adopt_ref(*new GraphicsAdapter(device_identifier));
|
||||
}
|
||||
|
||||
GraphicsAdapter::GraphicsAdapter(PCI::Address base_address)
|
||||
: PCI::Device(base_address)
|
||||
GraphicsAdapter::GraphicsAdapter(PCI::DeviceIdentifier const& device_identifier)
|
||||
: PCI::Device(device_identifier.address())
|
||||
{
|
||||
m_gpu_device = adopt_ref(*new GPU(base_address)).leak_ref();
|
||||
m_gpu_device = adopt_ref(*new GPU(device_identifier)).leak_ref();
|
||||
m_gpu_device->initialize();
|
||||
}
|
||||
|
||||
|
|
|
@ -18,12 +18,12 @@ class GraphicsAdapter final
|
|||
AK_MAKE_ETERNAL
|
||||
|
||||
public:
|
||||
static NonnullRefPtr<GraphicsAdapter> initialize(PCI::Address);
|
||||
static NonnullRefPtr<GraphicsAdapter> initialize(PCI::DeviceIdentifier const&);
|
||||
|
||||
virtual bool framebuffer_devices_initialized() const override { return m_created_framebuffer_devices; }
|
||||
|
||||
private:
|
||||
explicit GraphicsAdapter(PCI::Address base_address);
|
||||
explicit GraphicsAdapter(PCI::DeviceIdentifier const&);
|
||||
|
||||
virtual void initialize_framebuffer_devices() override;
|
||||
virtual Type type() const override { return Type::Raw; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue