xml or synthetic, platform-specific components such as bgq. Discovers everything including CPU, memory, I/O and everything else. A component with a Global phase usually excludes all other phases.
Attach memory to existing CPU objects.
Attach PCI devices and bridges to existing CPU objects.
I/O discovery that requires PCI devices (OS devices such as OpenCL, CUDA, etc.).
Misc objects that gets added below anything else.
Annotating existing objects, adding distances, etc.
Final tweaks to a ready-to-use topology. This phase runs once the topology is loaded, before it is returned to the topology. Hence it may only use the main hwloc API for modifying the topology, for instance by restricting it, adding info attributes, etc.
Discovery status flags.
The sets of allowed resources were already retrieved.
Allocate a backend structure, set good default values, initialize backend->component and topology, etc. The caller will then modify whatever needed, and call hwloc_backend_enable().
Enable a previously allocated and setup backend.