1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 23:55:07 +00:00
serenity/Kernel/Bus/PCI
Pankaj Raghav 82cf0bfb75 Kernel: Add APIs to PCI Device to use MSI(x)
Add reserve_irqs, allocate_irq, enable_interrupt and disable_interrupt
API to a PCI device.

reserve_irqs() can be used by a device driver that would like to
reserve irqs for MSI(x) interrupts. The API returns the type of IRQ
that was reserved by the PCI device. If the PCI device does not support
MSI(x), then it is a noop.

allocate_irq() API can be used to allocate an IRQ at an index. For
MSIx the driver needs to map the vector table into the memory and add
the corresponding IRQ at the given index. This API will return the
actual IRQ that was used so that the driver can use it create interrupt
handler for that IRQ.

{enable, disable}_interrupt API is used to enable or disable a
particular IRQ at the given index. It is a noop for pin-based
interrupts. This could be used by IRQHandler to enable or disable an
interrupt.
2023-05-07 21:16:41 +02:00
..
Controller Kernel/PCI: Hold a reference to DeviceIdentifier in the Device class 2023-01-26 23:04:26 +01:00
Access.cpp Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
Access.h Everywhere: Remove NonnullRefPtr.h includes 2023-03-06 23:46:35 +01:00
API.cpp Kernel: Add write{8,16,32} to the PCI Capability struct 2023-05-07 21:16:41 +02:00
API.h Kernel/PCI: Expose PCI option ROM data from the sysfs interface 2023-01-26 23:04:26 +01:00
Definitions.h Kernel: Implement {enable,disable}_msix interrupts in PCI Device 2023-05-07 21:16:41 +02:00
Device.cpp Kernel: Add APIs to PCI Device to use MSI(x) 2023-05-07 21:16:41 +02:00
Device.h Kernel: Add APIs to PCI Device to use MSI(x) 2023-05-07 21:16:41 +02:00
DeviceIdentifier.cpp Kernel: Add MSIxInfo struct to PCI DeviceIdentifier 2023-05-07 21:16:41 +02:00
IDs.h Kernel/Graphics: Implement basic support for VMWare SVGA adapter 2022-05-06 18:04:57 +02:00
Initializer.h Kernel: Use C++17 namespace style for nested PCI namespace 2022-04-26 22:56:45 +02:00