Determine whether or not PCI BIOS is present
#include <hw/pci.h> int pci_present( unsigned* lastbus, unsigned* version, unsigned* hardware );
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.
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The pci_present() function determines whether or not the PCI BIOS interface function set is present. It also determines the following:
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
pci_attach(), pci_attach_device(), pci_detach(), pci_detach_device(), pci_find_class(), pci_find_device(), 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()