Finding Objects Inside a CPU set

## Functions

static inline hwloc_obj_t | hwloc_get_first_largest_obj_inside_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set)
int | hwloc_get_largest_objs_inside_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_t *restrict objs, int max)
static inline hwloc_obj_t | hwloc_get_next_obj_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, hwloc_obj_t prev)
static inline hwloc_obj_t | hwloc_get_next_obj_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, hwloc_obj_t prev)
static inline hwloc_obj_t | hwloc_get_obj_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth, unsigned idx)
static inline hwloc_obj_t | hwloc_get_obj_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type, unsigned idx)
static inline unsigned | hwloc_get_nbobjs_inside_cpuset_by_depth (hwloc_topology_t topology, hwloc_const_cpuset_t set, unsigned depth)
static inline int | hwloc_get_nbobjs_inside_cpuset_by_type (hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_obj_type_t type)
static inline int | hwloc_get_obj_index_inside_cpuset (hwloc_topology_t topology , hwloc_const_cpuset_t set, hwloc_obj_t obj)

## Detailed Description

## Function Documentation

static inline hwloc_obj_t hwloc_get_first_largest_obj_inside_cpuset | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set
| ) |  |

static

Get the first largest object included in the given cpuset `set`.

Returns
  the first object that is included in `set` and whose parent is not.

This is convenient for iterating over all largest objects within a CPU set by doing a loop getting the first largest object and clearing its CPU set from the remaining CPU set.

Note
  This function cannot work if the root object does not have a CPU set, e.g. if the topology is made of different machines.

int hwloc_get_largest_objs_inside_cpuset | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set,
|  | hwloc_obj_t *restrict | objs,
|  | int | max
| ) |  |

Get the set of largest objects covering exactly a given cpuset `set`.

Returns
  the number of objects returned in `objs`.

Note
  This function cannot work if the root object does not have a CPU set, e.g. if the topology is made of different machines.

static inline unsigned hwloc_get_nbobjs_inside_cpuset_by_depth | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set,
|  | unsigned | depth
| ) |  |

static

Return the number of objects at depth `depth` included in CPU set `set`.

Note
  This function cannot work if objects at the given depth do not have CPU sets or if the topology is made of different machines.

static inline int hwloc_get_nbobjs_inside_cpuset_by_type | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set,
|  | hwloc_obj_type_t | type
| ) |  |

static

Return the number of objects of type `type` included in CPU set `set`.

If no object for that type exists inside CPU set `set`, 0 is returned. If there are several levels with objects of that type inside CPU set `set`, -1 is returned.

Note
  This function cannot work if objects of the given type do not have CPU sets or if the topology is made of different machines.

static inline hwloc_obj_t hwloc_get_next_obj_inside_cpuset_by_depth | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set,
|  | unsigned | depth,
|  | hwloc_obj_t | prev
| ) |  |

static

Return the next object at depth `depth` included in CPU set `set`.

If `prev` is `NULL`, return the first object at depth `depth` included in `set`. The next invokation should pass the previous return value in `prev` so as to obtain the next object in `set`.

Note
  This function cannot work if objects at the given depth do not have CPU sets or if the topology is made of different machines.

static inline hwloc_obj_t hwloc_get_next_obj_inside_cpuset_by_type | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set,
|  | hwloc_obj_type_t | type,
|  | hwloc_obj_t | prev
| ) |  |

static

Return the next object of type `type` included in CPU set `set`.

If there are multiple or no depth for given type, return `NULL` and let the caller fallback to hwloc_get_next_obj_inside_cpuset_by_depth().

Note
  This function cannot work if objects of the given type do not have CPU sets or if the topology is made of different machines.

static inline int hwloc_get_obj_index_inside_cpuset | ( | hwloc_topology_t topology | ,
|  | hwloc_const_cpuset_t | set,
|  | hwloc_obj_t | obj
| ) |  |

static

Return the logical index among the objects included in CPU set `set`.

Consult all objects in the same level as `obj` and inside CPU set `set` in the logical order, and return the index of `obj` within them. If `set` covers the entire topology, this is the logical index of `obj`. Otherwise, this is similar to a logical index within the part of the topology defined by CPU set `set`.

static inline hwloc_obj_t hwloc_get_obj_inside_cpuset_by_depth | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set,
|  | unsigned | depth,
|  | unsigned | idx
| ) |  |

static

Return the (logically) `idx` -th object at depth `depth` included in CPU set `set`.

Note
  This function cannot work if objects at the given depth do not have CPU sets or if the topology is made of different machines.

static inline hwloc_obj_t hwloc_get_obj_inside_cpuset_by_type | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set,
|  | hwloc_obj_type_t | type,
|  | unsigned | idx
| ) |  |

static

Return the `idx` -th object of type `type` included in CPU set `set`.

If there are multiple or no depth for given type, return `NULL` and let the caller fallback to hwloc_get_obj_inside_cpuset_by_depth().

Note
  This function cannot work if objects of the given type do not have CPU sets or if the topology is made of different machines.