On 10/16/2012 08:05 AM, Viktor Mihajlovski wrote:
Adding a new API to obtain information about the
host node's present, online and offline CPUs.
int virNodeGetCPUMapFlags(virConnectPtr conn,
unsigned char **cpumap,
unsigned int *online,
TAB damage.
unsigned int flags);
No need for the Flags suffix in the API name. The suffix is only needed
when we are adding a new API to fix shortcomings in an older one that
forgot a flags argument.
The function will return the number of CPUs present on the host
or -1 on failure;
If cpumap is non-NULL virNodeGetCPUMapFlags will allocate an array
containing a bit map representation of the online CPUs. It's
the callers responsibility to deallocate cpumap using free().
If online is non-NULL, the variable pointed to will contain
the number of online host node CPUs.
The variable flags has been added to support future extensions
and must be set to 0.
Note: the name virNodeGetCPUMapFlags has been chosen to avoid
confusion with the nodeinfo function nodeGetCPUmap.
Not necessary - nodeGetCPUmap is an internal function, which we can
rename at will. Public API naming should not be held hostage to
internal names.
Signed-off-by: Viktor Mihajlovski <mihajlov(a)linux.vnet.ibm.com>
---
include/libvirt/libvirt.h.in | 8 ++++++++
python/generator.py | 1 +
src/libvirt_public.syms | 5 +++++
3 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index a4e8ca9..6b72159 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -4500,6 +4500,14 @@ int virNodeSetMemoryParameters(virConnectPtr conn,
int nparams,
unsigned int flags);
+/*
+ * node CPU map
+ */
+int virNodeGetCPUMapFlags(virConnectPtr conn,
+ unsigned char **cpumap,
+ unsigned int *online,
+ unsigned int flags);
+
#ifdef __cplusplus
}
#endif
Too low in the file - you ended up declaring it in the section for
deprecated names. Not entirely your fault; virNodeSetMemoryParameters
was also declared in the wrong place, so I prepared a separate patch to
hoist that up first:
https://www.redhat.com/archives/libvir-list/2012-October/msg01360.html
diff --git a/python/generator.py b/python/generator.py
index ced7e41..8591b8d 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -429,6 +429,7 @@ skip_impl = (
'virConnectRegisterCloseCallback',
'virNodeGetMemoryParameters',
'virNodeSetMemoryParameters',
+ 'virNodeGetCPUMapFlags',
)
qemu_skip_impl = (
diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
index 2c924d5..0c8f4ff 100644
--- a/src/libvirt_public.syms
+++ b/src/libvirt_public.syms
@@ -569,4 +569,9 @@ LIBVIRT_0.10.2 {
virStoragePoolListAllVolumes;
} LIBVIRT_0.10.0;
+LIBVIRT_1.0.0 {
+ global:
+ virNodeGetCPUMapFlags;
+} LIBVIRT_0.10.2;
+
# .... define new API here using predicted next version number ....
ACK to the idea, but the documentation should be present in
src/libvirt.c at the time the function is introduced. In addition to
touching up the commit message, I will probably squash in your later
patch to libvirt.c, as well as these changes (on top of my patch
mentioned above for reordering the header file):
diff --git i/include/libvirt/libvirt.h.in w/include/libvirt/libvirt.h.in
index 2b33ba8..368e014 100644
--- i/include/libvirt/libvirt.h.in
+++ w/include/libvirt/libvirt.h.in
@@ -750,6 +750,14 @@ int virNodeSetMemoryParameters(virConnectPtr conn,
int nparams,
unsigned int flags);
+/*
+ * node CPU map
+ */
+int virNodeGetCPUMap(virConnectPtr conn,
+ unsigned char **cpumap,
+ unsigned int *online,
+ unsigned int flags);
+
/* Management of scheduler parameters */
/**
@@ -4546,14 +4554,6 @@ typedef virMemoryParameter *virMemoryParameterPtr;
/* Add new interfaces to the appropriate sections earlier in this
* file; the end of the file is reserved for deprecated names. */
-/*
- * node CPU map
- */
-int virNodeGetCPUMapFlags(virConnectPtr conn,
- unsigned char **cpumap,
- unsigned int *online,
- unsigned int flags);
-
#ifdef __cplusplus
}
#endif
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org