Hardware Locality (hwloc): Interoperability with Linux libnuma bitmask

Hardware Locality (hwloc) 2.14.0rc1

Functions
Interoperability with Linux libnuma bitmask

## Functions
struct bitmask * | hwloc_cpuset_to_linux_libnuma_bitmask (hwloc_topology_t topology, hwloc_const_cpuset_t cpuset)
struct bitmask * | hwloc_nodeset_to_linux_libnuma_bitmask (hwloc_topology_t topology, hwloc_const_nodeset_t nodeset)
int | hwloc_cpuset_from_linux_libnuma_bitmask (hwloc_topology_t topology, hwloc_cpuset_t cpuset, const struct bitmask *bitmask)
int | hwloc_nodeset_from_linux_libnuma_bitmask (hwloc_topology_t topology, hwloc_nodeset_t nodeset, const struct bitmask *bitmask)

## Detailed Description

This interface helps converting between Linux libnuma bitmasks and hwloc cpusets and nodesets.

Note
  Topology `topology` must match the current machine.
  The behavior of libnuma is undefined if the kernel is not NUMA-aware. (when CONFIG_NUMA is not set in the kernel configuration). This helper and libnuma may thus not be strictly compatible in this case, which may be detected by checking whether numa_available() returns -1.

## Function Documentation

## ◆ hwloc_cpuset_from_linux_libnuma_bitmask()

int hwloc_cpuset_from_linux_libnuma_bitmask | ( | hwloc_topology_t | topology,
|  | hwloc_cpuset_t | cpuset,
|  | const struct bitmask * | bitmask )
| inline

Convert libnuma bitmask `bitmask` into hwloc CPU set `cpuset`.

This function may be used after calling many numa_ functions that use a struct bitmask as an output parameter.

Returns
  0 on success.
  -1 with errno set to `ENOMEM` if some internal reallocation failed.

## ◆ hwloc_cpuset_to_linux_libnuma_bitmask()

struct bitmask * hwloc_cpuset_to_linux_libnuma_bitmask | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | cpuset )
| inline

Convert hwloc CPU set `cpuset` into the returned libnuma bitmask.

The returned bitmask should later be freed with numa_bitmask_free.

This function may be used before calling many numa_ functions that use a struct bitmask as an input parameter.

Returns
  newly allocated struct bitmask, or `NULL` on error.

Note
  On heterogeneous memory platforms, we may return multiple local NUMA nodes even if libnuma reports only one (usually the first one).

## ◆ hwloc_nodeset_from_linux_libnuma_bitmask()

int hwloc_nodeset_from_linux_libnuma_bitmask | ( | hwloc_topology_t | topology,
|  | hwloc_nodeset_t | nodeset,
|  | const struct bitmask * | bitmask )
| inline

Convert libnuma bitmask `bitmask` into hwloc NUMA node set `nodeset`.

This function may be used after calling many numa_ functions that use a struct bitmask as an output parameter.

Returns
  0 on success.
  -1 with errno set to `ENOMEM` if some internal reallocation failed.

## ◆ hwloc_nodeset_to_linux_libnuma_bitmask()

struct bitmask * hwloc_nodeset_to_linux_libnuma_bitmask | ( | hwloc_topology_t | topology,
|  | hwloc_const_nodeset_t | nodeset )
| inline

Convert hwloc NUMA node set `nodeset` into the returned libnuma bitmask.

The returned bitmask should later be freed with numa_bitmask_free.

This function may be used before calling many numa_ functions that use a struct bitmask as an input parameter.

Returns
  newly allocated struct bitmask, or `NULL` on error.