From 19d70c7d96edc96ca8703f37f9e8263cde91ab25 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Wed, 23 Sep 2009 12:21:00 +0100 Subject: [PATCH] Add API for the 'system_powerdown' monitor command * src/qemu/qemu_driver.c: Remove use of 'system_powerdown' * src/qemu/qemu_monitor.h, src/qemu/qemu_monitor.c: Add a new qemuMonitorSystemPowerdown() api call --- src/qemu/qemu_driver.c | 8 ++------ src/qemu/qemu_monitor_text.c | 14 ++++++++++++++ src/qemu/qemu_monitor_text.h | 2 ++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 793e8dbce1..db8e0d2590 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2841,7 +2841,6 @@ cleanup: static int qemudDomainShutdown(virDomainPtr dom) { struct qemud_driver *driver = dom->conn->privateData; virDomainObjPtr vm; - char* info; int ret = -1; qemuDriverLock(driver); @@ -2862,12 +2861,9 @@ static int qemudDomainShutdown(virDomainPtr dom) { goto cleanup; } - if (qemudMonitorCommand(vm, "system_powerdown", &info) < 0) { - qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED, - "%s", _("shutdown operation failed")); + if (qemuMonitorSystemPowerdown(vm) < 0) goto cleanup; - } - VIR_FREE(info); + ret = 0; cleanup: diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index 2a301e5442..47843e81d0 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -451,6 +451,20 @@ qemuMonitorStopCPUs(const virDomainObjPtr vm) { return 0; } + +int qemuMonitorSystemPowerdown(const virDomainObjPtr vm) { + char *info; + + if (qemudMonitorCommand(vm, "system_powerdown", &info) < 0) { + qemudReportError(NULL, NULL, NULL, VIR_ERR_OPERATION_FAILED, + "%s", _("system shutdown operation failed")); + return -1; + } + VIR_FREE(info); + return 0; +} + + int qemuMonitorGetCPUInfo(const virDomainObjPtr vm, int **pids) { diff --git a/src/qemu/qemu_monitor_text.h b/src/qemu/qemu_monitor_text.h index 3504e8d316..80c21d8f03 100644 --- a/src/qemu/qemu_monitor_text.h +++ b/src/qemu/qemu_monitor_text.h @@ -69,6 +69,8 @@ int qemuMonitorStartCPUs(virConnectPtr conn, const virDomainObjPtr vm); int qemuMonitorStopCPUs(const virDomainObjPtr vm); +int qemuMonitorSystemPowerdown(const virDomainObjPtr vm); + int qemuMonitorGetCPUInfo(const virDomainObjPtr vm, int **pids);