I just pushed a huge commit converting everything to dynamic cpusets.
The new API is visable at
https://svn.open-mpi.org/trac/hwloc/browser/trunk/include/hwloc/cpuset.h?rev=1109
The implementation is pretty much the same than our old inlines, see
https://svn.open-mpi.org/trac/hwloc/browser/trunk/src/cpuset.c?rev=1109
Some examples of conversion to the new API are visible near
https://svn.open-mpi.org/trac/hwloc/changeset/1109#file26
Note that cpuset_alloc() initializes the cpuset to 0. Many old cpusets
were memset'ed to 0 during the object creation, so I didn't want to
break this guarantee. If needed, we could have hwloc_cpuset_alloc_zero()
for this?
There's still a internal cpuset.h header
https://svn.open-mpi.org/trac/hwloc/browser/trunk/include/private/cpuset.h?rev=1109
but only cpuset.c uses it. So if there's no real need for other internal
files to access the cpuset internals, we could merge cpuset.h into cpuset.c.
Brice
|