Message ID | 20191108150123.12213-2-marcandre.lureau@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | monitor: add asynchronous command type | expand |
On 11/8/19 4:00 PM, Marc-André Lureau wrote: > Since 0b69f6f72ce47a37a749b056b6d5ec64c61f11e8 "qapi: remove > qmp_unregister_command()", the command list can be declared const. > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > include/qapi/qmp/dispatch.h | 9 +++++---- > monitor/misc.c | 2 +- > monitor/monitor-internal.h | 2 +- > qapi/qmp-dispatch.c | 6 +++--- > qapi/qmp-registry.c | 6 +++--- > qga/commands.c | 2 +- > qga/main.c | 6 +++--- > 7 files changed, 17 insertions(+), 16 deletions(-) > > diff --git a/include/qapi/qmp/dispatch.h b/include/qapi/qmp/dispatch.h > index 9aa426a398..5a9cf82472 100644 > --- a/include/qapi/qmp/dispatch.h > +++ b/include/qapi/qmp/dispatch.h > @@ -39,7 +39,8 @@ typedef QTAILQ_HEAD(QmpCommandList, QmpCommand) QmpCommandList; > > void qmp_register_command(QmpCommandList *cmds, const char *name, > QmpCommandFunc *fn, QmpCommandOptions options); > -QmpCommand *qmp_find_command(QmpCommandList *cmds, const char *name); > +const QmpCommand *qmp_find_command(const QmpCommandList *cmds, > + const char *name); > void qmp_disable_command(QmpCommandList *cmds, const char *name); > void qmp_enable_command(QmpCommandList *cmds, const char *name); > > @@ -47,13 +48,13 @@ bool qmp_command_is_enabled(const QmpCommand *cmd); > const char *qmp_command_name(const QmpCommand *cmd); > bool qmp_has_success_response(const QmpCommand *cmd); > QDict *qmp_error_response(Error *err); > -QDict *qmp_dispatch(QmpCommandList *cmds, QObject *request, > +QDict *qmp_dispatch(const QmpCommandList *cmds, QObject *request, > bool allow_oob); > bool qmp_is_oob(const QDict *dict); > > -typedef void (*qmp_cmd_callback_fn)(QmpCommand *cmd, void *opaque); > +typedef void (*qmp_cmd_callback_fn)(const QmpCommand *cmd, void *opaque); > > -void qmp_for_each_command(QmpCommandList *cmds, qmp_cmd_callback_fn fn, > +void qmp_for_each_command(const QmpCommandList *cmds, qmp_cmd_callback_fn fn, > void *opaque); > > #endif > diff --git a/monitor/misc.c b/monitor/misc.c > index 3baa15f3bf..3052bfe8f1 100644 > --- a/monitor/misc.c > +++ b/monitor/misc.c > @@ -230,7 +230,7 @@ static void hmp_info_help(Monitor *mon, const QDict *qdict) > help_cmd(mon, "info"); > } > > -static void query_commands_cb(QmpCommand *cmd, void *opaque) > +static void query_commands_cb(const QmpCommand *cmd, void *opaque) > { > CommandInfoList *info, **list = opaque; > > diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h > index d78f5ca190..3e7dac5910 100644 > --- a/monitor/monitor-internal.h > +++ b/monitor/monitor-internal.h > @@ -132,7 +132,7 @@ typedef struct { > * qmp_capabilities succeeds, we go into command mode, and > * @command becomes &qmp_commands. > */ > - QmpCommandList *commands; > + const QmpCommandList *commands; > bool capab_offered[QMP_CAPABILITY__MAX]; /* capabilities offered */ > bool capab[QMP_CAPABILITY__MAX]; /* offered and accepted */ > /* > diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c > index bc264b3c9b..857399c5fe 100644 > --- a/qapi/qmp-dispatch.c > +++ b/qapi/qmp-dispatch.c > @@ -75,14 +75,14 @@ static QDict *qmp_dispatch_check_obj(const QObject *request, bool allow_oob, > return dict; > } > > -static QObject *do_qmp_dispatch(QmpCommandList *cmds, QObject *request, > +static QObject *do_qmp_dispatch(const QmpCommandList *cmds, QObject *request, > bool allow_oob, Error **errp) > { > Error *local_err = NULL; > bool oob; > const char *command; > QDict *args, *dict; > - QmpCommand *cmd; > + const QmpCommand *cmd; > QObject *ret = NULL; > > dict = qmp_dispatch_check_obj(request, allow_oob, errp); > @@ -164,7 +164,7 @@ bool qmp_is_oob(const QDict *dict) > && !qdict_haskey(dict, "execute"); > } > > -QDict *qmp_dispatch(QmpCommandList *cmds, QObject *request, > +QDict *qmp_dispatch(const QmpCommandList *cmds, QObject *request, > bool allow_oob) > { > Error *err = NULL; > diff --git a/qapi/qmp-registry.c b/qapi/qmp-registry.c > index ca00f74795..d0f9a1d3e3 100644 > --- a/qapi/qmp-registry.c > +++ b/qapi/qmp-registry.c > @@ -27,7 +27,7 @@ void qmp_register_command(QmpCommandList *cmds, const char *name, > QTAILQ_INSERT_TAIL(cmds, cmd, node); > } > > -QmpCommand *qmp_find_command(QmpCommandList *cmds, const char *name) > +const QmpCommand *qmp_find_command(const QmpCommandList *cmds, const char *name) > { > QmpCommand *cmd; > > @@ -77,10 +77,10 @@ bool qmp_has_success_response(const QmpCommand *cmd) > return !(cmd->options & QCO_NO_SUCCESS_RESP); > } > > -void qmp_for_each_command(QmpCommandList *cmds, qmp_cmd_callback_fn fn, > +void qmp_for_each_command(const QmpCommandList *cmds, qmp_cmd_callback_fn fn, > void *opaque) > { > - QmpCommand *cmd; > + const QmpCommand *cmd; > > QTAILQ_FOREACH(cmd, cmds, node) { > fn(cmd, opaque); > diff --git a/qga/commands.c b/qga/commands.c > index 0c7d1385c2..05e9ab6c3d 100644 > --- a/qga/commands.c > +++ b/qga/commands.c > @@ -54,7 +54,7 @@ void qmp_guest_ping(Error **errp) > slog("guest-ping called"); > } > > -static void qmp_command_info(QmpCommand *cmd, void *opaque) > +static void qmp_command_info(const QmpCommand *cmd, void *opaque) > { > GuestAgentInfo *info = opaque; > GuestAgentCommandInfo *cmd_info; > diff --git a/qga/main.c b/qga/main.c > index c35c2a2120..f23614528e 100644 > --- a/qga/main.c > +++ b/qga/main.c > @@ -359,7 +359,7 @@ static gint ga_strcmp(gconstpointer str1, gconstpointer str2) > } > > /* disable commands that aren't safe for fsfreeze */ > -static void ga_disable_non_whitelisted(QmpCommand *cmd, void *opaque) > +static void ga_disable_non_whitelisted(const QmpCommand *cmd, void *opaque) > { > bool whitelisted = false; > int i = 0; > @@ -378,7 +378,7 @@ static void ga_disable_non_whitelisted(QmpCommand *cmd, void *opaque) > } > > /* [re-]enable all commands, except those explicitly blacklisted by user */ > -static void ga_enable_non_blacklisted(QmpCommand *cmd, void *opaque) > +static void ga_enable_non_blacklisted(const QmpCommand *cmd, void *opaque) > { > GList *blacklist = opaque; > const char *name = qmp_command_name(cmd); > @@ -918,7 +918,7 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp) > return handle; > } > > -static void ga_print_cmd(QmpCommand *cmd, void *opaque) > +static void ga_print_cmd(const QmpCommand *cmd, void *opaque) > { > printf("%s\n", qmp_command_name(cmd)); > } > Reviewed-by: Damien Hedde <damien.hedde@greensocs.com> Damien
Hi Markus, Can you review/queue this patch? thanks On Fri, Nov 8, 2019 at 5:52 PM Damien Hedde <damien.hedde@greensocs.com> wrote: > > > > On 11/8/19 4:00 PM, Marc-André Lureau wrote: > > Since 0b69f6f72ce47a37a749b056b6d5ec64c61f11e8 "qapi: remove > > qmp_unregister_command()", the command list can be declared const. > > > > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > > --- > > include/qapi/qmp/dispatch.h | 9 +++++---- > > monitor/misc.c | 2 +- > > monitor/monitor-internal.h | 2 +- > > qapi/qmp-dispatch.c | 6 +++--- > > qapi/qmp-registry.c | 6 +++--- > > qga/commands.c | 2 +- > > qga/main.c | 6 +++--- > > 7 files changed, 17 insertions(+), 16 deletions(-) > > > > diff --git a/include/qapi/qmp/dispatch.h b/include/qapi/qmp/dispatch.h > > index 9aa426a398..5a9cf82472 100644 > > --- a/include/qapi/qmp/dispatch.h > > +++ b/include/qapi/qmp/dispatch.h > > @@ -39,7 +39,8 @@ typedef QTAILQ_HEAD(QmpCommandList, QmpCommand) QmpCommandList; > > > > void qmp_register_command(QmpCommandList *cmds, const char *name, > > QmpCommandFunc *fn, QmpCommandOptions options); > > -QmpCommand *qmp_find_command(QmpCommandList *cmds, const char *name); > > +const QmpCommand *qmp_find_command(const QmpCommandList *cmds, > > + const char *name); > > void qmp_disable_command(QmpCommandList *cmds, const char *name); > > void qmp_enable_command(QmpCommandList *cmds, const char *name); > > > > @@ -47,13 +48,13 @@ bool qmp_command_is_enabled(const QmpCommand *cmd); > > const char *qmp_command_name(const QmpCommand *cmd); > > bool qmp_has_success_response(const QmpCommand *cmd); > > QDict *qmp_error_response(Error *err); > > -QDict *qmp_dispatch(QmpCommandList *cmds, QObject *request, > > +QDict *qmp_dispatch(const QmpCommandList *cmds, QObject *request, > > bool allow_oob); > > bool qmp_is_oob(const QDict *dict); > > > > -typedef void (*qmp_cmd_callback_fn)(QmpCommand *cmd, void *opaque); > > +typedef void (*qmp_cmd_callback_fn)(const QmpCommand *cmd, void *opaque); > > > > -void qmp_for_each_command(QmpCommandList *cmds, qmp_cmd_callback_fn fn, > > +void qmp_for_each_command(const QmpCommandList *cmds, qmp_cmd_callback_fn fn, > > void *opaque); > > > > #endif > > diff --git a/monitor/misc.c b/monitor/misc.c > > index 3baa15f3bf..3052bfe8f1 100644 > > --- a/monitor/misc.c > > +++ b/monitor/misc.c > > @@ -230,7 +230,7 @@ static void hmp_info_help(Monitor *mon, const QDict *qdict) > > help_cmd(mon, "info"); > > } > > > > -static void query_commands_cb(QmpCommand *cmd, void *opaque) > > +static void query_commands_cb(const QmpCommand *cmd, void *opaque) > > { > > CommandInfoList *info, **list = opaque; > > > > diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h > > index d78f5ca190..3e7dac5910 100644 > > --- a/monitor/monitor-internal.h > > +++ b/monitor/monitor-internal.h > > @@ -132,7 +132,7 @@ typedef struct { > > * qmp_capabilities succeeds, we go into command mode, and > > * @command becomes &qmp_commands. > > */ > > - QmpCommandList *commands; > > + const QmpCommandList *commands; > > bool capab_offered[QMP_CAPABILITY__MAX]; /* capabilities offered */ > > bool capab[QMP_CAPABILITY__MAX]; /* offered and accepted */ > > /* > > diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c > > index bc264b3c9b..857399c5fe 100644 > > --- a/qapi/qmp-dispatch.c > > +++ b/qapi/qmp-dispatch.c > > @@ -75,14 +75,14 @@ static QDict *qmp_dispatch_check_obj(const QObject *request, bool allow_oob, > > return dict; > > } > > > > -static QObject *do_qmp_dispatch(QmpCommandList *cmds, QObject *request, > > +static QObject *do_qmp_dispatch(const QmpCommandList *cmds, QObject *request, > > bool allow_oob, Error **errp) > > { > > Error *local_err = NULL; > > bool oob; > > const char *command; > > QDict *args, *dict; > > - QmpCommand *cmd; > > + const QmpCommand *cmd; > > QObject *ret = NULL; > > > > dict = qmp_dispatch_check_obj(request, allow_oob, errp); > > @@ -164,7 +164,7 @@ bool qmp_is_oob(const QDict *dict) > > && !qdict_haskey(dict, "execute"); > > } > > > > -QDict *qmp_dispatch(QmpCommandList *cmds, QObject *request, > > +QDict *qmp_dispatch(const QmpCommandList *cmds, QObject *request, > > bool allow_oob) > > { > > Error *err = NULL; > > diff --git a/qapi/qmp-registry.c b/qapi/qmp-registry.c > > index ca00f74795..d0f9a1d3e3 100644 > > --- a/qapi/qmp-registry.c > > +++ b/qapi/qmp-registry.c > > @@ -27,7 +27,7 @@ void qmp_register_command(QmpCommandList *cmds, const char *name, > > QTAILQ_INSERT_TAIL(cmds, cmd, node); > > } > > > > -QmpCommand *qmp_find_command(QmpCommandList *cmds, const char *name) > > +const QmpCommand *qmp_find_command(const QmpCommandList *cmds, const char *name) > > { > > QmpCommand *cmd; > > > > @@ -77,10 +77,10 @@ bool qmp_has_success_response(const QmpCommand *cmd) > > return !(cmd->options & QCO_NO_SUCCESS_RESP); > > } > > > > -void qmp_for_each_command(QmpCommandList *cmds, qmp_cmd_callback_fn fn, > > +void qmp_for_each_command(const QmpCommandList *cmds, qmp_cmd_callback_fn fn, > > void *opaque) > > { > > - QmpCommand *cmd; > > + const QmpCommand *cmd; > > > > QTAILQ_FOREACH(cmd, cmds, node) { > > fn(cmd, opaque); > > diff --git a/qga/commands.c b/qga/commands.c > > index 0c7d1385c2..05e9ab6c3d 100644 > > --- a/qga/commands.c > > +++ b/qga/commands.c > > @@ -54,7 +54,7 @@ void qmp_guest_ping(Error **errp) > > slog("guest-ping called"); > > } > > > > -static void qmp_command_info(QmpCommand *cmd, void *opaque) > > +static void qmp_command_info(const QmpCommand *cmd, void *opaque) > > { > > GuestAgentInfo *info = opaque; > > GuestAgentCommandInfo *cmd_info; > > diff --git a/qga/main.c b/qga/main.c > > index c35c2a2120..f23614528e 100644 > > --- a/qga/main.c > > +++ b/qga/main.c > > @@ -359,7 +359,7 @@ static gint ga_strcmp(gconstpointer str1, gconstpointer str2) > > } > > > > /* disable commands that aren't safe for fsfreeze */ > > -static void ga_disable_non_whitelisted(QmpCommand *cmd, void *opaque) > > +static void ga_disable_non_whitelisted(const QmpCommand *cmd, void *opaque) > > { > > bool whitelisted = false; > > int i = 0; > > @@ -378,7 +378,7 @@ static void ga_disable_non_whitelisted(QmpCommand *cmd, void *opaque) > > } > > > > /* [re-]enable all commands, except those explicitly blacklisted by user */ > > -static void ga_enable_non_blacklisted(QmpCommand *cmd, void *opaque) > > +static void ga_enable_non_blacklisted(const QmpCommand *cmd, void *opaque) > > { > > GList *blacklist = opaque; > > const char *name = qmp_command_name(cmd); > > @@ -918,7 +918,7 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp) > > return handle; > > } > > > > -static void ga_print_cmd(QmpCommand *cmd, void *opaque) > > +static void ga_print_cmd(const QmpCommand *cmd, void *opaque) > > { > > printf("%s\n", qmp_command_name(cmd)); > > } > > > > Reviewed-by: Damien Hedde <damien.hedde@greensocs.com> > > Damien >
diff --git a/include/qapi/qmp/dispatch.h b/include/qapi/qmp/dispatch.h index 9aa426a398..5a9cf82472 100644 --- a/include/qapi/qmp/dispatch.h +++ b/include/qapi/qmp/dispatch.h @@ -39,7 +39,8 @@ typedef QTAILQ_HEAD(QmpCommandList, QmpCommand) QmpCommandList; void qmp_register_command(QmpCommandList *cmds, const char *name, QmpCommandFunc *fn, QmpCommandOptions options); -QmpCommand *qmp_find_command(QmpCommandList *cmds, const char *name); +const QmpCommand *qmp_find_command(const QmpCommandList *cmds, + const char *name); void qmp_disable_command(QmpCommandList *cmds, const char *name); void qmp_enable_command(QmpCommandList *cmds, const char *name); @@ -47,13 +48,13 @@ bool qmp_command_is_enabled(const QmpCommand *cmd); const char *qmp_command_name(const QmpCommand *cmd); bool qmp_has_success_response(const QmpCommand *cmd); QDict *qmp_error_response(Error *err); -QDict *qmp_dispatch(QmpCommandList *cmds, QObject *request, +QDict *qmp_dispatch(const QmpCommandList *cmds, QObject *request, bool allow_oob); bool qmp_is_oob(const QDict *dict); -typedef void (*qmp_cmd_callback_fn)(QmpCommand *cmd, void *opaque); +typedef void (*qmp_cmd_callback_fn)(const QmpCommand *cmd, void *opaque); -void qmp_for_each_command(QmpCommandList *cmds, qmp_cmd_callback_fn fn, +void qmp_for_each_command(const QmpCommandList *cmds, qmp_cmd_callback_fn fn, void *opaque); #endif diff --git a/monitor/misc.c b/monitor/misc.c index 3baa15f3bf..3052bfe8f1 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -230,7 +230,7 @@ static void hmp_info_help(Monitor *mon, const QDict *qdict) help_cmd(mon, "info"); } -static void query_commands_cb(QmpCommand *cmd, void *opaque) +static void query_commands_cb(const QmpCommand *cmd, void *opaque) { CommandInfoList *info, **list = opaque; diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h index d78f5ca190..3e7dac5910 100644 --- a/monitor/monitor-internal.h +++ b/monitor/monitor-internal.h @@ -132,7 +132,7 @@ typedef struct { * qmp_capabilities succeeds, we go into command mode, and * @command becomes &qmp_commands. */ - QmpCommandList *commands; + const QmpCommandList *commands; bool capab_offered[QMP_CAPABILITY__MAX]; /* capabilities offered */ bool capab[QMP_CAPABILITY__MAX]; /* offered and accepted */ /* diff --git a/qapi/qmp-dispatch.c b/qapi/qmp-dispatch.c index bc264b3c9b..857399c5fe 100644 --- a/qapi/qmp-dispatch.c +++ b/qapi/qmp-dispatch.c @@ -75,14 +75,14 @@ static QDict *qmp_dispatch_check_obj(const QObject *request, bool allow_oob, return dict; } -static QObject *do_qmp_dispatch(QmpCommandList *cmds, QObject *request, +static QObject *do_qmp_dispatch(const QmpCommandList *cmds, QObject *request, bool allow_oob, Error **errp) { Error *local_err = NULL; bool oob; const char *command; QDict *args, *dict; - QmpCommand *cmd; + const QmpCommand *cmd; QObject *ret = NULL; dict = qmp_dispatch_check_obj(request, allow_oob, errp); @@ -164,7 +164,7 @@ bool qmp_is_oob(const QDict *dict) && !qdict_haskey(dict, "execute"); } -QDict *qmp_dispatch(QmpCommandList *cmds, QObject *request, +QDict *qmp_dispatch(const QmpCommandList *cmds, QObject *request, bool allow_oob) { Error *err = NULL; diff --git a/qapi/qmp-registry.c b/qapi/qmp-registry.c index ca00f74795..d0f9a1d3e3 100644 --- a/qapi/qmp-registry.c +++ b/qapi/qmp-registry.c @@ -27,7 +27,7 @@ void qmp_register_command(QmpCommandList *cmds, const char *name, QTAILQ_INSERT_TAIL(cmds, cmd, node); } -QmpCommand *qmp_find_command(QmpCommandList *cmds, const char *name) +const QmpCommand *qmp_find_command(const QmpCommandList *cmds, const char *name) { QmpCommand *cmd; @@ -77,10 +77,10 @@ bool qmp_has_success_response(const QmpCommand *cmd) return !(cmd->options & QCO_NO_SUCCESS_RESP); } -void qmp_for_each_command(QmpCommandList *cmds, qmp_cmd_callback_fn fn, +void qmp_for_each_command(const QmpCommandList *cmds, qmp_cmd_callback_fn fn, void *opaque) { - QmpCommand *cmd; + const QmpCommand *cmd; QTAILQ_FOREACH(cmd, cmds, node) { fn(cmd, opaque); diff --git a/qga/commands.c b/qga/commands.c index 0c7d1385c2..05e9ab6c3d 100644 --- a/qga/commands.c +++ b/qga/commands.c @@ -54,7 +54,7 @@ void qmp_guest_ping(Error **errp) slog("guest-ping called"); } -static void qmp_command_info(QmpCommand *cmd, void *opaque) +static void qmp_command_info(const QmpCommand *cmd, void *opaque) { GuestAgentInfo *info = opaque; GuestAgentCommandInfo *cmd_info; diff --git a/qga/main.c b/qga/main.c index c35c2a2120..f23614528e 100644 --- a/qga/main.c +++ b/qga/main.c @@ -359,7 +359,7 @@ static gint ga_strcmp(gconstpointer str1, gconstpointer str2) } /* disable commands that aren't safe for fsfreeze */ -static void ga_disable_non_whitelisted(QmpCommand *cmd, void *opaque) +static void ga_disable_non_whitelisted(const QmpCommand *cmd, void *opaque) { bool whitelisted = false; int i = 0; @@ -378,7 +378,7 @@ static void ga_disable_non_whitelisted(QmpCommand *cmd, void *opaque) } /* [re-]enable all commands, except those explicitly blacklisted by user */ -static void ga_enable_non_blacklisted(QmpCommand *cmd, void *opaque) +static void ga_enable_non_blacklisted(const QmpCommand *cmd, void *opaque) { GList *blacklist = opaque; const char *name = qmp_command_name(cmd); @@ -918,7 +918,7 @@ int64_t ga_get_fd_handle(GAState *s, Error **errp) return handle; } -static void ga_print_cmd(QmpCommand *cmd, void *opaque) +static void ga_print_cmd(const QmpCommand *cmd, void *opaque) { printf("%s\n", qmp_command_name(cmd)); }
Since 0b69f6f72ce47a37a749b056b6d5ec64c61f11e8 "qapi: remove qmp_unregister_command()", the command list can be declared const. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> --- include/qapi/qmp/dispatch.h | 9 +++++---- monitor/misc.c | 2 +- monitor/monitor-internal.h | 2 +- qapi/qmp-dispatch.c | 6 +++--- qapi/qmp-registry.c | 6 +++--- qga/commands.c | 2 +- qga/main.c | 6 +++--- 7 files changed, 17 insertions(+), 16 deletions(-)