mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 17:27:35 +00:00
Kernel/ACPI: Make most of StaticParsing methods to be platform-agnostic
Most of the ACPI static parsing methods (methods that can be called without initializing a full AML parser) are not tied to any specific platform or CPU architecture. The only method that is platform-specific is the one that finds the RSDP structure. Thus, each CPU architecture/platform needs to implement it. This means that now aarch64 can implement its own method to find the ACPI RSDP structure, which would be hooked into the rest of the ACPI code elegantly, but for now I just added a FIXME and that method returns empty value of Optional<PhysicalAddress>.
This commit is contained in:
parent
be16a91aec
commit
428afca32b
11 changed files with 211 additions and 133 deletions
|
@ -48,8 +48,8 @@ public:
|
|||
static u8 acquire_mapped_interrupt_number(u8 original_irq);
|
||||
static u8 acquire_irq_number(u8 mapped_interrupt_vector);
|
||||
|
||||
virtual void switch_to_pic_mode();
|
||||
virtual void switch_to_ioapic_mode();
|
||||
void switch_to_pic_mode();
|
||||
void switch_to_ioapic_mode();
|
||||
|
||||
NonnullLockRefPtr<IRQController> get_responsible_irq_controller(u8 interrupt_vector);
|
||||
NonnullLockRefPtr<IRQController> get_responsible_irq_controller(IRQControllerType controller_type, u8 interrupt_vector);
|
||||
|
@ -67,12 +67,12 @@ protected:
|
|||
|
||||
private:
|
||||
InterruptManagement();
|
||||
PhysicalAddress search_for_madt();
|
||||
ErrorOr<Optional<PhysicalAddress>> find_madt_physical_address();
|
||||
void locate_apic_data();
|
||||
Vector<NonnullLockRefPtr<IRQController>> m_interrupt_controllers;
|
||||
Vector<ISAInterruptOverrideMetadata> m_isa_interrupt_overrides;
|
||||
Vector<PCIInterruptOverrideMetadata> m_pci_interrupt_overrides;
|
||||
PhysicalAddress m_madt;
|
||||
Optional<PhysicalAddress> m_madt_physical_address;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue