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;
}


Reply via email to