pci_present()

Determine whether or not PCI BIOS is present

Synopsis:

#include <hw/pci.h>

int pci_present( unsigned* lastbus,
                 unsigned* version,
                 unsigned* hardware );

Arguments:

lastbus
The number of the last PCI bus in the system. PCI buses are numbered from 0, up to and including this value.
version
The version number of the PCI interface.
hardware
The specific hardware characteristics the platform supports with regard to accessing configuration space and generating PCI Special Cycles.

The PCI specification defines two hardware mechanisms for accessing configuration space. Bit 0 of hardware is set (1) if mechanism 1 is supported, and reset (0) otherwise. Bit 1 is set (1) if mechanism 2 is supported, and reset (0) otherwise.

The specification also defines hardware mechanisms for generating Special Cycles. Bit 4 of hardware is set (1) if the platform supports Special Cycle generation based on Config Mechanism 1, and reset (0) otherwise. Bit 5 is set (1) if the platform supports Special Cycle generation based on Config Mechanism 2, and reset (0) otherwise.

The arguments can be NULL if you just want to check for PCI capabilities.

Library:

libc

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

Description:

The pci_present() function determines whether or not the PCI BIOS interface function set is present. It also determines the following:

  • the current interface version
  • what hardware mechanism for accessing configuration space is supported
  • whether or not the hardware supports the generation of PCI Special Cycles.
You must successfully call pci_attach() before calling any of the other PCI functions.

Returns:

-1
PCI BIOS isn't present.
PCI_SUCCESS
PCI BIOS is present.

Classification:

QNX Neutrino

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