aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hmp-commands.hx3
-rw-r--r--hmp.c5
-rw-r--r--hmp.h1
-rw-r--r--qapi-schema.json14
-rw-r--r--qmp.c5
5 files changed, 26 insertions, 2 deletions
diff --git a/hmp-commands.hx b/hmp-commands.hx
index b2f5cd1f4..07b493ca2 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -492,8 +492,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "send system power down event",
- .user_print = monitor_user_noop,
- .mhandler.cmd_new = do_system_powerdown,
+ .mhandler.cmd = hmp_system_powerdown,
},
STEXI
diff --git a/hmp.c b/hmp.c
index 24f30bc94..34416fc3c 100644
--- a/hmp.c
+++ b/hmp.c
@@ -109,3 +109,8 @@ void hmp_system_reset(Monitor *mon, const QDict *qdict)
{
qmp_system_reset(NULL);
}
+
+void hmp_system_powerdown(Monitor *mon, const QDict *qdict)
+{
+ qmp_system_powerdown(NULL);
+}
diff --git a/hmp.h b/hmp.h
index a49a6e674..92433cff9 100644
--- a/hmp.h
+++ b/hmp.h
@@ -26,5 +26,6 @@ void hmp_info_chardev(Monitor *mon);
void hmp_quit(Monitor *mon, const QDict *qdict);
void hmp_stop(Monitor *mon, const QDict *qdict);
void hmp_system_reset(Monitor *mon, const QDict *qdict);
+void hmp_system_powerdown(Monitor *mon, const QDict *qdict);
#endif
diff --git a/qapi-schema.json b/qapi-schema.json
index 02de4b55c..5922c4a92 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -257,3 +257,17 @@
# Since: 0.14.0
##
{ 'command': 'system_reset' }
+
+##
+# @system_powerdown:
+#
+# Requests that a guest perform a powerdown operation.
+#
+# Since: 0.14.0
+#
+# Notes: A guest may or may not respond to this command. This command
+# returning does not indicate that a guest has accepted the request or
+# that it has shut down. Many guests will respond to this command by
+# prompting the user in some way.
+##
+{ 'command': 'system_powerdown' }
diff --git a/qmp.c b/qmp.c
index 51d93832a..bf58b05a9 100644
--- a/qmp.c
+++ b/qmp.c
@@ -85,3 +85,8 @@ void qmp_system_reset(Error **errp)
{
qemu_system_reset_request();
}
+
+void qmp_system_powerdown(Error **erp)
+{
+ qemu_system_powerdown_request();
+}