53 #include <hwloc/autogen/config.h>
54 #include <sys/types.h>
62 #include <hwloc/rename.h>
68 #include <hwloc/bitmap.h>
69 #include <hwloc/cpuset.h>
89 #define HWLOC_API_VERSION 0x00010b06
98 #define HWLOC_COMPONENT_ABI 4
628 struct hwloc_topology;
681 HWLOC_DECLSPEC
int hwloc_topology_dup(hwloc_topology_t *newtopology, hwloc_topology_t oldtopology);
918 HWLOC_DECLSPEC
int hwloc_topology_set_fsroot(hwloc_topology_t __hwloc_restrict topology,
const char * __hwloc_restrict fsroot_path);
975 HWLOC_DECLSPEC
int hwloc_topology_set_xml(hwloc_topology_t __hwloc_restrict topology,
const char * __hwloc_restrict xmlpath);
1003 HWLOC_DECLSPEC
int hwloc_topology_set_xmlbuffer(hwloc_topology_t __hwloc_restrict topology,
const char * __hwloc_restrict buffer,
int size);
1046 unsigned *os_index,
float *distances);
1195 HWLOC_DECLSPEC
unsigned hwloc_topology_get_depth(hwloc_topology_t __hwloc_restrict topology) __hwloc_attribute_pure;
1245 static __hwloc_inline
int
1262 static __hwloc_inline
int
1282 static __hwloc_inline
int
1290 static __hwloc_inline hwloc_obj_t
1294 HWLOC_DECLSPEC hwloc_obj_t
hwloc_get_obj_by_depth (hwloc_topology_t topology,
unsigned depth,
unsigned idx) __hwloc_attribute_pure;
1302 static __hwloc_inline hwloc_obj_t
1309 static __hwloc_inline hwloc_obj_t
1318 static __hwloc_inline hwloc_obj_t
1366 HWLOC_DECLSPEC
int hwloc_obj_attr_snprintf(
char * __hwloc_restrict
string,
size_t size, hwloc_obj_t obj,
const char * __hwloc_restrict separator,
1376 HWLOC_DECLSPEC
int hwloc_obj_cpuset_snprintf(
char * __hwloc_restrict str,
size_t size,
size_t nobj,
const hwloc_obj_t * __hwloc_restrict objs);
1410 void *typeattrp,
size_t typeattrsize);
1427 static __hwloc_inline
const char *
1444 HWLOC_DECLSPEC
void hwloc_obj_add_info(hwloc_obj_t obj,
const char *name,
const char *value);
1574 HWLOC_DECLSPEC
int hwloc_set_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t
set,
int flags);
1581 HWLOC_DECLSPEC
int hwloc_get_cpubind(hwloc_topology_t topology, hwloc_cpuset_t
set,
int flags);
1594 HWLOC_DECLSPEC
int hwloc_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t
set,
int flags);
1607 HWLOC_DECLSPEC
int hwloc_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t
set,
int flags);
1609 #ifdef hwloc_thread_t
1617 HWLOC_DECLSPEC
int hwloc_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t thread, hwloc_const_cpuset_t
set,
int flags);
1620 #ifdef hwloc_thread_t
1628 HWLOC_DECLSPEC
int hwloc_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t thread, hwloc_cpuset_t
set,
int flags);
2200 HWLOC_DECLSPEC
void *
hwloc_alloc(hwloc_topology_t topology,
size_t len);
2237 static __hwloc_inline
void *
2249 static __hwloc_inline
void *
2255 HWLOC_DECLSPEC
int hwloc_free(hwloc_topology_t topology,
void *addr,
size_t len);
2340 HWLOC_DECLSPEC
int hwloc_topology_restrict(hwloc_topology_t __hwloc_restrict topology, hwloc_const_cpuset_t cpuset,
unsigned long flags);
2375 HWLOC_DECLSPEC
int hwloc_custom_insert_topology(hwloc_topology_t newtopology, hwloc_obj_t newparent, hwloc_topology_t oldtopology, hwloc_obj_t oldroot);
2472 void (*export_cb)(
void *reserved, hwloc_topology_t topology, hwloc_obj_t obj));
2499 HWLOC_DECLSPEC
int hwloc_export_obj_userdata(
void *reserved, hwloc_topology_t topology, hwloc_obj_t obj,
const char *name,
const void *buffer,
size_t length);
2514 HWLOC_DECLSPEC
int hwloc_export_obj_userdata_base64(
void *reserved, hwloc_topology_t topology, hwloc_obj_t obj,
const char *name,
const void *buffer,
size_t length);
2539 void (*import_cb)(hwloc_topology_t topology, hwloc_obj_t obj,
const char *name,
const void *buffer,
size_t length));
2599 #include <hwloc/helper.h>
2602 #include <hwloc/inlines.h>
2605 #include <hwloc/diff.h>
2608 #include <hwloc/deprecated.h>