examples/vm_power_manager: fix build with libvirt < 1.0
authorYong Liu <yong.liu@intel.com>
Mon, 7 Dec 2015 07:24:17 +0000 (15:24 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 7 Dec 2015 23:09:43 +0000 (00:09 +0100)
virNodeGetCPUMap introduced in libvirt 1.0. In some linux distributions
like Ubuntu12/14 and Fedora18, libvirt version is older than 1.0. So this
sample will not build pass.

Replace "virNodeGetCPUMap" with another libvirt API "virNodeGetInfo".

Signed-off-by: Marvin Liu <yong.liu@intel.com>
examples/vm_power_manager/channel_manager.c

index db76f2e..ceaf95d 100644 (file)
@@ -734,7 +734,7 @@ connect_hypervisor(const char *path)
 int
 channel_manager_init(const char *path)
 {
-       int n_cpus;
+       virNodeInfo info;
 
        LIST_INIT(&vm_list_head);
        if (connect_hypervisor(path) < 0) {
@@ -756,13 +756,12 @@ channel_manager_init(const char *path)
                goto error;
        }
 
-       n_cpus = virNodeGetCPUMap(global_vir_conn_ptr, NULL, NULL, 0);
-       if (n_cpus <= 0) {
-               RTE_LOG(ERR, CHANNEL_MANAGER, "Unable to get the number of Host "
-                               "CPUs\n");
+       if (virNodeGetInfo(global_vir_conn_ptr, &info)) {
+               RTE_LOG(ERR, CHANNEL_MANAGER, "Unable to retrieve node Info\n");
                goto error;
        }
-       global_n_host_cpus = (unsigned)n_cpus;
+
+       global_n_host_cpus = (unsigned)info.cpus;
 
        if (global_n_host_cpus > CHANNEL_CMDS_MAX_CPUS) {
                RTE_LOG(WARNING, CHANNEL_MANAGER, "The number of host CPUs(%u) exceeds the "