From 25b723638df76e0c47d02a0e1c1b3c3534735189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 9 Jul 2013 23:33:27 +0200 Subject: [PATCH] PCI: the x86 module now exports an MSI-X API. --- headers/os/drivers/PCI_x86.h | 27 +++++++++++++++++++ .../pci/arch/x86/pci_arch_module.cpp | 7 ++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/headers/os/drivers/PCI_x86.h b/headers/os/drivers/PCI_x86.h index fc6f6af00d..d20961fb08 100644 --- a/headers/os/drivers/PCI_x86.h +++ b/headers/os/drivers/PCI_x86.h @@ -35,6 +35,33 @@ typedef struct pci_x86_module_info { uint8 bus, /* bus number */ uint8 device, /* device # on bus */ uint8 function); /* function # in device */ + + uint8 (*get_msix_count)( + uint8 bus, /* bus number */ + uint8 device, /* device # on bus */ + uint8 function); /* function # in device */ + + status_t (*configure_msix)( + uint8 bus, /* bus number */ + uint8 device, /* device # on bus */ + uint8 function, /* function # in device */ + uint8 count, /* count of vectors desired */ + uint8 *startVector); /* first configured vector */ + status_t (*unconfigure_msix)( + uint8 bus, /* bus number */ + uint8 device, /* device # on bus */ + uint8 function); /* function # in device */ + + status_t (*enable_msix)( + uint8 bus, /* bus number */ + uint8 device, /* device # on bus */ + uint8 function); /* function # in device */ + status_t (*disable_msix)( + uint8 bus, /* bus number */ + uint8 device, /* device # on bus */ + uint8 function); /* function # in device */ + + } pci_x86_module_info; #define B_PCI_X86_MODULE_NAME "bus_managers/pci/x86/v1" diff --git a/src/add-ons/kernel/bus_managers/pci/arch/x86/pci_arch_module.cpp b/src/add-ons/kernel/bus_managers/pci/arch/x86/pci_arch_module.cpp index 1ebb7005dc..0220bf7677 100644 --- a/src/add-ons/kernel/bus_managers/pci/arch/x86/pci_arch_module.cpp +++ b/src/add-ons/kernel/bus_managers/pci/arch/x86/pci_arch_module.cpp @@ -42,5 +42,10 @@ pci_x86_module_info gPCIArchModule = { &pci_configure_msi, &pci_unconfigure_msi, &pci_enable_msi, - &pci_disable_msi + &pci_disable_msi, + &pci_get_msix_count, + &pci_configure_msix, + &pci_unconfigure_msix, + &pci_enable_msix, + &pci_disable_msix };