Message ID | 20160808141439.16908-12-marcandre.lureau@redhat.com |
---|---|
State | New |
Headers | show |
marcandre.lureau@redhat.com writes: > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > The following "use qmp_dispatch()" commit will use the generated > dispatch command table that is unaware of compile time conditionals. > > There are a few commands that are under #ifdef conditions in > qmp-commands.hx. Move the qmp_query_spice fallback in the same location > as the other fallbacks, return an error instead of abort() and update > the comment. > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > monitor.c | 14 ++++++++++++++ > qmp.c | 16 ---------------- > 2 files changed, 14 insertions(+), 16 deletions(-) > > diff --git a/monitor.c b/monitor.c > index e7549b1..5e7ae21 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -4303,6 +4303,20 @@ QemuOptsList qemu_mon_opts = { > }, > }; > > +/* > + * the QAPI schema is blissfully unaware #ifdef FOO commands, and the > + * QAPI code generator happily generates a qmp_marshal_foo_cmd() that > + * calls qmp_foo_cmd(). Provide it one, or else linking fails. FIXME > + * Educate the QAPI schema on #ifdef commands. Let's keep the FIXME on the same line as its text. Can touch up on commit. > + */ > +#ifndef CONFIG_SPICE > +SpiceInfo *qmp_query_spice(Error **errp) > +{ > + error_setg(errp, QERR_FEATURE_DISABLED, "spice"); > + return NULL; > +}; > +#endif > + > #ifndef TARGET_I386 > void qmp_rtc_reset_reinjection(Error **errp) > { > diff --git a/qmp.c b/qmp.c > index b6d531e..884d1ab 100644 > --- a/qmp.c > +++ b/qmp.c > @@ -161,22 +161,6 @@ VncInfo2List *qmp_query_vnc_servers(Error **errp) > }; > #endif > > -#ifndef CONFIG_SPICE > -/* > - * qmp-commands.hx ensures that QMP command query-spice exists only > - * #ifdef CONFIG_SPICE. Necessary for an accurate query-commands > - * result. However, the QAPI schema is blissfully unaware of that, > - * and the QAPI code generator happily generates a dead > - * qmp_marshal_query_spice() that calls qmp_query_spice(). Provide it > - * one, or else linking fails. FIXME Educate the QAPI schema on > - * CONFIG_SPICE. > - */ > -SpiceInfo *qmp_query_spice(Error **errp) > -{ > - abort(); > -}; > -#endif > - > void qmp_cont(Error **errp) > { > Error *local_err = NULL;
diff --git a/monitor.c b/monitor.c index e7549b1..5e7ae21 100644 --- a/monitor.c +++ b/monitor.c @@ -4303,6 +4303,20 @@ QemuOptsList qemu_mon_opts = { }, }; +/* + * the QAPI schema is blissfully unaware #ifdef FOO commands, and the + * QAPI code generator happily generates a qmp_marshal_foo_cmd() that + * calls qmp_foo_cmd(). Provide it one, or else linking fails. FIXME + * Educate the QAPI schema on #ifdef commands. + */ +#ifndef CONFIG_SPICE +SpiceInfo *qmp_query_spice(Error **errp) +{ + error_setg(errp, QERR_FEATURE_DISABLED, "spice"); + return NULL; +}; +#endif + #ifndef TARGET_I386 void qmp_rtc_reset_reinjection(Error **errp) { diff --git a/qmp.c b/qmp.c index b6d531e..884d1ab 100644 --- a/qmp.c +++ b/qmp.c @@ -161,22 +161,6 @@ VncInfo2List *qmp_query_vnc_servers(Error **errp) }; #endif -#ifndef CONFIG_SPICE -/* - * qmp-commands.hx ensures that QMP command query-spice exists only - * #ifdef CONFIG_SPICE. Necessary for an accurate query-commands - * result. However, the QAPI schema is blissfully unaware of that, - * and the QAPI code generator happily generates a dead - * qmp_marshal_query_spice() that calls qmp_query_spice(). Provide it - * one, or else linking fails. FIXME Educate the QAPI schema on - * CONFIG_SPICE. - */ -SpiceInfo *qmp_query_spice(Error **errp) -{ - abort(); -}; -#endif - void qmp_cont(Error **errp) { Error *local_err = NULL;