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

pci_find_class()

Find devices that have a specific class code

Synopsis:

#include <hw/pci.h>

int pci_find_class( unsigned long class_code,
                    unsigned index,
                    unsigned* bus,
                    unsigned* dev_func );

Arguments:

class_code
The class of device or function that you want to find. For a list of class codes, see <hw/pci.h>. You must OR together a class code and a subclass code (e.g. PCI_CLASS_DISPLAY | PCI_SUBCLASS_DISPLAY_XGA).
index
The index of the device or function that you want to find: 0 for the first, 1 for the second, and so on.
bus
The bus number, in the range [0...255].
dev_func
The device or function number of the nth device or function of the given class. 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_class() function determines the location of the nth PCI device or function that has the specified class code.


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

You can find all the devices having the same class code 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_device(), 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()