13 #ifndef HWLOC_BITMAP_H
14 #define HWLOC_BITMAP_H
16 #include <hwloc/autogen/config.h>
76 HWLOC_DECLSPEC hwloc_bitmap_t
hwloc_bitmap_dup(hwloc_const_bitmap_t bitmap) __hwloc_attribute_malloc;
79 HWLOC_DECLSPEC
void hwloc_bitmap_copy(hwloc_bitmap_t dst, hwloc_const_bitmap_t src);
95 HWLOC_DECLSPEC
int hwloc_bitmap_snprintf(
char * __hwloc_restrict buf,
size_t buflen, hwloc_const_bitmap_t bitmap);
103 HWLOC_DECLSPEC
int hwloc_bitmap_sscanf(hwloc_bitmap_t bitmap, const
char * __hwloc_restrict
string);
213 HWLOC_DECLSPEC
unsigned long hwloc_bitmap_to_ulong(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
219 HWLOC_DECLSPEC
int hwloc_bitmap_isset(hwloc_const_bitmap_t bitmap,
unsigned id) __hwloc_attribute_pure;
222 HWLOC_DECLSPEC
int hwloc_bitmap_iszero(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
225 HWLOC_DECLSPEC
int hwloc_bitmap_isfull(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
231 HWLOC_DECLSPEC
int hwloc_bitmap_first(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
239 HWLOC_DECLSPEC
int hwloc_bitmap_next(hwloc_const_bitmap_t bitmap,
int prev) __hwloc_attribute_pure;
245 HWLOC_DECLSPEC
int hwloc_bitmap_last(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
252 HWLOC_DECLSPEC
int hwloc_bitmap_weight(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
265 #define hwloc_bitmap_foreach_begin(id, bitmap) \
267 assert(hwloc_bitmap_weight(bitmap) != -1); \
268 for (id = hwloc_bitmap_first(bitmap); \
269 (unsigned) id != (unsigned) -1; \
270 id = hwloc_bitmap_next(bitmap, id)) { \
275 #define hwloc_bitmap_foreach_end() \
288 HWLOC_DECLSPEC
void hwloc_bitmap_or (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
294 HWLOC_DECLSPEC
void hwloc_bitmap_and (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
300 HWLOC_DECLSPEC
void hwloc_bitmap_andnot (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
306 HWLOC_DECLSPEC
void hwloc_bitmap_xor (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
312 HWLOC_DECLSPEC
void hwloc_bitmap_not (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap);
320 HWLOC_DECLSPEC
int hwloc_bitmap_intersects (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
323 HWLOC_DECLSPEC
int hwloc_bitmap_isincluded (hwloc_const_bitmap_t sub_bitmap, hwloc_const_bitmap_t super_bitmap) __hwloc_attribute_pure;
326 HWLOC_DECLSPEC
int hwloc_bitmap_isequal (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
333 HWLOC_DECLSPEC
int hwloc_bitmap_compare_first(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
340 HWLOC_DECLSPEC
int hwloc_bitmap_compare(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;