---
name: "hwloc_nodeset_from_linux_libnuma_bitmask"
section: "3"
platform: "linux"
package: "hwloc"
version: "2.15.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/hwlocality_linux_libnuma_bitmask"
---

# hwloc\_nodeset\_from\_linux\_libnuma\_bitmask(3)

Interoperability with Linux libnuma bitmask

Part of [hwlocality\_linux\_libnuma\_bitmask(3)](/hwlocality_linux_libnuma_bitmask/3.md).

## NAME

hwlocality\_linux\_libnuma\_bitmask - Interoperability with Linux libnuma bitmask

## SYNOPSIS

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

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

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

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

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

## Author

Generated automatically by Doxygen for Hardware Locality (hwloc) from the source code.
