From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:55293) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rnrtt-0003dB-3v for qemu-devel@nongnu.org; Thu, 19 Jan 2012 08:19:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rnrtq-0003Co-Bx for qemu-devel@nongnu.org; Thu, 19 Jan 2012 08:19:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:15935) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rnrtp-0003Ce-U2 for qemu-devel@nongnu.org; Thu, 19 Jan 2012 08:19:30 -0500 Date: Thu, 19 Jan 2012 11:19:23 -0200 From: Luiz Capitulino Message-ID: <20120119111923.0836eb14@doriath> In-Reply-To: <1326737715-9867-4-git-send-email-kraxel@redhat.com> References: <1326737715-9867-1-git-send-email-kraxel@redhat.com> <1326737715-9867-4-git-send-email-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 3/6] suspend: add wakeup monitor command List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: xen-devel@lists.xensource.com, qemu-devel@nongnu.org On Mon, 16 Jan 2012 19:15:12 +0100 Gerd Hoffmann wrote: > This patch adds a wakeup monitor command which will simply wake up > suspended guests. > > Signed-off-by: Gerd Hoffmann > --- > hmp-commands.hx | 14 ++++++++++++++ > hmp.c | 5 +++++ > hmp.h | 1 + > qapi-schema.json | 11 +++++++++++ > qmp-commands.hx | 21 +++++++++++++++++++++ > qmp.c | 5 +++++ > 6 files changed, 57 insertions(+), 0 deletions(-) > > diff --git a/hmp-commands.hx b/hmp-commands.hx > index a586498..c62871a 100644 > --- a/hmp-commands.hx > +++ b/hmp-commands.hx > @@ -313,6 +313,20 @@ Resume emulation. > ETEXI > > { > + .name = "wakeup", > + .args_type = "", > + .params = "", > + .help = "wakeup guest from suspend", > + .mhandler.cmd = hmp_wakeup, > + }, > + > +STEXI > +@item wakeup > +@findex wakeup > +Wakeup guest from suspend. > +ETEXI > + > + { > .name = "gdbserver", > .args_type = "device:s?", > .params = "[device]", > diff --git a/hmp.c b/hmp.c > index e7659d5..1a14684 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -594,6 +594,11 @@ void hmp_cont(Monitor *mon, const QDict *qdict) > } > } > > +void hmp_wakeup(Monitor *mon, const QDict *qdict) > +{ > + qmp_wakeup(NULL); > +} > + > void hmp_inject_nmi(Monitor *mon, const QDict *qdict) > { > Error *errp = NULL; > diff --git a/hmp.h b/hmp.h > index 093242d..76eb3df 100644 > --- a/hmp.h > +++ b/hmp.h > @@ -40,6 +40,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_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); > diff --git a/qapi-schema.json b/qapi-schema.json > index 44cf764..75773d4 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -967,6 +967,17 @@ > { 'command': 'cont' } > > ## > +# @wakeup: > +# > +# Wakrup guest from suspend s/Wakrup/Wakeup Very nice series: Acked-by: Luiz Capitulino > +# > +# Since: 1.1 > +# > +# Returns: nothing. > +## > +{ 'command': 'wakeup' } > + > +## > # @inject-nmi: > # > # Injects an Non-Maskable Interrupt into all guest's VCPUs. > diff --git a/qmp-commands.hx b/qmp-commands.hx > index 7e3f4b9..2c84a7a 100644 > --- a/qmp-commands.hx > +++ b/qmp-commands.hx > @@ -218,6 +218,27 @@ Example: > EQMP > > { > + .name = "wakeup", > + .args_type = "", > + .mhandler.cmd_new = qmp_marshal_input_wakeup, > + }, > + > +SQMP > +wakeup > +------ > + > +Wakeup guest from suspend. > + > +Arguments: None. > + > +Example: > + > +-> { "execute": "wakeup" } > +<- { "return": {} } > + > +EQMP > + > + { > .name = "system_reset", > .args_type = "", > .mhandler.cmd_new = qmp_marshal_input_system_reset, > diff --git a/qmp.c b/qmp.c > index 5e09b41..f8b1dc7 100644 > --- a/qmp.c > +++ b/qmp.c > @@ -158,6 +158,11 @@ void qmp_cont(Error **errp) > vm_start(); > } > > +void qmp_wakeup(Error **errp) > +{ > + qemu_system_wakeup_request(); > +} > + > DevicePropertyInfoList *qmp_qom_list(const char *path, Error **errp) > { > DeviceState *dev;