Looking at Ancestor and Child Objects

## Functions

static hwloc_obj_t | hwloc_get_ancestor_obj_by_depth (hwloc_topology_t topology, unsigned depth, hwloc_obj_t obj)
static hwloc_obj_t | hwloc_get_ancestor_obj_by_type (hwloc_topology_t topology, hwloc_obj_type_t type, hwloc_obj_t obj)
static hwloc_obj_t | hwloc_get_common_ancestor_obj (hwloc_topology_t topology, hwloc_obj_t obj1, hwloc_obj_t obj2)
static int | hwloc_obj_is_in_subtree (hwloc_topology_t topology, hwloc_obj_t obj, hwloc_obj_t subtree_root)
static hwloc_obj_t | hwloc_get_next_child (hwloc_topology_t topology, hwloc_obj_t parent, hwloc_obj_t prev)

## Detailed Description

Be sure to see the figure in Terms and Definitions that shows a complete topology tree, including depths, child/sibling/cousin relationships, and an example of an asymmetric topology where one package has fewer caches than its peers.

## Function Documentation

static hwloc_obj_t hwloc_get_ancestor_obj_by_depth | ( | hwloc_topology_t | topology,
|  | unsigned | depth,
|  | hwloc_obj_t | obj
| ) |  |

inlinestatic

Returns the ancestor object of `obj` at depth `depth`.

static hwloc_obj_t hwloc_get_ancestor_obj_by_type | ( | hwloc_topology_t | topology,
|  | hwloc_obj_type_t | type,
|  | hwloc_obj_t | obj
| ) |  |

inlinestatic

Returns the ancestor object of `obj` with type `type`.

static hwloc_obj_t hwloc_get_common_ancestor_obj | ( | hwloc_topology_t | topology,
|  | hwloc_obj_t | obj1,
|  | hwloc_obj_t | obj2
| ) |  |

inlinestatic

Returns the common parent object to objects `obj1` and `obj2`.

static hwloc_obj_t hwloc_get_next_child | ( | hwloc_topology_t | topology,
|  | hwloc_obj_t | parent,
|  | hwloc_obj_t | prev
| ) |  |

inlinestatic

Return the next child.

If `prev` is `NULL`, return the first child.

static int hwloc_obj_is_in_subtree | ( | hwloc_topology_t | topology,
|  | hwloc_obj_t | obj,
|  | hwloc_obj_t | subtree_root
| ) |  |

inlinestatic

Returns true if `obj` is inside the subtree beginning with ancestor object `subtree_root`.

Note
  This function assumes that both `obj` and `subtree_root` have a `cpuset`.