Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

pci_find_device()

Find the PCI device with a given device ID and vendor ID

Synopsis:

#include <hw/pci.h>

int pci_find_device( unsigned device,
                     unsigned vendor,
                     unsigned index,
                     unsigned* bus,
                     unsigned* dev_func );

Arguments:

device
The device ID. For a list of supported device IDs, see <hw/pci_devices.h>.
vendor
The vendor ID. For a list of supported vendor IDs, see <hw/pci_devices.h>.
index
The index (n) of the device or function sought.
bus
A pointer to a location where the function can store the bus number of the device or function found.
dev_func
A pointer to a location where the function can store the device or function ID of the nth device or function found with the specified device and vendor IDs. The device number is in bits 7 through 3, and the function number in bits 2 through 0.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pci_find_device() function returns the location of the nth PCI device that has the specified device and vendor IDs.


Note: You must successfully call pci_attach() before calling any of the other PCI functions.

You can find all the devices having the same device and vendor IDs by making successive calls to this function, starting with an index of 0, and incrementing it until PCI_DEVICE_NOT_FOUND is returned.

Returns:

PCI_DEVICE_NOT_FOUND
The device or function wasn't found.
PCI_SUCCESS
The device or function was found.
-1
You haven't called pci_attach(), or the call to it failed.

Classification:

QNX Neutrino

Safety:
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

pci_attach(), pci_attach_device(), pci_detach(), pci_detach_device(), pci_find_class(), pci_present(), pci_read_config(), pci_read_config8(), pci_read_config16(), pci_read_config32(), pci_rescan_bus(), pci_write_config(), pci_write_config8(), pci_write_config16(), pci_write_config32()