A custom topology may be initialized by calling hwloc_topology_set_custom() after hwloc_topology_init(). It may then be modified by inserting objects or entire topologies. Once done assembling, hwloc_topology_load() should be invoked as usual to finalize the topology.
◆ hwloc_custom_insert_group_object_by_parent()
Insert a new group object inside a custom topology.
An object with type HWLOC_OBJ_GROUP is inserted as a new child of object parent
.
groupdepth
is the depth attribute to be given to the new object. It may for instance be 0 for top-level groups, 1 for their children, and so on.
The custom topology newtopology
must have been prepared with hwloc_topology_set_custom() and not loaded with hwloc_topology_load() yet.
parent
may be either the root of topology
or an object that was added earlier through hwloc_custom_insert_group_object_by_parent().
- Note
- The cpuset and nodeset of the new group object are NULL because these sets are meaningless when assembling multiple topologies.
-
The cpuset and nodeset of the
parent
object are not modified.
◆ hwloc_custom_insert_topology()
Insert an existing topology inside a custom topology.
Duplicate the existing topology oldtopology
inside a new custom topology newtopology
as a leaf of object newparent
.
If oldroot
is not NULL
, duplicate oldroot
and all its children instead of the entire oldtopology
. Passing the root object of oldtopology
in oldroot
is equivalent to passing NULL
.
The custom topology newtopology
must have been prepared with hwloc_topology_set_custom() and not loaded with hwloc_topology_load() yet.
newparent
may be either the root of newtopology
or an object that was added through hwloc_custom_insert_group_object_by_parent().
- Note
- The cpuset and nodeset of the
newparent
object are not modified based on the contents of oldtopology
.