hwloc_disc_component Struct Reference
Components and Plugins: Discovery components

`#include <plugins.h>`

## Data Fields

hwloc_disc_component_type_t | type
const char * | name
unsigned | excludes
struct hwloc_backend *(* | instantiate )(struct hwloc_disc_component *component, const void *data1, const void *data2, const void *data3)
unsigned | priority

## 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

## excludes

unsigned hwloc_disc_component::excludes

Component types to exclude, as an OR'ed set of hwloc_disc_component_type_e.

For a GLOBAL component, this usually includes all other types (~0).

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_disc_component *component, 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.

## 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/custom), 20 for pci, 10 for other misc components (opencl etc.).

## type

hwloc_disc_component_type_t hwloc_disc_component::type

Discovery component type.

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

- plugins.h