1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 12:07:45 +00:00

Kernel: PCI MMIO no longer uses map_for_kernel()

PCI MMIO access is done by modifying the related PhysicalPage directly,
then we request to remap the region to create the mapping.
This commit is contained in:
Liav A 2020-01-21 04:33:43 +02:00 committed by Andreas Kling
parent 24f2596345
commit aca317d889
4 changed files with 19 additions and 45 deletions

View file

@ -41,7 +41,7 @@ public:
virtual void enumerate_all(Function<void(Address, ID)>&) override final;
virtual String get_access_type() override final { return "MMIO-Access"; };
virtual u32 get_segments_count();
protected:
explicit MMIOAccess(ACPI_RAW::MCFG&);
@ -54,16 +54,11 @@ private:
virtual void write32_field(Address address, u32, u32) override final;
void map_device(Address address);
void mmap(VirtualAddress preferred_vaddr, PhysicalAddress paddr, u32);
void mmap_region(Region& region, PhysicalAddress paddr);
virtual u32 get_segments_count();
virtual u8 get_segment_start_bus(u32);
virtual u8 get_segment_end_bus(u32);
ACPI_RAW::MCFG& m_mcfg;
HashMap<u16, MMIOSegment*>& m_segments;
RefPtr<VMObject> m_mmio_window;
OwnPtr<Region> m_mmio_window_region;
PCI::ChangeableAddress m_mapped_address;
};