[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 06/36] monitor: destaticize HMP commands
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [PATCH v6 06/36] monitor: destaticize HMP commands |
Date: |
Thu, 9 Apr 2020 18:51:27 +0100 |
User-agent: |
Mutt/1.13.4 (2020-02-15) |
* address@hidden (address@hidden) wrote:
> From: Jagannathan Raman <address@hidden>
>
> Signed-off-by: Elena Ufimtseva <address@hidden>
> Signed-off-by: John G Johnson <address@hidden>
> Signed-off-by: Jagannathan Raman <address@hidden>
Hmm OK, so
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
but it might be better where you can, to restrict these to the ones you
want to share with your processes; for example I doubt hmp_wavcapture
would be shared.
Dave
> ---
> hmp-commands.hx | 4 +-
> monitor/misc.c | 76 +++++++++++++++++++-------------------
> monitor/monitor-internal.h | 38 +++++++++++++++++++
> 3 files changed, 78 insertions(+), 40 deletions(-)
>
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index 7f0f3974ad..02cae25c24 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -11,7 +11,7 @@ HXCOMM HXCOMM can be used for comments, discarded from both
> rST and C.
> .args_type = "name:S?",
> .params = "[cmd]",
> .help = "show the help",
> - .cmd = do_help_cmd,
> + .cmd = hmp_do_help_cmd,
> .flags = "p",
> },
>
> @@ -555,7 +555,7 @@ ERST
> .args_type = "fmt:/,val:l",
> .params = "/fmt expr",
> .help = "print expression value (use $reg for CPU register
> access)",
> - .cmd = do_print,
> + .cmd = hmp_do_print,
> },
>
> SRST
> diff --git a/monitor/misc.c b/monitor/misc.c
> index 6c45fa490f..c0eee6f4ab 100644
> --- a/monitor/misc.c
> +++ b/monitor/misc.c
> @@ -178,12 +178,12 @@ int hmp_compare_cmd(const char *name, const char *list)
> return 0;
> }
>
> -static void do_help_cmd(Monitor *mon, const QDict *qdict)
> +void hmp_do_help_cmd(Monitor *mon, const QDict *qdict)
> {
> help_cmd(mon, qdict_get_try_str(qdict, "name"));
> }
>
> -static void hmp_trace_event(Monitor *mon, const QDict *qdict)
> +void hmp_trace_event(Monitor *mon, const QDict *qdict)
> {
> const char *tp_name = qdict_get_str(qdict, "name");
> bool new_state = qdict_get_bool(qdict, "option");
> @@ -227,7 +227,7 @@ static void hmp_trace_file(Monitor *mon, const QDict
> *qdict)
> }
> #endif
>
> -static void hmp_info_help(Monitor *mon, const QDict *qdict)
> +void hmp_info_help(Monitor *mon, const QDict *qdict)
> {
> help_cmd(mon, "info");
> }
> @@ -315,7 +315,7 @@ int monitor_get_cpu_index(void)
> return cs ? cs->cpu_index : UNASSIGNED_CPU_INDEX;
> }
>
> -static void hmp_info_registers(Monitor *mon, const QDict *qdict)
> +void hmp_info_registers(Monitor *mon, const QDict *qdict)
> {
> bool all_cpus = qdict_get_try_bool(qdict, "cpustate_all", false);
> CPUState *cs;
> @@ -338,7 +338,7 @@ static void hmp_info_registers(Monitor *mon, const QDict
> *qdict)
> }
>
> #ifdef CONFIG_TCG
> -static void hmp_info_jit(Monitor *mon, const QDict *qdict)
> +void hmp_info_jit(Monitor *mon, const QDict *qdict)
> {
> if (!tcg_enabled()) {
> error_report("JIT information is only available with accel=tcg");
> @@ -349,13 +349,13 @@ static void hmp_info_jit(Monitor *mon, const QDict
> *qdict)
> dump_drift_info();
> }
>
> -static void hmp_info_opcount(Monitor *mon, const QDict *qdict)
> +void hmp_info_opcount(Monitor *mon, const QDict *qdict)
> {
> dump_opcount_info();
> }
> #endif
>
> -static void hmp_info_sync_profile(Monitor *mon, const QDict *qdict)
> +void hmp_info_sync_profile(Monitor *mon, const QDict *qdict)
> {
> int64_t max = qdict_get_try_int(qdict, "max", 10);
> bool mean = qdict_get_try_bool(qdict, "mean", false);
> @@ -366,7 +366,7 @@ static void hmp_info_sync_profile(Monitor *mon, const
> QDict *qdict)
> qsp_report(max, sort_by, coalesce);
> }
>
> -static void hmp_info_history(Monitor *mon, const QDict *qdict)
> +void hmp_info_history(Monitor *mon, const QDict *qdict)
> {
> MonitorHMP *hmp_mon = container_of(mon, MonitorHMP, common);
> int i;
> @@ -386,7 +386,7 @@ static void hmp_info_history(Monitor *mon, const QDict
> *qdict)
> }
> }
>
> -static void hmp_info_cpustats(Monitor *mon, const QDict *qdict)
> +void hmp_info_cpustats(Monitor *mon, const QDict *qdict)
> {
> CPUState *cs = mon_get_cpu();
>
> @@ -397,7 +397,7 @@ static void hmp_info_cpustats(Monitor *mon, const QDict
> *qdict)
> cpu_dump_statistics(cs, 0);
> }
>
> -static void hmp_info_trace_events(Monitor *mon, const QDict *qdict)
> +void hmp_info_trace_events(Monitor *mon, const QDict *qdict)
> {
> const char *name = qdict_get_try_str(qdict, "name");
> bool has_vcpu = qdict_haskey(qdict, "vcpu");
> @@ -457,7 +457,7 @@ void qmp_client_migrate_info(const char *protocol, const
> char *hostname,
> error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "protocol", "spice");
> }
>
> -static void hmp_logfile(Monitor *mon, const QDict *qdict)
> +void hmp_logfile(Monitor *mon, const QDict *qdict)
> {
> Error *err = NULL;
>
> @@ -467,7 +467,7 @@ static void hmp_logfile(Monitor *mon, const QDict *qdict)
> }
> }
>
> -static void hmp_log(Monitor *mon, const QDict *qdict)
> +void hmp_log(Monitor *mon, const QDict *qdict)
> {
> int mask;
> const char *items = qdict_get_str(qdict, "items");
> @@ -484,7 +484,7 @@ static void hmp_log(Monitor *mon, const QDict *qdict)
> qemu_set_log(mask);
> }
>
> -static void hmp_singlestep(Monitor *mon, const QDict *qdict)
> +void hmp_singlestep(Monitor *mon, const QDict *qdict)
> {
> const char *option = qdict_get_try_str(qdict, "option");
> if (!option || !strcmp(option, "on")) {
> @@ -496,7 +496,7 @@ static void hmp_singlestep(Monitor *mon, const QDict
> *qdict)
> }
> }
>
> -static void hmp_gdbserver(Monitor *mon, const QDict *qdict)
> +void hmp_gdbserver(Monitor *mon, const QDict *qdict)
> {
> const char *device = qdict_get_try_str(qdict, "device");
> if (!device)
> @@ -512,7 +512,7 @@ static void hmp_gdbserver(Monitor *mon, const QDict
> *qdict)
> }
> }
>
> -static void hmp_watchdog_action(Monitor *mon, const QDict *qdict)
> +void hmp_watchdog_action(Monitor *mon, const QDict *qdict)
> {
> const char *action = qdict_get_str(qdict, "action");
> if (select_watchdog_action(action) == -1) {
> @@ -654,7 +654,7 @@ static void memory_dump(Monitor *mon, int count, int
> format, int wsize,
> }
> }
>
> -static void hmp_memory_dump(Monitor *mon, const QDict *qdict)
> +void hmp_memory_dump(Monitor *mon, const QDict *qdict)
> {
> int count = qdict_get_int(qdict, "count");
> int format = qdict_get_int(qdict, "format");
> @@ -664,7 +664,7 @@ static void hmp_memory_dump(Monitor *mon, const QDict
> *qdict)
> memory_dump(mon, count, format, size, addr, 0);
> }
>
> -static void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict)
> +void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict)
> {
> int count = qdict_get_int(qdict, "count");
> int format = qdict_get_int(qdict, "format");
> @@ -694,7 +694,7 @@ static void *gpa2hva(MemoryRegion **p_mr, hwaddr addr,
> Error **errp)
> return qemu_map_ram_ptr(mrs.mr->ram_block, mrs.offset_within_region);
> }
>
> -static void hmp_gpa2hva(Monitor *mon, const QDict *qdict)
> +void hmp_gpa2hva(Monitor *mon, const QDict *qdict)
> {
> hwaddr addr = qdict_get_int(qdict, "addr");
> Error *local_err = NULL;
> @@ -714,7 +714,7 @@ static void hmp_gpa2hva(Monitor *mon, const QDict *qdict)
> memory_region_unref(mr);
> }
>
> -static void hmp_gva2gpa(Monitor *mon, const QDict *qdict)
> +void hmp_gva2gpa(Monitor *mon, const QDict *qdict)
> {
> target_ulong addr = qdict_get_int(qdict, "addr");
> MemTxAttrs attrs;
> @@ -769,7 +769,7 @@ out:
> return ret;
> }
>
> -static void hmp_gpa2hpa(Monitor *mon, const QDict *qdict)
> +void hmp_gpa2hpa(Monitor *mon, const QDict *qdict)
> {
> hwaddr addr = qdict_get_int(qdict, "addr");
> Error *local_err = NULL;
> @@ -796,7 +796,7 @@ static void hmp_gpa2hpa(Monitor *mon, const QDict *qdict)
> }
> #endif
>
> -static void do_print(Monitor *mon, const QDict *qdict)
> +void hmp_do_print(Monitor *mon, const QDict *qdict)
> {
> int format = qdict_get_int(qdict, "format");
> hwaddr val = qdict_get_int(qdict, "val");
> @@ -822,7 +822,7 @@ static void do_print(Monitor *mon, const QDict *qdict)
> monitor_printf(mon, "\n");
> }
>
> -static void hmp_sum(Monitor *mon, const QDict *qdict)
> +void hmp_sum(Monitor *mon, const QDict *qdict)
> {
> uint32_t addr;
> uint16_t sum;
> @@ -842,7 +842,7 @@ static void hmp_sum(Monitor *mon, const QDict *qdict)
>
> static int mouse_button_state;
>
> -static void hmp_mouse_move(Monitor *mon, const QDict *qdict)
> +void hmp_mouse_move(Monitor *mon, const QDict *qdict)
> {
> int dx, dy, dz, button;
> const char *dx_str = qdict_get_str(qdict, "dx_str");
> @@ -866,7 +866,7 @@ static void hmp_mouse_move(Monitor *mon, const QDict
> *qdict)
> qemu_input_event_sync();
> }
>
> -static void hmp_mouse_button(Monitor *mon, const QDict *qdict)
> +void hmp_mouse_button(Monitor *mon, const QDict *qdict)
> {
> static uint32_t bmap[INPUT_BUTTON__MAX] = {
> [INPUT_BUTTON_LEFT] = MOUSE_EVENT_LBUTTON,
> @@ -883,7 +883,7 @@ static void hmp_mouse_button(Monitor *mon, const QDict
> *qdict)
> mouse_button_state = button_state;
> }
>
> -static void hmp_ioport_read(Monitor *mon, const QDict *qdict)
> +void hmp_ioport_read(Monitor *mon, const QDict *qdict)
> {
> int size = qdict_get_int(qdict, "size");
> int addr = qdict_get_int(qdict, "addr");
> @@ -917,7 +917,7 @@ static void hmp_ioport_read(Monitor *mon, const QDict
> *qdict)
> suffix, addr, size * 2, val);
> }
>
> -static void hmp_ioport_write(Monitor *mon, const QDict *qdict)
> +void hmp_ioport_write(Monitor *mon, const QDict *qdict)
> {
> int size = qdict_get_int(qdict, "size");
> int addr = qdict_get_int(qdict, "addr");
> @@ -939,7 +939,7 @@ static void hmp_ioport_write(Monitor *mon, const QDict
> *qdict)
> }
> }
>
> -static void hmp_boot_set(Monitor *mon, const QDict *qdict)
> +void hmp_boot_set(Monitor *mon, const QDict *qdict)
> {
> Error *local_err = NULL;
> const char *bootdevice = qdict_get_str(qdict, "bootdevice");
> @@ -952,7 +952,7 @@ static void hmp_boot_set(Monitor *mon, const QDict *qdict)
> }
> }
>
> -static void hmp_info_mtree(Monitor *mon, const QDict *qdict)
> +void hmp_info_mtree(Monitor *mon, const QDict *qdict)
> {
> bool flatview = qdict_get_try_bool(qdict, "flatview", false);
> bool dispatch_tree = qdict_get_try_bool(qdict, "dispatch_tree", false);
> @@ -965,7 +965,7 @@ static void hmp_info_mtree(Monitor *mon, const QDict
> *qdict)
>
> int64_t dev_time;
>
> -static void hmp_info_profile(Monitor *mon, const QDict *qdict)
> +void hmp_info_profile(Monitor *mon, const QDict *qdict)
> {
> static int64_t last_cpu_exec_time;
> int64_t cpu_exec_time;
> @@ -982,7 +982,7 @@ static void hmp_info_profile(Monitor *mon, const QDict
> *qdict)
> dev_time = 0;
> }
> #else
> -static void hmp_info_profile(Monitor *mon, const QDict *qdict)
> +void hmp_info_profile(Monitor *mon, const QDict *qdict)
> {
> monitor_printf(mon, "Internal profiler not compiled\n");
> }
> @@ -991,7 +991,7 @@ static void hmp_info_profile(Monitor *mon, const QDict
> *qdict)
> /* Capture support */
> static QLIST_HEAD (capture_list_head, CaptureState) capture_head;
>
> -static void hmp_info_capture(Monitor *mon, const QDict *qdict)
> +void hmp_info_capture(Monitor *mon, const QDict *qdict)
> {
> int i;
> CaptureState *s;
> @@ -1002,7 +1002,7 @@ static void hmp_info_capture(Monitor *mon, const QDict
> *qdict)
> }
> }
>
> -static void hmp_stopcapture(Monitor *mon, const QDict *qdict)
> +void hmp_stopcapture(Monitor *mon, const QDict *qdict)
> {
> int i;
> int n = qdict_get_int(qdict, "n");
> @@ -1018,7 +1018,7 @@ static void hmp_stopcapture(Monitor *mon, const QDict
> *qdict)
> }
> }
>
> -static void hmp_wavcapture(Monitor *mon, const QDict *qdict)
> +void hmp_wavcapture(Monitor *mon, const QDict *qdict)
> {
> const char *path = qdict_get_str(qdict, "path");
> int freq = qdict_get_try_int(qdict, "freq", 44100);
> @@ -1071,7 +1071,7 @@ static void hmp_warn_acl(void)
> warn_acl = true;
> }
>
> -static void hmp_acl_show(Monitor *mon, const QDict *qdict)
> +void hmp_acl_show(Monitor *mon, const QDict *qdict)
> {
> const char *aclname = qdict_get_str(qdict, "aclname");
> QAuthZList *auth = find_auth(mon, aclname);
> @@ -1098,7 +1098,7 @@ static void hmp_acl_show(Monitor *mon, const QDict
> *qdict)
> }
> }
>
> -static void hmp_acl_reset(Monitor *mon, const QDict *qdict)
> +void hmp_acl_reset(Monitor *mon, const QDict *qdict)
> {
> const char *aclname = qdict_get_str(qdict, "aclname");
> QAuthZList *auth = find_auth(mon, aclname);
> @@ -1115,7 +1115,7 @@ static void hmp_acl_reset(Monitor *mon, const QDict
> *qdict)
> monitor_printf(mon, "acl: removed all rules\n");
> }
>
> -static void hmp_acl_policy(Monitor *mon, const QDict *qdict)
> +void hmp_acl_policy(Monitor *mon, const QDict *qdict)
> {
> const char *aclname = qdict_get_str(qdict, "aclname");
> const char *policy = qdict_get_str(qdict, "policy");
> @@ -1156,7 +1156,7 @@ static QAuthZListFormat hmp_acl_get_format(const char
> *match)
> }
> }
>
> -static void hmp_acl_add(Monitor *mon, const QDict *qdict)
> +void hmp_acl_add(Monitor *mon, const QDict *qdict)
> {
> const char *aclname = qdict_get_str(qdict, "aclname");
> const char *match = qdict_get_str(qdict, "match");
> @@ -1209,7 +1209,7 @@ static void hmp_acl_add(Monitor *mon, const QDict
> *qdict)
> }
> }
>
> -static void hmp_acl_remove(Monitor *mon, const QDict *qdict)
> +void hmp_acl_remove(Monitor *mon, const QDict *qdict)
> {
> const char *aclname = qdict_get_str(qdict, "aclname");
> const char *match = qdict_get_str(qdict, "match");
> diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h
> index 8f60ccc70a..bc8c9fa16b 100644
> --- a/monitor/monitor-internal.h
> +++ b/monitor/monitor-internal.h
> @@ -183,4 +183,42 @@ int hmp_compare_cmd(const char *name, const char *list);
> void qmp_query_qmp_schema(QDict *qdict, QObject **ret_data,
> Error **errp);
>
> +void hmp_do_help_cmd(Monitor *mon, const QDict *qdict);
> +void hmp_trace_event(Monitor *mon, const QDict *qdict);
> +void hmp_info_help(Monitor *mon, const QDict *qdict);
> +void hmp_info_registers(Monitor *mon, const QDict *qdict);
> +void hmp_info_jit(Monitor *mon, const QDict *qdict);
> +void hmp_info_opcount(Monitor *mon, const QDict *qdict);
> +void hmp_info_sync_profile(Monitor *mon, const QDict *qdict);
> +void hmp_info_history(Monitor *mon, const QDict *qdict);
> +void hmp_info_cpustats(Monitor *mon, const QDict *qdict);
> +void hmp_info_trace_events(Monitor *mon, const QDict *qdict);
> +void hmp_logfile(Monitor *mon, const QDict *qdict);
> +void hmp_log(Monitor *mon, const QDict *qdict);
> +void hmp_singlestep(Monitor *mon, const QDict *qdict);
> +void hmp_gdbserver(Monitor *mon, const QDict *qdict);
> +void hmp_watchdog_action(Monitor *mon, const QDict *qdict);
> +void hmp_memory_dump(Monitor *mon, const QDict *qdict);
> +void hmp_physical_memory_dump(Monitor *mon, const QDict *qdict);
> +void hmp_gpa2hva(Monitor *mon, const QDict *qdict);
> +void hmp_gva2gpa(Monitor *mon, const QDict *qdict);
> +void hmp_gpa2hpa(Monitor *mon, const QDict *qdict);
> +void hmp_do_print(Monitor *mon, const QDict *qdict);
> +void hmp_sum(Monitor *mon, const QDict *qdict);
> +void hmp_mouse_move(Monitor *mon, const QDict *qdict);
> +void hmp_mouse_button(Monitor *mon, const QDict *qdict);
> +void hmp_ioport_read(Monitor *mon, const QDict *qdict);
> +void hmp_ioport_write(Monitor *mon, const QDict *qdict);
> +void hmp_boot_set(Monitor *mon, const QDict *qdict);
> +void hmp_info_mtree(Monitor *mon, const QDict *qdict);
> +void hmp_info_profile(Monitor *mon, const QDict *qdict);
> +void hmp_info_capture(Monitor *mon, const QDict *qdict);
> +void hmp_stopcapture(Monitor *mon, const QDict *qdict);
> +void hmp_wavcapture(Monitor *mon, const QDict *qdict);
> +void hmp_acl_show(Monitor *mon, const QDict *qdict);
> +void hmp_acl_reset(Monitor *mon, const QDict *qdict);
> +void hmp_acl_policy(Monitor *mon, const QDict *qdict);
> +void hmp_acl_add(Monitor *mon, const QDict *qdict);
> +void hmp_acl_remove(Monitor *mon, const QDict *qdict);
> +
> #endif
> --
> 2.25.GIT
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- [PATCH v6 29/36] multi-process: handle heartbeat messages in remote process, (continued)
- [PATCH v6 29/36] multi-process: handle heartbeat messages in remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 31/36] multi-process/mon: choose HMP commands based on target, elena . ufimtseva, 2020/04/06
- [PATCH v6 23/36] multi-process: create IOHUB object to handle irq, elena . ufimtseva, 2020/04/06
- [PATCH v6 33/36] multi-process/mon: enable QMP module support in the remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 36/36] multi-process: add configure and usage information, elena . ufimtseva, 2020/04/06
- [PATCH v6 32/36] multi-process/mon: stub functions to enable QMP module for remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 35/36] multi-process: add the concept description to docs/devel/qemu-multiprocess, elena . ufimtseva, 2020/04/06
- [PATCH v6 02/36] multi-process: Refactor machine_init and exit notifiers, elena . ufimtseva, 2020/04/06
- [PATCH v6 03/36] command-line: refractor parser code, elena . ufimtseva, 2020/04/06
- [PATCH v6 06/36] monitor: destaticize HMP commands, elena . ufimtseva, 2020/04/06
- Re: [PATCH v6 06/36] monitor: destaticize HMP commands,
Dr. David Alan Gilbert <=
- [PATCH v6 09/36] multi-process: Add config option for multi-process QEMU, elena . ufimtseva, 2020/04/06
- [PATCH v6 11/36] multi-process: define mpqemu-link object, elena . ufimtseva, 2020/04/06
- [PATCH v6 24/36] multi-process: Retrieve PCI info from remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 27/36] multi-process: add support to parse device option, elena . ufimtseva, 2020/04/06
- [PATCH v6 30/36] multi-process: perform device reset in the remote process, elena . ufimtseva, 2020/04/06
- [PATCH v6 34/36] multi-process/mon: Initialize QMP module for remote processes, elena . ufimtseva, 2020/04/06
- Re: [PATCH v6 00/36] Initial support for multi-process qemu, no-reply, 2020/04/06
- Re: [PATCH v6 00/36] Initial support for multi-process qemu, no-reply, 2020/04/06