Looking at Cache Objects

## Functions

int | hwloc_get_cache_type_depth (hwloc_topology_t topology, unsigned cachelevel, hwloc_obj_cache_type_t cachetype)
hwloc_obj_t | hwloc_get_cache_covering_cpuset (hwloc_topology_t topology, hwloc_const_cpuset_t set)
hwloc_obj_t | hwloc_get_shared_cache_covering_obj (hwloc_topology_t topology, hwloc_obj_t obj)

## Detailed Description

## Function Documentation

## hwloc_get_cache_covering_cpuset()

hwloc_obj_t hwloc_get_cache_covering_cpuset | ( | hwloc_topology_t | topology,
|  | hwloc_const_cpuset_t | set
| ) |  |

inline

Get the first data (or unified) cache covering a cpuset `set`.

Returns
  a covering cache, or `NULL` if no cache matches.

## hwloc_get_cache_type_depth()

int hwloc_get_cache_type_depth | ( | hwloc_topology_t | topology,
|  | unsigned | cachelevel,
|  | hwloc_obj_cache_type_t | cachetype
| ) |  |

inline

Find the depth of cache objects matching cache level and type.

Return the depth of the topology level that contains cache objects whose attributes match `cachelevel` and `cachetype`.

This function is identical to calling hwloc_get_type_depth() with the corresponding type such as HWLOC_OBJ_L1ICACHE, except that it may also return a Unified cache when looking for an instruction cache.

Returns
  the depth of the unique matching unified cache level is returned if `cachetype` is HWLOC_OBJ_CACHE_UNIFIED.
  the depth of either a matching cache level or a unified cache level if `cachetype` is HWLOC_OBJ_CACHE_DATA or HWLOC_OBJ_CACHE_INSTRUCTION.
  the depth of the matching level if `cachetype` is `-1` but only one level matches.
  HWLOC_TYPE_DEPTH_MULTIPLE if `cachetype` is `-1` but multiple levels match.
  HWLOC_TYPE_DEPTH_UNKNOWN if no cache level matches.

## hwloc_get_shared_cache_covering_obj()

hwloc_obj_t hwloc_get_shared_cache_covering_obj | ( | hwloc_topology_t | topology,
|  | hwloc_obj_t | obj
| ) |  |

inline

Get the first data (or unified) cache shared between an object and somebody else.

Returns
  a shared cache.
  `NULL` if no cache matches or if an invalid object is given (e.g. I/O object).