Brice Goglin wrote: > Jeff Squyres wrote: > >>> and Jeff has already removed the PLPA tests from >>> trunk, I am going to add (1) and probably (3), and document (2) and (4) >>> in the PLPA doc section. Then I'll move most comments from plpa.h into >>> this doc section and remove plpa.h entirely. >>> >>> >> How about having a v-like interface like you mentioned in #2? (analogous to >> writev, etc. -- takes an array) >> >> > > Ok. >
Here's an untested proposal. Not sure about the function name and the documentation. Any better idea would be much appreciated. Brice /** \brief Find an object below a chain of objects specified by types and indexes. * * Arrays \p typev and \p idxv must contain \p nr types and indexes. * * Start from the top system object and walk the arrays \p typev and \p idxv. * For each type and index couple in the arrays, look under the previously found * object to find the index-th object of the given type. */ static __inline hwloc_obj_t hwloc_get_obj_below_array_by_type (hwloc_topology_t topology, int nr, hwloc_obj_type_t *typev, unsigned *idxv) { hwloc_obj_t obj = hwloc_get_system_obj(topology); int i; for(i=0; i<nr; i++) { obj = hwloc_get_obj_inside_cpuset_by_type(topology, obj->cpuset, typev[i], idxv[i]; if (!obj) return NULL; } return obj; }