serenity/Kernel/Bus
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
..
PCI Kernel: Add APIs to PCI Device to use MSI(x) 2023-05-07 21:16:41 +02:00
USB Kernel: Get rid of *LockRefPtr in the SysFS filesystem code 2023-04-14 19:24:54 +02:00
VirtIO Kernel/VirtIO: Use proper error propagation from the get_config method 2023-04-30 06:03:47 +02:00