Components and Plugins: finding PCI objects during other discoveries

## Functions

struct hwloc_obj * | hwloc_pcidisc_find_by_busid (struct hwloc_topology *topology, unsigned domain, unsigned bus, unsigned dev, unsigned func)
struct hwloc_obj * | hwloc_pcidisc_find_busid_parent (struct hwloc_topology *topology, unsigned domain, unsigned bus, unsigned dev, unsigned func)

## Detailed Description

## Function Documentation

## hwloc_pcidisc_find_busid_parent()

struct hwloc_obj* hwloc_pcidisc_find_busid_parent | ( | struct hwloc_topology * | topology,
|  | unsigned | domain,
|  | unsigned | bus,
|  | unsigned | dev,
|  | unsigned | func
| ) |  |

Find the normal parent of a PCI bus ID.

Look at PCI affinity to find out where the given PCI bus ID should be attached.

This function should be used to attach an I/O device directly under a normal (non-I/O) object, instead of below a PCI object. It is usually used by backends when hwloc_pcidisc_find_by_busid() failed to find the hwloc object corresponding to this bus ID, for instance because PCI discovery is not supported on this platform.

## hwloc_pcidisc_find_by_busid()

struct hwloc_obj* hwloc_pcidisc_find_by_busid | ( | struct hwloc_topology * | topology,
|  | unsigned | domain,
|  | unsigned | bus,
|  | unsigned | dev,
|  | unsigned | func
| ) |  |

Find the PCI object that matches the bus ID.

To be used after a PCI backend added PCI devices with hwloc_pcidisc_tree_attach() and before the core moves them to their actual location with hwloc_pci_belowroot_apply_locality().

If no exactly matching object is found, return the container bridge if any, or NULL.

On failure, it may be possible to find the PCI locality (instead of the PCI device) by calling hwloc_pcidisc_find_busid_parent().

Note
  This is semantically identical to hwloc_get_pcidev_by_busid() which only works after the topology is fully loaded.