diff options
| author | Gerd Hoffmann <kraxel@redhat.com> | 2021-06-24 12:38:32 +0200 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-07-09 18:21:33 +0200 |
| commit | f0e48cbd791e88728fcea65366dbb6d9a63a16e5 (patch) | |
| tree | c8bf882d378d93dc931d31f05bf8043d096b82e7 /monitor/misc.c | |
| parent | dae0ec159f92050026961656e9b7ded1e72758a4 (diff) | |
| download | focaccia-qemu-f0e48cbd791e88728fcea65366dbb6d9a63a16e5.tar.gz focaccia-qemu-f0e48cbd791e88728fcea65366dbb6d9a63a16e5.zip | |
monitor: allow register hmp commands
Allow commands having a NULL cmd pointer, add a function to set the pointer later. Use case: allow modules implement hmp commands. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jose R. Ziviani <jziviani@suse.de> Message-Id: <20210624103836.2382472-31-kraxel@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'monitor/misc.c')
| -rw-r--r-- | monitor/misc.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/monitor/misc.c b/monitor/misc.c index 1539e18557..ad476c6e51 100644 --- a/monitor/misc.c +++ b/monitor/misc.c @@ -1974,6 +1974,22 @@ static void sortcmdlist(void) compare_mon_cmd); } +void monitor_register_hmp(const char *name, bool info, + void (*cmd)(Monitor *mon, const QDict *qdict)) +{ + HMPCommand *table = info ? hmp_info_cmds : hmp_cmds; + + while (table->name != NULL) { + if (strcmp(table->name, name) == 0) { + g_assert(table->cmd == NULL); + table->cmd = cmd; + return; + } + table++; + } + g_assert_not_reached(); +} + void monitor_init_globals(void) { monitor_init_globals_core(); |