From: Daniel P. Berrange Date: Tue, 29 Nov 2011 13:58:32 +0000 (+0000) Subject: Fix values of PM target type constants X-Git-Tag: v0.9.8-rc1~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=866b0a706935ec2f1829baae4fe1b0fc0a50c2ea;p=thirdparty%2Flibvirt.git Fix values of PM target type constants The VIR_NODE_SUSPEND_TARGET constants are not flags, so they should just be assigned straightforward incrementing values. * include/libvirt/libvirt.h.in: Change VIR_NODE_SUSPEND_TARGET values * src/util/virnodesuspend.c: Fix suspend target checks --- diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 1b10dc7901..d01d1bc5fa 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -257,9 +257,12 @@ typedef enum { * transitioned to. */ typedef enum { - VIR_NODE_SUSPEND_TARGET_MEM = (1 << 0), - VIR_NODE_SUSPEND_TARGET_DISK = (1 << 1), - VIR_NODE_SUSPEND_TARGET_HYBRID = (1 << 2), + VIR_NODE_SUSPEND_TARGET_MEM = 0, + VIR_NODE_SUSPEND_TARGET_DISK = 1, + VIR_NODE_SUSPEND_TARGET_HYBRID = 2, + + /* This constant is subject to change */ + VIR_NODE_SUSPEND_TARGET_LAST, } virNodeSuspendTarget; /** diff --git a/src/util/virnodesuspend.c b/src/util/virnodesuspend.c index 01feaa2b88..8a5a2c7d68 100644 --- a/src/util/virnodesuspend.c +++ b/src/util/virnodesuspend.c @@ -213,7 +213,7 @@ int nodeSuspendForDuration(virConnectPtr conn ATTRIBUTE_UNUSED, /* Check if the host supports the requested suspend target */ switch (target) { case VIR_NODE_SUSPEND_TARGET_MEM: - if (hostPMFeatures & VIR_NODE_SUSPEND_TARGET_MEM) { + if (hostPMFeatures & (1 << VIR_NODE_SUSPEND_TARGET_MEM)) { cmdString = strdup("pm-suspend"); if (cmdString == NULL) { virReportOOMError(); @@ -225,7 +225,7 @@ int nodeSuspendForDuration(virConnectPtr conn ATTRIBUTE_UNUSED, goto cleanup; case VIR_NODE_SUSPEND_TARGET_DISK: - if (hostPMFeatures & VIR_NODE_SUSPEND_TARGET_DISK) { + if (hostPMFeatures & (1 << VIR_NODE_SUSPEND_TARGET_DISK)) { cmdString = strdup("pm-hibernate"); if (cmdString == NULL) { virReportOOMError(); @@ -237,7 +237,7 @@ int nodeSuspendForDuration(virConnectPtr conn ATTRIBUTE_UNUSED, goto cleanup; case VIR_NODE_SUSPEND_TARGET_HYBRID: - if (hostPMFeatures & VIR_NODE_SUSPEND_TARGET_HYBRID) { + if (hostPMFeatures & (1 << VIR_NODE_SUSPEND_TARGET_HYBRID)) { cmdString = strdup("pm-suspend-hybrid"); if (cmdString == NULL) { virReportOOMError();