* Emilio G. Cota (c...@braap.org) wrote: > The command introduced here is just for developers. This means that: > > - the interface implemented here could change in the future > - the command is only meant to be used from HMP, not from QMP > > Signed-off-by: Emilio G. Cota <c...@braap.org> > --- > hmp.h | 1 + > hmp.c | 24 ++++++++++++++++++++++++ > hmp-commands.hx | 15 +++++++++++++++ > 3 files changed, 40 insertions(+) > > diff --git a/hmp.h b/hmp.h > index 33354f1bdd..5f1addcca2 100644 > --- a/hmp.h > +++ b/hmp.h > @@ -42,6 +42,7 @@ void hmp_info_tpm(Monitor *mon, const QDict *qdict); > void hmp_info_iothreads(Monitor *mon, const QDict *qdict); > void hmp_quit(Monitor *mon, const QDict *qdict); > void hmp_stop(Monitor *mon, const QDict *qdict); > +void hmp_sync_profile(Monitor *mon, const QDict *qdict); > void hmp_system_reset(Monitor *mon, const QDict *qdict); > void hmp_system_powerdown(Monitor *mon, const QDict *qdict); > void hmp_exit_preconfig(Monitor *mon, const QDict *qdict); > diff --git a/hmp.c b/hmp.c > index 2aafb50e8e..d94a47f7c7 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -1062,6 +1062,30 @@ void hmp_stop(Monitor *mon, const QDict *qdict) > qmp_stop(NULL); > } > > +void hmp_sync_profile(Monitor *mon, const QDict *qdict) > +{ > + const char *op = qdict_get_try_str(qdict, "op"); > + > + if (op == NULL) { > + bool on = qsp_is_enabled(); > + > + monitor_printf(mon, "sync-profile is %s\n", on ? "on" : "off"); > + return; > + } > + if (!strcmp(op, "on")) { > + qsp_enable(); > + } else if (!strcmp(op, "off")) { > + qsp_disable(); > + } else if (!strcmp(op, "reset")) { > + qsp_reset(); > + } else { > + Error *err = NULL; > + > + error_setg(&err, QERR_INVALID_PARAMETER, op); > + hmp_handle_error(mon, &err); > + } > +} > + > void hmp_system_reset(Monitor *mon, const QDict *qdict) > { > qmp_system_reset(NULL); > diff --git a/hmp-commands.hx b/hmp-commands.hx > index c1fc747403..db0c681f74 100644 > --- a/hmp-commands.hx > +++ b/hmp-commands.hx > @@ -643,6 +643,21 @@ sendkey ctrl-alt-f1 > > This command is useful to send keys that your graphical user interface > intercepts at low level, such as @code{ctrl-alt-f1} in X Window. > +ETEXI > + { > + .name = "sync-profile", > + .args_type = "op:s?", > + .params = "[on|off|reset]", > + .help = "enable, disable or reset synchronization profiling. " > + "With no arguments, prints whether profiling is on or > off.", > + .cmd = hmp_sync_profile, > + },
That's OK; it'a little odd way to do it (I'd have expected a couple of booleans instead of the string); but it's OK, so Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > +STEXI > +@item sync-profile [on|off|reset] > +@findex sync-profile > +Enable, disable or reset synchronization profiling. With no arguments, prints > +whether profiling is on or off. > ETEXI > > { > -- > 2.17.1 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK