suspend: add system_wakeup monitor command

This patch adds the system_wakeup monitor command which will simply
wake up suspended guests.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
master
Gerd Hoffmann 2012-02-23 13:45:21 +01:00 committed by Anthony Liguori
parent da98c8eb4c
commit 9b9df25a47
6 changed files with 57 additions and 0 deletions

View File

@ -349,6 +349,20 @@ STEXI
@item c or cont
@findex cont
Resume emulation.
ETEXI
{
.name = "system_wakeup",
.args_type = "",
.params = "",
.help = "wakeup guest from suspend",
.mhandler.cmd = hmp_system_wakeup,
},
STEXI
@item system_wakeup
@findex system_wakeup
Wakeup guest from suspend.
ETEXI
{

5
hmp.c
View File

@ -632,6 +632,11 @@ void hmp_cont(Monitor *mon, const QDict *qdict)
}
}
void hmp_system_wakeup(Monitor *mon, const QDict *qdict)
{
qmp_system_wakeup(NULL);
}
void hmp_inject_nmi(Monitor *mon, const QDict *qdict)
{
Error *errp = NULL;

1
hmp.h
View File

@ -41,6 +41,7 @@ void hmp_cpu(Monitor *mon, const QDict *qdict);
void hmp_memsave(Monitor *mon, const QDict *qdict);
void hmp_pmemsave(Monitor *mon, const QDict *qdict);
void hmp_cont(Monitor *mon, const QDict *qdict);
void hmp_system_wakeup(Monitor *mon, const QDict *qdict);
void hmp_inject_nmi(Monitor *mon, const QDict *qdict);
void hmp_set_link(Monitor *mon, const QDict *qdict);
void hmp_block_passwd(Monitor *mon, const QDict *qdict);

View File

@ -998,6 +998,17 @@
##
{ 'command': 'cont' }
##
# @system_wakeup:
#
# Wakeup guest from suspend. Does nothing in case the guest isn't suspended.
#
# Since: 1.1
#
# Returns: nothing.
##
{ 'command': 'system_wakeup' }
##
# @inject-nmi:
#

View File

@ -209,6 +209,27 @@ Example:
-> { "execute": "cont" }
<- { "return": {} }
EQMP
{
.name = "system_wakeup",
.args_type = "",
.mhandler.cmd_new = qmp_marshal_input_system_wakeup,
},
SQMP
system_wakeup
-------------
Wakeup guest from suspend.
Arguments: None.
Example:
-> { "execute": "system_wakeup" }
<- { "return": {} }
EQMP
{

5
qmp.c
View File

@ -163,6 +163,11 @@ void qmp_cont(Error **errp)
vm_start();
}
void qmp_system_wakeup(Error **errp)
{
qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER);
}
ObjectPropertyInfoList *qmp_qom_list(const char *path, Error **errp)
{
Object *obj;