@@ -1630,6 +1630,7 @@ ETEXI
.params = "id",
.help = "remove chardev",
.mhandler.cmd = hmp_chardev_remove,
+ .command_completion = chardev_remove_completion,
},
STEXI
@@ -96,5 +96,7 @@ void device_add_completion(Monitor *mon, int nb_args, const char *str);
void device_del_completion(Monitor *mon, int nb_args, const char *str);
void object_add_completion(Monitor *mon, int nb_args, const char *str);
void object_del_completion(Monitor *mon, int nb_args, const char *str);
+void chardev_remove_completion(Monitor *mon, int nb_args, const char *str);
+
#endif
@@ -4346,6 +4346,29 @@ static void device_del_bus_completion(ReadLineState *rs, BusState *bus,
}
}
+void chardev_remove_completion(Monitor *mon, int nb_args, const char *str)
+{
+ size_t len;
+ ChardevInfoList *list, *start;
+
+ if (nb_args != 2) {
+ return;
+ }
+ len = strlen(str);
+ readline_set_completion_index(mon->rs, len);
+
+ start = list = qmp_query_chardev(NULL);
+ while (list) {
+ ChardevInfo *chr = list->value;
+
+ if (!strncmp(chr->label, str, len)) {
+ readline_add_completion(mon->rs, chr->label);
+ }
+ list = list->next;
+ }
+ qapi_free_ChardevInfoList(start);
+}
+
void device_del_completion(Monitor *mon, int nb_args, const char *str)
{
size_t len;
Signed-off-by: Hani Benhabiles <hani@linux.com> --- hmp-commands.hx | 1 + hmp.h | 2 ++ monitor.c | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+)