diff options
author | Peter Maydell | 2014-10-22 17:39:49 +0200 |
---|---|---|
committer | Peter Maydell | 2014-10-22 17:39:49 +0200 |
commit | 8f4699d873bef81cec95db6da53d4c33f8caf4b9 (patch) | |
tree | 249e2a7bb71c26b66643162f98e2659d83c79d4d /monitor.c | |
parent | Merge remote-tracking branch 'remotes/kraxel/tags/pull-usb-20141015-2' into s... (diff) | |
parent | block: Make device model's references to BlockBackend strong (diff) | |
download | qemu-8f4699d873bef81cec95db6da53d4c33f8caf4b9.tar.gz qemu-8f4699d873bef81cec95db6da53d4c33f8caf4b9.tar.xz qemu-8f4699d873bef81cec95db6da53d4c33f8caf4b9.zip |
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
Block patches
# gpg: Signature made Mon 20 Oct 2014 13:04:09 BST using RSA key ID C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>"
* remotes/kevin/tags/for-upstream: (28 commits)
block: Make device model's references to BlockBackend strong
block: Lift device model API into BlockBackend
blockdev: Convert qmp_eject(), qmp_change_blockdev() to BlockBackend
block/qapi: Convert qmp_query_block() to BlockBackend
blockdev: Fix blockdev-add not to create DriveInfo
blockdev: Drop superfluous DriveInfo member id
pc87312: Drop unused members of PC87312State
ide: Complete conversion from BlockDriverState to BlockBackend
hw: Convert from BlockDriverState to BlockBackend, mostly
virtio-blk: Rename VirtIOBlkConf variables to conf
virtio-blk: Drop redundant VirtIOBlock member conf
block: Rename BlockDriverCompletionFunc to BlockCompletionFunc
block: Rename BlockDriverAIOCB* to BlockAIOCB*
block: Eliminate DriveInfo member bdrv, use blk_by_legacy_dinfo()
block: Merge BlockBackend and BlockDriverState name spaces
block: Eliminate BlockDriverState member device_name[]
block: Eliminate bdrv_iterate(), use bdrv_next()
blockdev: Eliminate drive_del()
block: Make BlockBackend own its BlockDriverState
block: Code motion to get rid of stubs/blockdev.c
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'monitor.c')
-rw-r--r-- | monitor.c | 38 |
1 files changed, 12 insertions, 26 deletions
@@ -206,7 +206,7 @@ struct Monitor { ReadLineState *rs; MonitorControl *mc; CPUState *mon_cpu; - BlockDriverCompletionFunc *password_completion_cb; + BlockCompletionFunc *password_completion_cb; void *password_opaque; mon_cmd_t *cmd_table; QError *error; @@ -4216,24 +4216,6 @@ static void file_completion(Monitor *mon, const char *input) closedir(ffs); } -typedef struct MonitorBlockComplete { - Monitor *mon; - const char *input; -} MonitorBlockComplete; - -static void block_completion_it(void *opaque, BlockDriverState *bs) -{ - const char *name = bdrv_get_device_name(bs); - MonitorBlockComplete *mbc = opaque; - Monitor *mon = mbc->mon; - const char *input = mbc->input; - - if (input[0] == '\0' || - !strncmp(name, (char *)input, strlen(input))) { - readline_add_completion(mon->rs, name); - } -} - static const char *next_arg_type(const char *typestr) { const char *p = strchr(typestr, ':'); @@ -4671,9 +4653,9 @@ static void monitor_find_completion_by_table(Monitor *mon, { const char *cmdname; int i; - const char *ptype, *str; + const char *ptype, *str, *name; const mon_cmd_t *cmd; - MonitorBlockComplete mbs; + BlockDriverState *bs; if (nb_args <= 1) { /* command completion */ @@ -4725,10 +4707,14 @@ static void monitor_find_completion_by_table(Monitor *mon, break; case 'B': /* block device name completion */ - mbs.mon = mon; - mbs.input = str; readline_set_completion_index(mon->rs, strlen(str)); - bdrv_iterate(block_completion_it, &mbs); + for (bs = bdrv_next(NULL); bs; bs = bdrv_next(bs)) { + name = bdrv_get_device_name(bs); + if (str[0] == '\0' || + !strncmp(name, str, strlen(str))) { + readline_add_completion(mon->rs, name); + } + } break; case 's': case 'S': @@ -5388,7 +5374,7 @@ ReadLineState *monitor_get_rs(Monitor *mon) } int monitor_read_bdrv_key_start(Monitor *mon, BlockDriverState *bs, - BlockDriverCompletionFunc *completion_cb, + BlockCompletionFunc *completion_cb, void *opaque) { int err; @@ -5420,7 +5406,7 @@ int monitor_read_bdrv_key_start(Monitor *mon, BlockDriverState *bs, } int monitor_read_block_device_key(Monitor *mon, const char *device, - BlockDriverCompletionFunc *completion_cb, + BlockCompletionFunc *completion_cb, void *opaque) { BlockDriverState *bs; |