From 866b0a706935ec2f1829baae4fe1b0fc0a50c2ea Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Tue, 29 Nov 2011 13:58:32 +0000 Subject: [PATCH] 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 --- include/libvirt/libvirt.h.in | 9 ++++++--- src/util/virnodesuspend.c | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 1b10dc790..d01d1bc5f 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 01feaa2b8..8a5a2c7d6 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(); -- 2.39.5