Open MPI logo

Portable Hardware Locality (hwloc) Documentation: v2.12.0

  |   Home   |   Support   |   FAQ   |  
Components and Plugins: Generic components

Data Structures

struct  hwloc_component
 

Typedefs

typedef enum hwloc_component_type_e hwloc_component_type_t
 

Enumerations

enum  hwloc_component_type_e { HWLOC_COMPONENT_TYPE_DISC , HWLOC_COMPONENT_TYPE_XML }
 

Functions

int hwloc_plugin_check_namespace (const char *pluginname, const char *symbol)
 

Detailed Description

Note
These structures and functions may change when HWLOC_COMPONENT_ABI is modified.

Typedef Documentation

◆ hwloc_component_type_t

Generic component type.

Enumeration Type Documentation

◆ hwloc_component_type_e

Generic component type.

Enumerator
HWLOC_COMPONENT_TYPE_DISC 

The data field must point to a struct hwloc_disc_component.

HWLOC_COMPONENT_TYPE_XML 

The data field must point to a struct hwloc_xml_component.

Function Documentation

◆ hwloc_plugin_check_namespace()

int hwloc_plugin_check_namespace ( const char *  pluginname,
const char *  symbol 
)
inline

Make sure that plugins can lookup core symbols.

This is a sanity check to avoid lazy-lookup failures when libhwloc is loaded within a plugin, and later tries to load its own plugins. This may fail (and abort the program) if libhwloc symbols are in a private namespace.

Returns
0 on success.
-1 if the plugin cannot be successfully loaded. The caller plugin init() callback should return a negative error code as well.

Plugins should call this function in their init() callback to avoid later crashes if lazy symbol resolution is used by the upper layer that loaded hwloc (e.g. OpenCL implementations using dlopen with RTLD_LAZY).

Note
The build system must define HWLOC_INSIDE_PLUGIN if and only if building the caller as a plugin.
This function should remain inline so plugins can call it even when they cannot find libhwloc symbols.