On Wed, 12 Feb 2014 14:34:19 +0800 Qiao Nuohan <qiaonuo...@cn.fujitsu.com> wrote:
> 'query-dump-guest-memory-capability' is used to query the available formats > for > 'dump-guest-memory'. The output of the command will be like: > > -> { "execute": "query-dump-guest-memory-capability" } > <- { "return": { "formats": > ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] } > > Signed-off-by: Qiao Nuohan <qiaonuo...@cn.fujitsu.com> The new command looks good to me, but the patch itself is broken. It doesn't apply and I could identify at least one breakage below... > --- > dump.c | 33 +++++++++++++++++++++++++++++++++ > qapi-schema.json | 23 +++++++++++++++++++++++ > qmp-commands.hx | 20 ++++++++++++++++++++ > 3 files changed, 76 insertions(+), 0 deletions(-) > > diff --git a/dump.c b/dump.c > index 2ebbb23..3a8d55e 100644 > --- a/dump.c > +++ b/dump.c > @@ -1788,3 +1788,36 @@ void qmp_dump_guest_memory(bool paging, const char > *file, > bool has_begin, > > g_free(s); > } > + > +DumpGuestMemoryCapability *qmp_query_dump_guest_memory_capability(Error > **errp) > +{ > + DumpGuestMemoryFormatList *item; > + DumpGuestMemoryCapability *cap = > + > g_malloc0(sizeof(DumpGuestMemoryCapability)); > + > + /* elf is always available */ > + item = g_malloc0(sizeof(DumpGuestMemoryFormatList)); > + cap->formats = item; > + item->value = DUMP_GUEST_MEMORY_FORMAT_ELF; > + > + /* kdump-zlib is always available */ > + item->next = g_malloc0(sizeof(DumpGuestMemoryFormatList)); > + item = item->next; > + item->value = DUMP_GUEST_MEMORY_FORMAT_KDUMP_ZLIB; > + > + /* add new item if kdump-lzo is available */ > +#ifdef CONFIG_LZO > + item->next = g_malloc0(sizeof(DumpGuestMemoryFormatList)); > + item = item->next; > + item->value = DUMP_GUEST_MEMORY_FORMAT_KDUMP_LZO; > +#endif > + > + /* add new item if kdump-snappy is available */ > +#ifdef CONFIG_SNAPPY > + item->next = g_malloc0(sizeof(DumpGuestMemoryFormatList)); > + item = item->next; > + item->value = DUMP_GUEST_MEMORY_FORMAT_KDUMP_SNAPPY; > +#endif > + > + return cap; > +} > diff --git a/qapi-schema.json b/qapi-schema.json > index 7f62007..a097e6c 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -2783,6 +2783,29 @@ > '*length': 'int', '*format': 'DumpGuestMemoryFormat' } } > > ## > +# @DumpGuestMemoryCapability: > +# > +# A list of the available formats for dump-guest-memory > +# > +# Since: 2.0 > +## > +{ 'type': 'DumpGuestMemoryCapability', > + 'data': { > + 'formats': ['DumpGuestMemoryFormat'] } } > + > +## > +# @query-dump-guest-memory-capability: > +# > +# Returns the available formats for dump-guest-memory > +# > +# Returns: A @DumpGuestMemoryCapability object listing available formats for > +# dump-guest-memory > +# > +# Since: 2.0 > +## > +{ 'command': 'query-dump-guest-memory-capability', 'returns': > 'DumpGuestMemoryCapability' } Here. > + > +## > # @netdev_add: > # > # Add a network backend. > diff --git a/qmp-commands.hx b/qmp-commands.hx > index 019dde6..029cb3d 100644 > --- a/qmp-commands.hx > +++ b/qmp-commands.hx > @@ -829,6 +829,26 @@ Notes: > EQMP > > { > + .name = "query-dump-guest-memory-capability", > + .args_type = "", > + .mhandler.cmd_new = > qmp_marshal_input_query_dump_guest_memory_capability, > + }, > + > +SQMP > +query-dump-guest-memory-capability > +---------- > + > +Show available formats for 'dump-guest-memory' > + > +Example: > + > +-> { "execute": "query-dump-guest-memory-capability" } > +<- { "return": { "formats": > + ["elf", "kdump-zlib", "kdump-lzo", "kdump-snappy"] } > + > +EQMP > + > + { > .name = "netdev_add", > .args_type = "netdev:O", > .mhandler.cmd_new = qmp_netdev_add,