aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHani Benhabiles <kroosec@gmail.com>2014-05-07 23:41:31 +0100
committerLuiz Capitulino <lcapitulino@redhat.com>2014-05-15 15:16:02 -0400
commitb162b49adc4cc6aa2c2ed0a31998f23dfe5983e6 (patch)
treecfe6485bc55c5b00507a0b86b0b2ef4e52ac1feb
parent40d19394b792fb80dba2f536fc13b5b604780a4d (diff)
monitor: Add netdev_add type argument completion.
Also update the command's documentation. Signed-off-by: Hani Benhabiles <hani@linux.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
-rw-r--r--hmp-commands.hx3
-rw-r--r--hmp.h1
-rw-r--r--monitor.c15
3 files changed, 18 insertions, 1 deletions
diff --git a/hmp-commands.hx b/hmp-commands.hx
index 3e7b29c99d..a7f9b2fd89 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1234,9 +1234,10 @@ ETEXI
{
.name = "netdev_add",
.args_type = "netdev:O",
- .params = "[user|tap|socket|hubport|netmap],id=str[,prop=value][,...]",
+ .params = "[user|tap|socket|vde|bridge|hubport|netmap],id=str[,prop=value][,...]",
.help = "add host network device",
.mhandler.cmd = hmp_netdev_add,
+ .command_completion = netdev_add_completion,
},
STEXI
diff --git a/hmp.h b/hmp.h
index 91c9c8539a..bcecd0da16 100644
--- a/hmp.h
+++ b/hmp.h
@@ -101,5 +101,6 @@ void sendkey_completion(ReadLineState *rs, int nb_args, const char *str);
void chardev_remove_completion(ReadLineState *rs, int nb_args, const char *str);
void chardev_add_completion(ReadLineState *rs, int nb_args, const char *str);
void set_link_completion(ReadLineState *rs, int nb_args, const char *str);
+void netdev_add_completion(ReadLineState *rs, int nb_args, const char *str);
#endif
diff --git a/monitor.c b/monitor.c
index fd50c2dd1f..a3dd3614fc 100644
--- a/monitor.c
+++ b/monitor.c
@@ -4303,6 +4303,21 @@ void chardev_add_completion(ReadLineState *rs, int nb_args, const char *str)
qapi_free_ChardevBackendInfoList(start);
}
+void netdev_add_completion(ReadLineState *rs, int nb_args, const char *str)
+{
+ size_t len;
+ int i;
+
+ if (nb_args != 2) {
+ return;
+ }
+ len = strlen(str);
+ readline_set_completion_index(rs, len);
+ for (i = 0; NetClientOptionsKind_lookup[i]; i++) {
+ add_completion_option(rs, str, NetClientOptionsKind_lookup[i]);
+ }
+}
+
void device_add_completion(ReadLineState *rs, int nb_args, const char *str)
{
GSList *list, *elt;