提交 866b0a70 编写于 作者: D Daniel P. Berrange

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
上级 a001a5e2
......@@ -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;
/**
......
......@@ -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();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册