
On 10/11/2012 01:01 AM, Viktor Mihajlovski wrote:
No problem to include flags for future extensions to be on the safe side. However, the map will contain all CPUs with the bits representing the online/offline state. If the intention is to quickly get the number of offline/online CPUS the following signature would be better IMO
int virNodeGetCpuMap(virConnectPtr conn, unsigned char **cpumap, unsigned int *online, unsigned int *offline, unsigned int flags);
That starts to feel rather complex. On the other hand, you have a point that returning maplen (number of bytes allocated in the map) does NOT tell you how many cpus are online without doing a population count of the result; worse, it cannot tell you how many cpus are offline (a maplen of 1 is returned whether I have 4 cpus or 8 cpus, so if the map contains the value 0xb, does that mean I had a 4 cpu machine with cpu2 off, or an 8 cpu machine with cpu2 and cpu4-7 off?). So allowing the user to optionally ask how many cpus are online or offline might indeed also be useful, in addition to the maplen needed to return the bitmap. -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org