diff --git a/headers/os/drivers/bus/PCI.h b/headers/os/drivers/bus/PCI.h index 846fd463fb..7832076667 100644 --- a/headers/os/drivers/bus/PCI.h +++ b/headers/os/drivers/bus/PCI.h @@ -112,7 +112,10 @@ typedef struct pci_device_module_info { status_t (*release_ioports)( uint16 ioport_base, size_t len );*/ status_t (*get_pci_info)(pci_device device, struct pci_info *info); - + + status_t (*find_pci_capability)(pci_device device, + uchar cap_id, + uchar *offset); } pci_device_module_info; diff --git a/src/add-ons/kernel/bus_managers/pci/pci_device.c b/src/add-ons/kernel/bus_managers/pci/pci_device.c index 9432f9b20e..74cc1f24af 100644 --- a/src/add-ons/kernel/bus_managers/pci/pci_device.c +++ b/src/add-ons/kernel/bus_managers/pci/pci_device.c @@ -117,6 +117,14 @@ pci_device_get_pci_info(pci_device device, struct pci_info *info) } +static status_t +pci_device_find_capability(pci_device device, uchar cap_id, uchar *offset) +{ + return pci_find_capability(device->bus, device->device, + device->function, cap_id, offset); +} + + static status_t pci_device_init_driver(device_node_handle node, void *user_cookie, void **cookie) { @@ -226,4 +234,6 @@ pci_device_module_info gPCIDeviceModule = { pci_device_ram_address, pci_device_get_pci_info, + + pci_device_find_capability };