summaryrefslogtreecommitdiff
path: root/Kernel/PCI/Initializer.h
blob: 0c4143312a68d549acd99334d5da2478e2e37c99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#pragma once

#include <AK/Types.h>
#include <Kernel/ACPI/Definitions.h>
#include <Kernel/PCI/Definitions.h>

class PCI::Initializer {
public:
    static PCI::Initializer& the();
    void initialize_pci_mmio_access(ACPI_RAW::MCFG& mcfg);
    void initialize_pci_io_access();
    void test_and_initialize(bool disable_pci_mmio);
    static void dismiss();

private:
    ~Initializer();
    Initializer();
    bool test_acpi();
    bool test_pci_io();
    bool test_pci_mmio();
    void initialize_pci_mmio_access_after_test();
};