[libvirt] [PATCHv2 1/9] virNodeGetCPUMapFlags: Define public API.
Eric Blake
eblake at redhat.com
Tue Oct 23 18:06:24 UTC 2012
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 at 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 at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 617 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20121023/7ac3a352/attachment-0001.sig>
More information about the libvir-list
mailing list