-
+
@@ -233,396 +233,402 @@
669#ifndef HWLOC_HAVE_32BITS_PCI_DOMAIN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
688#ifndef HWLOC_HAVE_32BITS_PCI_DOMAIN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
722struct hwloc_topology;
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
700#ifndef HWLOC_HAVE_32BITS_PCI_DOMAIN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
908static __hwloc_inline
int
-
-
-
924static __hwloc_inline
int
-
-
-
-
-
-
-
950static __hwloc_inline
int
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1053 hwloc_obj_t obj,
const char * __hwloc_restrict separator,
+
737struct hwloc_topology;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
923static __hwloc_inline
int
+
+
+
939static __hwloc_inline
int
+
+
+
+
+
+
+
965static __hwloc_inline
int
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
1126static __hwloc_inline
const char *
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
1068 hwloc_obj_t obj,
const char * __hwloc_restrict separator,
+
+
+
+
+
+
+
+
+
+
+
1141static __hwloc_inline
const char *
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
1322#ifdef hwloc_thread_t
-
-
-
-
1335#ifdef hwloc_thread_t
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
1337#ifdef hwloc_thread_t
+
+
+
+
1350#ifdef hwloc_thread_t
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
1837static __hwloc_inline
void *
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1852static __hwloc_inline
void *
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2784#include "hwloc/helper.h"
-
-
-
2787#include "hwloc/inlines.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
2790#include "hwloc/memattrs.h"
-
-
-
2793#include "hwloc/cpukinds.h"
-
-
-
2796#include "hwloc/export.h"
+
+
+
+
-
-
2799#include "hwloc/distances.h"
+
+
2799#include "hwloc/helper.h"
-
-
2802#include "hwloc/diff.h"
+
+
2802#include "hwloc/inlines.h"
-
-
2805#include "hwloc/deprecated.h"
+
+
2805#include "hwloc/memattrs.h"
-
+
+
2808#include "hwloc/cpukinds.h"
+
+
+
2811#include "hwloc/export.h"
+
+
+
2814#include "hwloc/distances.h"
+
+
+
2817#include "hwloc/diff.h"
+
+
+
2820#include "hwloc/deprecated.h"
+
+
unsigned hwloc_get_api_version(void)
Indicate at runtime which hwloc API version was used at build time.
hwloc_const_bitmap_t hwloc_const_cpuset_t
A non-modifiable hwloc_cpuset_t.
Definition: hwloc.h:163
hwloc_const_bitmap_t hwloc_const_nodeset_t
A non-modifiable hwloc_nodeset_t.
Definition: hwloc.h:181
@@ -671,7 +677,7 @@
int hwloc_topology_init(hwloc_topology_t *topologyp)
Allocate a topology context.
int hwloc_topology_abi_check(hwloc_topology_t topology)
Verify that the topology is compatible with the current hwloc library.
int hwloc_topology_dup(hwloc_topology_t *newtopology, hwloc_topology_t oldtopology)
Duplicate a topology.
-
struct hwloc_topology * hwloc_topology_t
Topology context.
Definition: hwloc.h:727
+
struct hwloc_topology * hwloc_topology_t
Topology context.
Definition: hwloc.h:742
void hwloc_topology_destroy(hwloc_topology_t topology)
Terminate and free a topology context.
int hwloc_topology_load(hwloc_topology_t topology)
Build the actual topology.
void hwloc_topology_check(hwloc_topology_t topology)
Run internal checks on a topology structure.
@@ -688,15 +694,15 @@
static hwloc_obj_t hwloc_get_next_obj_by_depth(hwloc_topology_t topology, int depth, hwloc_obj_t prev)
Returns the next object at depth depth.
int hwloc_topology_get_depth(hwloc_topology_t restrict topology)
Get the depth of the hierarchical tree of objects.
int hwloc_get_memory_parents_depth(hwloc_topology_t topology)
Return the depth of parents where memory objects are attached.
-
hwloc_get_type_depth_e
Definition: hwloc.h:863
-
@ HWLOC_TYPE_DEPTH_UNKNOWN
No object of given type exists in the topology.
Definition: hwloc.h:864
-
@ HWLOC_TYPE_DEPTH_NUMANODE
Virtual depth for NUMA nodes.
Definition: hwloc.h:866
-
@ HWLOC_TYPE_DEPTH_MEMCACHE
Virtual depth for MemCache object.
Definition: hwloc.h:871
-
@ HWLOC_TYPE_DEPTH_MISC
Virtual depth for Misc object.
Definition: hwloc.h:870
-
@ HWLOC_TYPE_DEPTH_PCI_DEVICE
Virtual depth for PCI device object level.
Definition: hwloc.h:868
-
@ HWLOC_TYPE_DEPTH_MULTIPLE
Objects of given type exist at different depth in the topology (only for Groups).
Definition: hwloc.h:865
-
@ HWLOC_TYPE_DEPTH_BRIDGE
Virtual depth for bridge object level.
Definition: hwloc.h:867
-
@ HWLOC_TYPE_DEPTH_OS_DEVICE
Virtual depth for software device object level.
Definition: hwloc.h:869
+
hwloc_get_type_depth_e
Definition: hwloc.h:878
+
@ HWLOC_TYPE_DEPTH_UNKNOWN
No object of given type exists in the topology.
Definition: hwloc.h:879
+
@ HWLOC_TYPE_DEPTH_NUMANODE
Virtual depth for NUMA nodes.
Definition: hwloc.h:881
+
@ HWLOC_TYPE_DEPTH_MEMCACHE
Virtual depth for MemCache object.
Definition: hwloc.h:886
+
@ HWLOC_TYPE_DEPTH_MISC
Virtual depth for Misc object.
Definition: hwloc.h:885
+
@ HWLOC_TYPE_DEPTH_PCI_DEVICE
Virtual depth for PCI device object level.
Definition: hwloc.h:883
+
@ HWLOC_TYPE_DEPTH_MULTIPLE
Objects of given type exist at different depth in the topology (only for Groups).
Definition: hwloc.h:880
+
@ HWLOC_TYPE_DEPTH_BRIDGE
Virtual depth for bridge object level.
Definition: hwloc.h:882
+
@ HWLOC_TYPE_DEPTH_OS_DEVICE
Virtual depth for software device object level.
Definition: hwloc.h:884
int hwloc_type_sscanf(const char *string, hwloc_obj_type_t *typep, union hwloc_obj_attr_u *attrp, size_t attrsize)
Return an object type and attributes from a type string.
int hwloc_type_sscanf_as_depth(const char *string, hwloc_obj_type_t *typep, hwloc_topology_t topology, int *depthp)
Return an object type and its level depth from a type string.
const char * hwloc_obj_type_string(hwloc_obj_type_t type)
Return a constant stringified object type.
@@ -704,7 +710,7 @@
int hwloc_obj_type_snprintf(char *restrict string, size_t size, hwloc_obj_t obj, int verbose)
Stringify the type of a given topology object into a human-readable form.
static const char * hwloc_obj_get_info_by_name(hwloc_obj_t obj, const char *name)
Search the given name in object infos and return the corresponding value.
int hwloc_obj_add_info(hwloc_obj_t obj, const char *name, const char *value)
Add the given name and value pair to the given object info attributes.
-
hwloc_cpubind_flags_t
Process/Thread binding flags.
Definition: hwloc.h:1218
+
hwloc_cpubind_flags_t
Process/Thread binding flags.
Definition: hwloc.h:1233
int hwloc_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int flags)
Bind a process pid on CPUs given in physical bitmap set.
int hwloc_set_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t set, int flags)
Bind current process or thread on CPUs given in physical bitmap set.
int hwloc_get_proc_last_cpu_location(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int flags)
Get the last physical CPU where a process ran.
@@ -713,10 +719,10 @@
int hwloc_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t thread, hwloc_const_cpuset_t set, int flags)
Bind a thread thread on CPUs given in physical bitmap set.
int hwloc_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t thread, hwloc_cpuset_t set, int flags)
Get the current physical binding of thread tid.
int hwloc_get_last_cpu_location(hwloc_topology_t topology, hwloc_cpuset_t set, int flags)
Get the last physical CPU where the current process or thread ran.
-
@ HWLOC_CPUBIND_PROCESS
Bind all threads of the current (possibly) multithreaded process.
Definition: hwloc.h:1221
-
@ HWLOC_CPUBIND_NOMEMBIND
Avoid any effect on memory binding.
Definition: hwloc.h:1267
-
@ HWLOC_CPUBIND_STRICT
Request for strict binding from the OS.
Definition: hwloc.h:1250
-
@ HWLOC_CPUBIND_THREAD
Bind current thread of current process.
Definition: hwloc.h:1225
+
@ HWLOC_CPUBIND_PROCESS
Bind all threads of the current (possibly) multithreaded process.
Definition: hwloc.h:1236
+
@ HWLOC_CPUBIND_NOMEMBIND
Avoid any effect on memory binding.
Definition: hwloc.h:1282
+
@ HWLOC_CPUBIND_STRICT
Request for strict binding from the OS.
Definition: hwloc.h:1265
+
@ HWLOC_CPUBIND_THREAD
Bind current thread of current process.
Definition: hwloc.h:1240
int hwloc_set_membind(hwloc_topology_t topology, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags)
Set the default memory binding policy of the current process or thread to prefer the NUMA node(s) spe...
int hwloc_get_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_bitmap_t set, hwloc_membind_policy_t *policy, int flags)
Query the default memory binding policy and physical locality of the specified process.
int hwloc_free(hwloc_topology_t topology, void *addr, size_t len)
Free memory that was previously allocated by hwloc_alloc() or hwloc_alloc_membind().
@@ -724,31 +730,31 @@
static void * hwloc_alloc_membind_policy(hwloc_topology_t topology, size_t len, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags)
Allocate some memory on NUMA memory nodes specified by set.
void * hwloc_alloc(hwloc_topology_t topology, size_t len)
Allocate some memory.
int hwloc_get_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_bitmap_t set, hwloc_membind_policy_t *policy, int flags)
Query the CPUs near the physical NUMA node(s) and binding policy of the memory identified by (addr,...
-
hwloc_membind_flags_t
Memory binding flags.
Definition: hwloc.h:1545
+
hwloc_membind_flags_t
Memory binding flags.
Definition: hwloc.h:1560
int hwloc_set_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags)
Set the default memory binding policy of the specified process to prefer the NUMA node(s) specified b...
-
hwloc_membind_policy_t
Memory binding policy.
Definition: hwloc.h:1476
+
hwloc_membind_policy_t
Memory binding policy.
Definition: hwloc.h:1491
void * hwloc_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags)
Allocate some memory on NUMA memory nodes specified by set.
int hwloc_get_membind(hwloc_topology_t topology, hwloc_bitmap_t set, hwloc_membind_policy_t *policy, int flags)
Query the default memory binding policy and physical locality of the current process or thread.
int hwloc_set_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_bitmap_t set, hwloc_membind_policy_t policy, int flags)
Bind the already-allocated memory identified by (addr, len) to the NUMA node(s) specified by set.
-
@ HWLOC_MEMBIND_STRICT
Definition: hwloc.h:1563
-
@ HWLOC_MEMBIND_PROCESS
Set policy for all threads of the specified (possibly multithreaded) process. This flag is mutually e...
Definition: hwloc.h:1550
-
@ HWLOC_MEMBIND_THREAD
Set policy for a specific thread of the current process. This flag is mutually exclusive with HWLOC_M...
Definition: hwloc.h:1555
-
@ HWLOC_MEMBIND_BYNODESET
Consider the bitmap argument as a nodeset.
Definition: hwloc.h:1593
-
@ HWLOC_MEMBIND_MIGRATE
Migrate existing allocated memory. If the memory cannot be migrated and the HWLOC_MEMBIND_STRICT flag...
Definition: hwloc.h:1569
-
@ HWLOC_MEMBIND_NOCPUBIND
Avoid any effect on CPU binding.
Definition: hwloc.h:1582
-
@ HWLOC_MEMBIND_DEFAULT
Reset the memory allocation policy to the system default. Depending on the operating system,...
Definition: hwloc.h:1484
-
@ HWLOC_MEMBIND_MIXED
Returned by get_membind() functions when multiple threads or parts of a memory area have differing me...
Definition: hwloc.h:1529
-
@ HWLOC_MEMBIND_FIRSTTOUCH
Allocate each memory page individually on the local NUMA node of the thread that touches it.
Definition: hwloc.h:1495
-
@ HWLOC_MEMBIND_BIND
Allocate memory on the specified nodes.
Definition: hwloc.h:1505
-
@ HWLOC_MEMBIND_INTERLEAVE
Allocate memory on the given nodes in an interleaved / round-robin manner. The precise layout of the ...
Definition: hwloc.h:1514
-
@ HWLOC_MEMBIND_NEXTTOUCH
For each page bound with this policy, by next time it is touched (and next time only),...
Definition: hwloc.h:1521
+
@ HWLOC_MEMBIND_STRICT
Definition: hwloc.h:1578
+
@ HWLOC_MEMBIND_PROCESS
Set policy for all threads of the specified (possibly multithreaded) process. This flag is mutually e...
Definition: hwloc.h:1565
+
@ HWLOC_MEMBIND_THREAD
Set policy for a specific thread of the current process. This flag is mutually exclusive with HWLOC_M...
Definition: hwloc.h:1570
+
@ HWLOC_MEMBIND_BYNODESET
Consider the bitmap argument as a nodeset.
Definition: hwloc.h:1608
+
@ HWLOC_MEMBIND_MIGRATE
Migrate existing allocated memory. If the memory cannot be migrated and the HWLOC_MEMBIND_STRICT flag...
Definition: hwloc.h:1584
+
@ HWLOC_MEMBIND_NOCPUBIND
Avoid any effect on CPU binding.
Definition: hwloc.h:1597
+
@ HWLOC_MEMBIND_DEFAULT
Reset the memory allocation policy to the system default. Depending on the operating system,...
Definition: hwloc.h:1499
+
@ HWLOC_MEMBIND_MIXED
Returned by get_membind() functions when multiple threads or parts of a memory area have differing me...
Definition: hwloc.h:1544
+
@ HWLOC_MEMBIND_FIRSTTOUCH
Allocate each memory page individually on the local NUMA node of the thread that touches it.
Definition: hwloc.h:1510
+
@ HWLOC_MEMBIND_BIND
Allocate memory on the specified nodes.
Definition: hwloc.h:1520
+
@ HWLOC_MEMBIND_INTERLEAVE
Allocate memory on the given nodes in an interleaved / round-robin manner. The precise layout of the ...
Definition: hwloc.h:1529
+
@ HWLOC_MEMBIND_NEXTTOUCH
For each page bound with this policy, by next time it is touched (and next time only),...
Definition: hwloc.h:1536
int hwloc_topology_set_xmlbuffer(hwloc_topology_t restrict topology, const char *restrict buffer, int size)
Enable XML based topology using a memory buffer (instead of a file, as with hwloc_topology_set_xml())...
int hwloc_topology_set_pid(hwloc_topology_t restrict topology, hwloc_pid_t pid)
Change which process the topology is viewed from.
int hwloc_topology_set_synthetic(hwloc_topology_t restrict topology, const char *restrict description)
Enable synthetic topology.
int hwloc_topology_set_xml(hwloc_topology_t restrict topology, const char *restrict xmlpath)
Enable XML-file based topology.
-
hwloc_topology_components_flag_e
Flags to be passed to hwloc_topology_set_components()
Definition: hwloc.h:1995
+
hwloc_topology_components_flag_e
Flags to be passed to hwloc_topology_set_components()
Definition: hwloc.h:2010
int hwloc_topology_set_components(hwloc_topology_t restrict topology, unsigned long flags, const char *restrict name)
Prevent a discovery component from being used for a topology.
-
@ HWLOC_TOPOLOGY_COMPONENTS_FLAG_BLACKLIST
Blacklist the target component from being used.
Definition: hwloc.h:1999
+
@ HWLOC_TOPOLOGY_COMPONENTS_FLAG_BLACKLIST
Blacklist the target component from being used.
Definition: hwloc.h:2014
unsigned long hwloc_topology_get_flags(hwloc_topology_t topology)
Get OR'ed flags of a topology.
int hwloc_topology_set_io_types_filter(hwloc_topology_t topology, enum hwloc_type_filter_e filter)
Set the filtering for all I/O object types.
int hwloc_topology_get_type_filter(hwloc_topology_t topology, hwloc_obj_type_t type, enum hwloc_type_filter_e *filter)
Get the current filtering for the given object type.
@@ -756,45 +762,45 @@
int hwloc_topology_set_cache_types_filter(hwloc_topology_t topology, enum hwloc_type_filter_e filter)
Set the filtering for all CPU cache object types.
int hwloc_topology_set_icache_types_filter(hwloc_topology_t topology, enum hwloc_type_filter_e filter)
Set the filtering for all CPU instruction cache object types.
int hwloc_topology_is_thissystem(hwloc_topology_t restrict topology)
Does the topology context come from this system?
-
hwloc_type_filter_e
Type filtering flags.
Definition: hwloc.h:2395
+
hwloc_type_filter_e
Type filtering flags.
Definition: hwloc.h:2410
int hwloc_topology_set_all_types_filter(hwloc_topology_t topology, enum hwloc_type_filter_e filter)
Set the filtering for all object types.
int hwloc_topology_set_flags(hwloc_topology_t topology, unsigned long flags)
Set OR'ed flags to non-yet-loaded topology.
const struct hwloc_topology_support * hwloc_topology_get_support(hwloc_topology_t restrict topology)
Retrieve the topology support.
void * hwloc_topology_get_userdata(hwloc_topology_t topology)
Retrieve the topology-specific userdata pointer.
int hwloc_topology_set_type_filter(hwloc_topology_t topology, hwloc_obj_type_t type, enum hwloc_type_filter_e filter)
Set the filtering for the given object type.
-
hwloc_topology_flags_e
Flags to be set onto a topology context before load.
Definition: hwloc.h:2039
-
@ HWLOC_TYPE_FILTER_KEEP_NONE
Ignore all objects of this type.
Definition: hwloc.h:2409
-
@ HWLOC_TYPE_FILTER_KEEP_IMPORTANT
Only keep likely-important objects of the given type.
Definition: hwloc.h:2438
-
@ HWLOC_TYPE_FILTER_KEEP_STRUCTURE
Only ignore objects if their entire level does not bring any structure.
Definition: hwloc.h:2423
-
@ HWLOC_TYPE_FILTER_KEEP_ALL
Keep all objects of this type.
Definition: hwloc.h:2401
-
@ HWLOC_TOPOLOGY_FLAG_INCLUDE_DISALLOWED
Detect the whole system, ignore reservations, include disallowed objects.
Definition: hwloc.h:2061
-
@ HWLOC_TOPOLOGY_FLAG_THISSYSTEM_ALLOWED_RESOURCES
Get the set of allowed resources from the local operating system even if the topology was loaded from...
Definition: hwloc.h:2102
-
@ HWLOC_TOPOLOGY_FLAG_NO_CPUKINDS
Ignore CPU Kinds.
Definition: hwloc.h:2208
-
@ HWLOC_TOPOLOGY_FLAG_RESTRICT_TO_MEMBINDING
Do not consider resources outside of the process memory binding.
Definition: hwloc.h:2173
-
@ HWLOC_TOPOLOGY_FLAG_NO_DISTANCES
Ignore distances.
Definition: hwloc.h:2195
-
@ HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM
Assume that the selected backend provides the topology for the system on which we are running.
Definition: hwloc.h:2081
-
@ HWLOC_TOPOLOGY_FLAG_RESTRICT_TO_CPUBINDING
Do not consider resources outside of the process CPU binding.
Definition: hwloc.h:2151
-
@ HWLOC_TOPOLOGY_FLAG_NO_MEMATTRS
Ignore memory attributes and tiers.
Definition: hwloc.h:2202
-
@ HWLOC_TOPOLOGY_FLAG_IMPORT_SUPPORT
Import support from the imported topology.
Definition: hwloc.h:2126
-
@ HWLOC_TOPOLOGY_FLAG_DONT_CHANGE_BINDING
Do not ever modify the process or thread binding during discovery.
Definition: hwloc.h:2188
+
hwloc_topology_flags_e
Flags to be set onto a topology context before load.
Definition: hwloc.h:2054
+
@ HWLOC_TYPE_FILTER_KEEP_NONE
Ignore all objects of this type.
Definition: hwloc.h:2424
+
@ HWLOC_TYPE_FILTER_KEEP_IMPORTANT
Only keep likely-important objects of the given type.
Definition: hwloc.h:2453
+
@ HWLOC_TYPE_FILTER_KEEP_STRUCTURE
Only ignore objects if their entire level does not bring any structure.
Definition: hwloc.h:2438
+
@ HWLOC_TYPE_FILTER_KEEP_ALL
Keep all objects of this type.
Definition: hwloc.h:2416
+
@ HWLOC_TOPOLOGY_FLAG_INCLUDE_DISALLOWED
Detect the whole system, ignore reservations, include disallowed objects.
Definition: hwloc.h:2076
+
@ HWLOC_TOPOLOGY_FLAG_THISSYSTEM_ALLOWED_RESOURCES
Get the set of allowed resources from the local operating system even if the topology was loaded from...
Definition: hwloc.h:2117
+
@ HWLOC_TOPOLOGY_FLAG_NO_CPUKINDS
Ignore CPU Kinds.
Definition: hwloc.h:2223
+
@ HWLOC_TOPOLOGY_FLAG_RESTRICT_TO_MEMBINDING
Do not consider resources outside of the process memory binding.
Definition: hwloc.h:2188
+
@ HWLOC_TOPOLOGY_FLAG_NO_DISTANCES
Ignore distances.
Definition: hwloc.h:2210
+
@ HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM
Assume that the selected backend provides the topology for the system on which we are running.
Definition: hwloc.h:2096
+
@ HWLOC_TOPOLOGY_FLAG_RESTRICT_TO_CPUBINDING
Do not consider resources outside of the process CPU binding.
Definition: hwloc.h:2166
+
@ HWLOC_TOPOLOGY_FLAG_NO_MEMATTRS
Ignore memory attributes and tiers.
Definition: hwloc.h:2217
+
@ HWLOC_TOPOLOGY_FLAG_IMPORT_SUPPORT
Import support from the imported topology.
Definition: hwloc.h:2141
+
@ HWLOC_TOPOLOGY_FLAG_DONT_CHANGE_BINDING
Do not ever modify the process or thread binding during discovery.
Definition: hwloc.h:2203
hwloc_obj_t hwloc_topology_insert_group_object(hwloc_topology_t topology, hwloc_obj_t group)
Add more structure to the topology by adding an intermediate Group.
-
hwloc_allow_flags_e
Flags to be given to hwloc_topology_allow().
Definition: hwloc.h:2586
+
hwloc_allow_flags_e
Flags to be given to hwloc_topology_allow().
Definition: hwloc.h:2601
hwloc_obj_t hwloc_topology_alloc_group_object(hwloc_topology_t topology)
Allocate a Group object to insert later with hwloc_topology_insert_group_object().
int hwloc_topology_refresh(hwloc_topology_t topology)
Refresh internal structures after topology modification.
int hwloc_topology_restrict(hwloc_topology_t restrict topology, hwloc_const_bitmap_t set, unsigned long flags)
Restrict the topology to the given CPU set or nodeset.
-
hwloc_restrict_flags_e
Flags to be given to hwloc_topology_restrict().
Definition: hwloc.h:2514
+
hwloc_restrict_flags_e
Flags to be given to hwloc_topology_restrict().
Definition: hwloc.h:2529
int hwloc_topology_free_group_object(hwloc_topology_t topology, hwloc_obj_t group)
Free a group object allocated with hwloc_topology_alloc_group_object().
int hwloc_obj_add_other_obj_sets(hwloc_obj_t dst, hwloc_obj_t src)
Setup object cpusets/nodesets by OR'ing another object's sets.
hwloc_obj_t hwloc_topology_insert_misc_object(hwloc_topology_t topology, hwloc_obj_t parent, const char *name)
Add a MISC object as a leaf of the topology.
int hwloc_topology_allow(hwloc_topology_t restrict topology, hwloc_const_cpuset_t cpuset, hwloc_const_nodeset_t nodeset, unsigned long flags)
Change the sets of allowed PUs and NUMA nodes in the topology.
-
@ HWLOC_ALLOW_FLAG_CUSTOM
Allow a custom set of objects, given to hwloc_topology_allow() as cpuset and/or nodeset parameters.
Definition: hwloc.h:2604
-
@ HWLOC_ALLOW_FLAG_LOCAL_RESTRICTIONS
Only allow objects that are available to the current process.
Definition: hwloc.h:2600
-
@ HWLOC_ALLOW_FLAG_ALL
Mark all objects as allowed in the topology.
Definition: hwloc.h:2591
-
@ HWLOC_RESTRICT_FLAG_ADAPT_MISC
Move Misc objects to ancestors if their parents are removed during restriction. If this flag is not s...
Definition: hwloc.h:2539
-
@ HWLOC_RESTRICT_FLAG_REMOVE_CPULESS
Remove all objects that became CPU-less. By default, only objects that contain no PU and no memory ar...
Definition: hwloc.h:2520
-
@ HWLOC_RESTRICT_FLAG_ADAPT_IO
Move I/O objects to ancestors if their parents are removed during restriction. If this flag is not se...
Definition: hwloc.h:2545
-
@ HWLOC_RESTRICT_FLAG_BYNODESET
Restrict by nodeset instead of CPU set. Only keep objects whose nodeset is included or partially incl...
Definition: hwloc.h:2526
-
@ HWLOC_RESTRICT_FLAG_REMOVE_MEMLESS
Remove all objects that became Memory-less. By default, only objects that contain no PU and no memory...
Definition: hwloc.h:2533
+
@ HWLOC_ALLOW_FLAG_CUSTOM
Allow a custom set of objects, given to hwloc_topology_allow() as cpuset and/or nodeset parameters.
Definition: hwloc.h:2619
+
@ HWLOC_ALLOW_FLAG_LOCAL_RESTRICTIONS
Only allow objects that are available to the current process.
Definition: hwloc.h:2615
+
@ HWLOC_ALLOW_FLAG_ALL
Mark all objects as allowed in the topology.
Definition: hwloc.h:2606
+
@ HWLOC_RESTRICT_FLAG_ADAPT_MISC
Move Misc objects to ancestors if their parents are removed during restriction. If this flag is not s...
Definition: hwloc.h:2554
+
@ HWLOC_RESTRICT_FLAG_REMOVE_CPULESS
Remove all objects that became CPU-less. By default, only objects that contain no PU and no memory ar...
Definition: hwloc.h:2535
+
@ HWLOC_RESTRICT_FLAG_ADAPT_IO
Move I/O objects to ancestors if their parents are removed during restriction. If this flag is not se...
Definition: hwloc.h:2560
+
@ HWLOC_RESTRICT_FLAG_BYNODESET
Restrict by nodeset instead of CPU set. Only keep objects whose nodeset is included or partially incl...
Definition: hwloc.h:2541
+
@ HWLOC_RESTRICT_FLAG_REMOVE_MEMLESS
Remove all objects that became Memory-less. By default, only objects that contain no PU and no memory...
Definition: hwloc.h:2548
struct hwloc_bitmap_s * hwloc_bitmap_t
Set of bits represented as an opaque pointer to an internal bitmap.
Definition: bitmap.h:69
const struct hwloc_bitmap_s * hwloc_const_bitmap_t
a non-modifiable hwloc_bitmap_t
Definition: bitmap.h:71
Structure of a topology object.
Definition: hwloc.h:431
@@ -857,74 +863,74 @@
unsigned depth
Depth of group object. It may change if intermediate Group objects are added.
Definition: hwloc.h:661
unsigned char dont_merge
Flag preventing groups from being automatically merged with identical parent or children.
Definition: hwloc.h:665
PCI Device specific Object Attributes.
Definition: hwloc.h:668
-
unsigned char revision
Definition: hwloc.h:677
-
unsigned short device_id
Definition: hwloc.h:676
-
unsigned char dev
Definition: hwloc.h:674
-
unsigned short subvendor_id
Definition: hwloc.h:676
-
float linkspeed
Definition: hwloc.h:678
-
unsigned char func
Definition: hwloc.h:674
-
unsigned short domain
Definition: hwloc.h:670
-
unsigned short vendor_id
Definition: hwloc.h:676
-
unsigned char bus
Definition: hwloc.h:674
-
unsigned short subdevice_id
Definition: hwloc.h:676
-
unsigned short class_id
Definition: hwloc.h:675
-
Bridge specific Object Attributes.
Definition: hwloc.h:681
-
hwloc_obj_bridge_type_t upstream_type
Definition: hwloc.h:685
-
unsigned short domain
Definition: hwloc.h:689
-
unsigned depth
Definition: hwloc.h:697
+
unsigned char revision
Revision number.
Definition: hwloc.h:684
+
unsigned short device_id
Device ID (yyyy in [xxxx:yyyy]).
Definition: hwloc.h:681
+
unsigned char dev
Device number (zz in the PCI BDF notation xxxx:yy:zz.t).
Definition: hwloc.h:677
+
unsigned short subvendor_id
Sub-Vendor ID.
Definition: hwloc.h:682
+
float linkspeed
Link speed in GB/s. This datarate is the currently configured speed of the entire PCI link (sum of th...
Definition: hwloc.h:685
+
unsigned char func
Function number (t in the PCI BDF notation xxxx:yy:zz.t).
Definition: hwloc.h:678
+
unsigned short domain
Domain number (xxxx in the PCI BDF notation xxxx:yy:zz.t). Only 16bits PCI domains are supported by d...
Definition: hwloc.h:670
+
unsigned short vendor_id
Vendor ID (xxxx in [xxxx:yyyy]).
Definition: hwloc.h:680
+
unsigned char bus
Bus number (yy in the PCI BDF notation xxxx:yy:zz.t).
Definition: hwloc.h:676
+
unsigned short subdevice_id
Sub-Device ID.
Definition: hwloc.h:683
+
unsigned short class_id
The class number (first two bytes, without the prog_if).
Definition: hwloc.h:679
+
Bridge specific Object Attributes.
Definition: hwloc.h:693
+
hwloc_obj_bridge_type_t upstream_type
Upstream Bridge type.
Definition: hwloc.h:697
+
unsigned short domain
Domain number the downstream PCI buses. Only 16bits PCI domains are supported by default.
Definition: hwloc.h:701
+
unsigned depth
Definition: hwloc.h:712
union hwloc_obj_attr_u::hwloc_bridge_attr_s::@2 upstream
-
struct hwloc_pcidev_attr_s pci
Definition: hwloc.h:683
+
struct hwloc_pcidev_attr_s pci
PCI attribute of the upstream part as a PCI device.
Definition: hwloc.h:695
union hwloc_obj_attr_u::hwloc_bridge_attr_s::@3 downstream
-
hwloc_obj_bridge_type_t downstream_type
Definition: hwloc.h:696
-
unsigned char secondary_bus
Definition: hwloc.h:693
-
unsigned char subordinate_bus
Definition: hwloc.h:693
-
OS Device specific Object Attributes.
Definition: hwloc.h:700
-
hwloc_obj_osdev_type_t type
Definition: hwloc.h:701
-
Object info attribute (name and value strings)
Definition: hwloc.h:709
-
char * name
Info name.
Definition: hwloc.h:710
-
char * value
Info value.
Definition: hwloc.h:711
-
Flags describing actual discovery support for this topology.
Definition: hwloc.h:2252
-
unsigned char numa
Detecting the number of NUMA nodes is supported.
Definition: hwloc.h:2256
-
unsigned char disallowed_numa
Detecting and identifying NUMA nodes that are not available to the current process is supported.
Definition: hwloc.h:2262
-
unsigned char cpukind_efficiency
Detecting the efficiency of CPU kinds is supported, see Kinds of CPU cores.
Definition: hwloc.h:2264
-
unsigned char pu
Detecting the number of PU objects is supported.
Definition: hwloc.h:2254
-
unsigned char numa_memory
Detecting the amount of memory in NUMA nodes is supported.
Definition: hwloc.h:2258
-
unsigned char disallowed_pu
Detecting and identifying PU objects that are not available to the current process is supported.
Definition: hwloc.h:2260
-
Flags describing actual PU binding support for this topology.
Definition: hwloc.h:2272
-
unsigned char get_proc_last_cpu_location
Definition: hwloc.h:2292
-
unsigned char set_thread_cpubind
Definition: hwloc.h:2286
-
unsigned char set_thisthread_cpubind
Definition: hwloc.h:2282
-
unsigned char get_thisthread_last_cpu_location
Definition: hwloc.h:2294
-
unsigned char get_thisproc_cpubind
Definition: hwloc.h:2276
-
unsigned char get_thisthread_cpubind
Definition: hwloc.h:2284
-
unsigned char get_thread_cpubind
Definition: hwloc.h:2288
-
unsigned char set_thisproc_cpubind
Definition: hwloc.h:2274
-
unsigned char set_proc_cpubind
Definition: hwloc.h:2278
-
unsigned char get_proc_cpubind
Definition: hwloc.h:2280
-
unsigned char get_thisproc_last_cpu_location
Definition: hwloc.h:2290
-
Flags describing actual memory binding support for this topology.
Definition: hwloc.h:2302
-
unsigned char set_thisthread_membind
Definition: hwloc.h:2312
-
unsigned char get_area_membind
Definition: hwloc.h:2318
-
unsigned char firsttouch_membind
Definition: hwloc.h:2322
-
unsigned char get_area_memlocation
Definition: hwloc.h:2332
-
unsigned char set_thisproc_membind
Definition: hwloc.h:2304
-
unsigned char interleave_membind
Definition: hwloc.h:2326
-
unsigned char get_thisproc_membind
Definition: hwloc.h:2306
-
unsigned char set_area_membind
Definition: hwloc.h:2316
-
unsigned char get_thisthread_membind
Definition: hwloc.h:2314
-
unsigned char set_proc_membind
Definition: hwloc.h:2308
-
unsigned char get_proc_membind
Definition: hwloc.h:2310
-
unsigned char migrate_membind
Definition: hwloc.h:2330
-
unsigned char nexttouch_membind
Definition: hwloc.h:2328
-
unsigned char alloc_membind
Definition: hwloc.h:2320
-
unsigned char bind_membind
Definition: hwloc.h:2324
-
Flags describing miscellaneous features.
Definition: hwloc.h:2337
-
unsigned char imported_support
Definition: hwloc.h:2339
-
Set of flags describing actual support for this topology.
Definition: hwloc.h:2348
-
struct hwloc_topology_misc_support * misc
Definition: hwloc.h:2352
-
struct hwloc_topology_membind_support * membind
Definition: hwloc.h:2351
-
struct hwloc_topology_cpubind_support * cpubind
Definition: hwloc.h:2350
-
struct hwloc_topology_discovery_support * discovery
Definition: hwloc.h:2349
+
hwloc_obj_bridge_type_t downstream_type
Downstream Bridge type.
Definition: hwloc.h:711
+
unsigned char secondary_bus
First PCI bus number below the bridge.
Definition: hwloc.h:707
+
unsigned char subordinate_bus
Highest PCI bus number below the bridge.
Definition: hwloc.h:708
+
OS Device specific Object Attributes.
Definition: hwloc.h:715
+
hwloc_obj_osdev_type_t type
Definition: hwloc.h:716
+
Object info attribute (name and value strings)
Definition: hwloc.h:724
+
char * name
Info name.
Definition: hwloc.h:725
+
char * value
Info value.
Definition: hwloc.h:726
+
Flags describing actual discovery support for this topology.
Definition: hwloc.h:2267
+
unsigned char numa
Detecting the number of NUMA nodes is supported.
Definition: hwloc.h:2271
+
unsigned char disallowed_numa
Detecting and identifying NUMA nodes that are not available to the current process is supported.
Definition: hwloc.h:2277
+
unsigned char cpukind_efficiency
Detecting the efficiency of CPU kinds is supported, see Kinds of CPU cores.
Definition: hwloc.h:2279
+
unsigned char pu
Detecting the number of PU objects is supported.
Definition: hwloc.h:2269
+
unsigned char numa_memory
Detecting the amount of memory in NUMA nodes is supported.
Definition: hwloc.h:2273
+
unsigned char disallowed_pu
Detecting and identifying PU objects that are not available to the current process is supported.
Definition: hwloc.h:2275
+
Flags describing actual PU binding support for this topology.
Definition: hwloc.h:2287
+
unsigned char get_proc_last_cpu_location
Definition: hwloc.h:2307
+
unsigned char set_thread_cpubind
Definition: hwloc.h:2301
+
unsigned char set_thisthread_cpubind
Definition: hwloc.h:2297
+
unsigned char get_thisthread_last_cpu_location
Definition: hwloc.h:2309
+
unsigned char get_thisproc_cpubind
Definition: hwloc.h:2291
+
unsigned char get_thisthread_cpubind
Definition: hwloc.h:2299
+
unsigned char get_thread_cpubind
Definition: hwloc.h:2303
+
unsigned char set_thisproc_cpubind
Definition: hwloc.h:2289
+
unsigned char set_proc_cpubind
Definition: hwloc.h:2293
+
unsigned char get_proc_cpubind
Definition: hwloc.h:2295
+
unsigned char get_thisproc_last_cpu_location
Definition: hwloc.h:2305
+
Flags describing actual memory binding support for this topology.
Definition: hwloc.h:2317
+
unsigned char set_thisthread_membind
Definition: hwloc.h:2327
+
unsigned char get_area_membind
Definition: hwloc.h:2333
+
unsigned char firsttouch_membind
Definition: hwloc.h:2337
+
unsigned char get_area_memlocation
Definition: hwloc.h:2347
+
unsigned char set_thisproc_membind
Definition: hwloc.h:2319
+
unsigned char interleave_membind
Definition: hwloc.h:2341
+
unsigned char get_thisproc_membind
Definition: hwloc.h:2321
+
unsigned char set_area_membind
Definition: hwloc.h:2331
+
unsigned char get_thisthread_membind
Definition: hwloc.h:2329
+
unsigned char set_proc_membind
Definition: hwloc.h:2323
+
unsigned char get_proc_membind
Definition: hwloc.h:2325
+
unsigned char migrate_membind
Definition: hwloc.h:2345
+
unsigned char nexttouch_membind
Definition: hwloc.h:2343
+
unsigned char alloc_membind
Definition: hwloc.h:2335
+
unsigned char bind_membind
Definition: hwloc.h:2339
+
Flags describing miscellaneous features.
Definition: hwloc.h:2352
+
unsigned char imported_support
Definition: hwloc.h:2354
+
Set of flags describing actual support for this topology.
Definition: hwloc.h:2363
+
struct hwloc_topology_misc_support * misc
Definition: hwloc.h:2367
+
struct hwloc_topology_membind_support * membind
Definition: hwloc.h:2366
+
struct hwloc_topology_cpubind_support * cpubind
Definition: hwloc.h:2365
+
struct hwloc_topology_discovery_support * discovery
Definition: hwloc.h:2364