hwloc_disc_component Struct Reference
Components and Plugins: Discovery components and backends

`#include <plugins.h>`

## Data Fields

const char * | name
unsigned | phases
unsigned | excluded_phases
struct hwloc_backend *(* | instantiate )(struct hwloc_topology *topology, struct hwloc_disc_component *component, unsigned excluded_phases, const void *data1, const void *data2, const void *data3)
unsigned | priority
unsigned | enabled_by_default

## Detailed Description

Discovery component structure.

This is the major kind of components, taking care of the discovery. They are registered by generic components, either statically-built or as plugins.

## Field Documentation

## enabled_by_default

unsigned hwloc_disc_component::enabled_by_default

Enabled by default. If unset, if will be disabled unless explicitly requested.

## excluded_phases

unsigned hwloc_disc_component::excluded_phases

Component phases to exclude, as an OR'ed set of hwloc_disc_phase_t.

For a GLOBAL component, this usually includes all other phases (`~UL`).

Other components only exclude types that may bring conflicting topology information. MISC components should likely not be excluded since they usually bring non-primary additional information.

## instantiate

struct hwloc_backend *(* hwloc_disc_component::instantiate) (struct hwloc_topology *topology, struct hwloc_disc_component *component, unsigned excluded_phases, const void *data1, const void *data2, const void *data3)

Instantiate callback to create a backend from the component. Parameters data1, data2, data3 are NULL except for components that have special enabling routines such as hwloc_topology_set_xml().

## name

const char* hwloc_disc_component::name

Name. If this component is built as a plugin, this name does not have to match the plugin filename.

## phases

unsigned hwloc_disc_component::phases

Discovery phases performed by this component. OR'ed set of hwloc_disc_phase_t.

## priority

unsigned hwloc_disc_component::priority

Component priority. Used to sort topology->components, higher priority first. Also used to decide between two components with the same name.

Usual values are 50 for native OS (or platform) components, 45 for x86, 40 for no-OS fallback, 30 for global components (xml, synthetic), 20 for pci, 10 for other misc components (opencl etc.).

The documentation for this struct was generated from the following file:

- plugins.h