Defines | |
#define | hwloc_cpuset_foreach_begin(cpu, set) |
Loop macro iterating on CPU set set . | |
#define | hwloc_cpuset_foreach_end() } |
End of loop. | |
Typedefs | |
typedef struct hwloc_cpuset_s * | hwloc_cpuset_t |
Set of CPUs represented as an opaque pointer to an internal bitmask. | |
typedef struct hwloc_cpuset_s * | hwloc_const_cpuset_t |
Functions | |
hwloc_cpuset_t | hwloc_cpuset_alloc (void) |
Allocate a new empty CPU set. | |
void | hwloc_cpuset_free (hwloc_cpuset_t set) |
Free CPU set set . | |
hwloc_cpuset_t | hwloc_cpuset_dup (hwloc_cpuset_t set) |
Duplicate CPU set set by allocating a new CPU set and copying its contents. | |
void | hwloc_cpuset_copy (hwloc_cpuset_t dst, hwloc_cpuset_t src) |
Copy the contents of CPU set src into the already allocated CPU set dst . | |
int | hwloc_cpuset_snprintf (char *restrict buf, size_t buflen, hwloc_const_cpuset_t set) |
Stringify a cpuset. | |
int | hwloc_cpuset_asprintf (char **strp, hwloc_const_cpuset_t set) |
Stringify a cpuset into a newly allocated string. | |
hwloc_cpuset_t | hwloc_cpuset_from_string (const char *restrict string) |
Parse a cpuset string. | |
void | hwloc_cpuset_zero (hwloc_cpuset_t set) |
Primitives & macros for building, modifying and consulting "sets" of cpus. | |
void | hwloc_cpuset_fill (hwloc_cpuset_t set) |
Fill CPU set set . | |
void | hwloc_cpuset_from_ulong (hwloc_cpuset_t set, unsigned long mask) |
Setup CPU set set from unsigned long mask . | |
void | hwloc_cpuset_from_ith_ulong (hwloc_cpuset_t set, int i, unsigned long mask) |
Setup CPU set set from unsigned long mask used as i -th subset. | |
unsigned long | hwloc_cpuset_to_ulong (hwloc_const_cpuset_t set) |
Convert the beginning part of CPU set set into unsigned long mask . | |
unsigned long | hwloc_cpuset_to_ith_ulong (hwloc_const_cpuset_t set, int i) |
Convert the i -th subset of CPU set set into unsigned long mask. | |
void | hwloc_cpuset_cpu (hwloc_cpuset_t set, unsigned cpu) |
Clear CPU set set and set CPU cpu . | |
void | hwloc_cpuset_all_but_cpu (hwloc_cpuset_t set, unsigned cpu) |
Clear CPU set set and set all but the CPU cpu . | |
void | hwloc_cpuset_set (hwloc_cpuset_t set, unsigned cpu) |
Add CPU cpu in CPU set set . | |
void | hwloc_cpuset_set_range (hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu) |
Add CPUs from begincpu to endcpu in CPU set set . | |
void | hwloc_cpuset_clr (hwloc_cpuset_t set, unsigned cpu) |
Remove CPU cpu from CPU set set . | |
int | hwloc_cpuset_isset (hwloc_const_cpuset_t set, unsigned cpu) |
Test whether CPU cpu is part of set set . | |
int | hwloc_cpuset_iszero (hwloc_const_cpuset_t set) |
Test whether set set is zero. | |
int | hwloc_cpuset_isfull (hwloc_const_cpuset_t set) |
Test whether set set is full. | |
int | hwloc_cpuset_isequal (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) |
Test whether set set1 is equal to set set2 . | |
int | hwloc_cpuset_intersects (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) |
Test whether sets set1 and set2 intersects. | |
int | hwloc_cpuset_isincluded (hwloc_const_cpuset_t sub_set, hwloc_const_cpuset_t super_set) |
Test whether set sub_set is part of set super_set . | |
void | hwloc_cpuset_orset (hwloc_cpuset_t set, hwloc_const_cpuset_t modifier_set) |
Or set modifier_set into set set . | |
void | hwloc_cpuset_andset (hwloc_cpuset_t set, hwloc_const_cpuset_t modifier_set) |
And set modifier_set into set set . | |
void | hwloc_cpuset_clearset (hwloc_cpuset_t set, hwloc_const_cpuset_t modifier_set) |
Clear set modifier_set out of set set . | |
void | hwloc_cpuset_xorset (hwloc_cpuset_t set, hwloc_const_cpuset_t modifier_set) |
Xor set set with set modifier_set . | |
int | hwloc_cpuset_first (hwloc_const_cpuset_t set) |
Compute the first CPU (least significant bit) in CPU set set . | |
int | hwloc_cpuset_last (hwloc_const_cpuset_t set) |
Compute the last CPU (most significant bit) in CPU set set . | |
void | hwloc_cpuset_singlify (hwloc_cpuset_t set) |
Keep a single CPU among those set in CPU set set . | |
int | hwloc_cpuset_compar_first (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) |
Compar CPU sets set1 and set2 using their first set bit. | |
int | hwloc_cpuset_compar (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) |
Compar CPU sets set1 and set2 using their last bits. | |
int | hwloc_cpuset_weight (hwloc_const_cpuset_t set) |
Compute the weight of CPU set set . |
For use in hwloc itself, a hwloc_cpuset_t represents a set of logical processors.
#define hwloc_cpuset_foreach_begin | ( | cpu, | |||
set | ) |
for (cpu = 0; cpu < HWLOC_NBMAXCPUS; cpu++) \ if (hwloc_cpuset_isset(set, cpu)) {
Loop macro iterating on CPU set set
.
It yields on each cpu that is member of the set. It uses variables set
(the cpu set) and cpu
(the loop variable)
#define hwloc_cpuset_foreach_end | ( | ) | } |
End of loop.
typedef struct hwloc_cpuset_s* hwloc_const_cpuset_t |
typedef struct hwloc_cpuset_s* hwloc_cpuset_t |
Set of CPUs represented as an opaque pointer to an internal bitmask.
void hwloc_cpuset_all_but_cpu | ( | hwloc_cpuset_t | set, | |
unsigned | cpu | |||
) |
Clear CPU set set
and set all but the CPU cpu
.
hwloc_cpuset_t hwloc_cpuset_alloc | ( | void | ) |
Allocate a new empty CPU set.
void hwloc_cpuset_andset | ( | hwloc_cpuset_t | set, | |
hwloc_const_cpuset_t | modifier_set | |||
) |
And set modifier_set
into set set
.
int hwloc_cpuset_asprintf | ( | char ** | strp, | |
hwloc_const_cpuset_t | set | |||
) |
Stringify a cpuset into a newly allocated string.
void hwloc_cpuset_clearset | ( | hwloc_cpuset_t | set, | |
hwloc_const_cpuset_t | modifier_set | |||
) |
Clear set modifier_set
out of set set
.
void hwloc_cpuset_clr | ( | hwloc_cpuset_t | set, | |
unsigned | cpu | |||
) |
Remove CPU cpu
from CPU set set
.
int hwloc_cpuset_compar | ( | hwloc_const_cpuset_t | set1, | |
hwloc_const_cpuset_t | set2 | |||
) |
Compar CPU sets set1
and set2
using their last bits.
Higher most significant bit is higher. The empty CPU set is considered lower than anything.
int hwloc_cpuset_compar_first | ( | hwloc_const_cpuset_t | set1, | |
hwloc_const_cpuset_t | set2 | |||
) |
Compar CPU sets set1
and set2
using their first set bit.
Smaller least significant bit is smaller. The empty CPU set is considered higher than anything.
void hwloc_cpuset_copy | ( | hwloc_cpuset_t | dst, | |
hwloc_cpuset_t | src | |||
) |
Copy the contents of CPU set src
into the already allocated CPU set dst
.
void hwloc_cpuset_cpu | ( | hwloc_cpuset_t | set, | |
unsigned | cpu | |||
) |
Clear CPU set set
and set CPU cpu
.
hwloc_cpuset_t hwloc_cpuset_dup | ( | hwloc_cpuset_t | set | ) |
Duplicate CPU set set
by allocating a new CPU set and copying its contents.
void hwloc_cpuset_fill | ( | hwloc_cpuset_t | set | ) |
Fill CPU set set
.
int hwloc_cpuset_first | ( | hwloc_const_cpuset_t | set | ) |
Compute the first CPU (least significant bit) in CPU set set
.
void hwloc_cpuset_free | ( | hwloc_cpuset_t | set | ) |
Free CPU set set
.
void hwloc_cpuset_from_ith_ulong | ( | hwloc_cpuset_t | set, | |
int | i, | |||
unsigned long | mask | |||
) |
Setup CPU set set
from unsigned long mask
used as i
-th subset.
hwloc_cpuset_t hwloc_cpuset_from_string | ( | const char *restrict | string | ) |
Parse a cpuset string.
Must start and end with a digit.
void hwloc_cpuset_from_ulong | ( | hwloc_cpuset_t | set, | |
unsigned long | mask | |||
) |
Setup CPU set set
from unsigned long mask
.
int hwloc_cpuset_intersects | ( | hwloc_const_cpuset_t | set1, | |
hwloc_const_cpuset_t | set2 | |||
) |
Test whether sets set1
and set2
intersects.
int hwloc_cpuset_isequal | ( | hwloc_const_cpuset_t | set1, | |
hwloc_const_cpuset_t | set2 | |||
) |
Test whether set set1
is equal to set set2
.
int hwloc_cpuset_isfull | ( | hwloc_const_cpuset_t | set | ) |
Test whether set set
is full.
int hwloc_cpuset_isincluded | ( | hwloc_const_cpuset_t | sub_set, | |
hwloc_const_cpuset_t | super_set | |||
) |
Test whether set sub_set
is part of set super_set
.
int hwloc_cpuset_isset | ( | hwloc_const_cpuset_t | set, | |
unsigned | cpu | |||
) |
Test whether CPU cpu
is part of set set
.
int hwloc_cpuset_iszero | ( | hwloc_const_cpuset_t | set | ) |
Test whether set set
is zero.
int hwloc_cpuset_last | ( | hwloc_const_cpuset_t | set | ) |
Compute the last CPU (most significant bit) in CPU set set
.
void hwloc_cpuset_orset | ( | hwloc_cpuset_t | set, | |
hwloc_const_cpuset_t | modifier_set | |||
) |
Or set modifier_set
into set set
.
void hwloc_cpuset_set | ( | hwloc_cpuset_t | set, | |
unsigned | cpu | |||
) |
Add CPU cpu
in CPU set set
.
void hwloc_cpuset_set_range | ( | hwloc_cpuset_t | set, | |
unsigned | begincpu, | |||
unsigned | endcpu | |||
) |
Add CPUs from begincpu
to endcpu
in CPU set set
.
void hwloc_cpuset_singlify | ( | hwloc_cpuset_t | set | ) |
Keep a single CPU among those set in CPU set set
.
Might be used before binding so that the process does not have a chance of migrating between multiple logical CPUs in the original mask.
int hwloc_cpuset_snprintf | ( | char *restrict | buf, | |
size_t | buflen, | |||
hwloc_const_cpuset_t | set | |||
) |
Stringify a cpuset.
Up to buflen
characters may be written in buffer buf
.
unsigned long hwloc_cpuset_to_ith_ulong | ( | hwloc_const_cpuset_t | set, | |
int | i | |||
) |
Convert the i
-th subset of CPU set set
into unsigned long mask.
unsigned long hwloc_cpuset_to_ulong | ( | hwloc_const_cpuset_t | set | ) |
Convert the beginning part of CPU set set
into unsigned long mask
.
int hwloc_cpuset_weight | ( | hwloc_const_cpuset_t | set | ) |
Compute the weight of CPU set set
.
void hwloc_cpuset_xorset | ( | hwloc_cpuset_t | set, | |
hwloc_const_cpuset_t | modifier_set | |||
) |
Xor set set
with set modifier_set
.
void hwloc_cpuset_zero | ( | hwloc_cpuset_t | set | ) |
Primitives & macros for building, modifying and consulting "sets" of cpus.
Empty CPU set set