[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 07/23] block: Eliminate bdrv_iterate(), use bdrv
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 07/23] block: Eliminate bdrv_iterate(), use bdrv_next() |
Date: |
Thu, 11 Sep 2014 20:44:03 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Benoît Canet <address@hidden> writes:
> The Wednesday 10 Sep 2014 à 10:13:36 (+0200), Markus Armbruster wrote :
[...]
>> --- a/monitor.c
>> +++ b/monitor.c
>> @@ -4208,24 +4208,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, ':');
>> @@ -4663,9 +4645,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 */
>> @@ -4717,10 +4699,13 @@ 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));
>
> Why is this line removed ?
Accident! Fixing...
> In monitor readline_set_completion_index seems to work in pair with
> readline_add_completion.
> Either this line should be removed and readline_add_completion too or
> the oposite.
>
>> - 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':
>> --
>> 1.9.3
>>
>>
- [Qemu-devel] [PATCH 03/23] block: Connect BlockBackend to BlockDriverState, (continued)
- [Qemu-devel] [PATCH 03/23] block: Connect BlockBackend to BlockDriverState, Markus Armbruster, 2014/09/10
- [Qemu-devel] [PATCH 09/23] block: Merge BlockBackend and BlockDriverState name spaces, Markus Armbruster, 2014/09/10
- [Qemu-devel] [PATCH 06/23] block: Eliminate bdrv_states, use block_next() instead, Markus Armbruster, 2014/09/10
- [Qemu-devel] [PATCH 07/23] block: Eliminate bdrv_iterate(), use bdrv_next(), Markus Armbruster, 2014/09/10
- [Qemu-devel] [PATCH 01/23] block: Split bdrv_new_named() off bdrv_new(), Markus Armbruster, 2014/09/10
- Re: [Qemu-devel] [PATCH 01/23] block: Split bdrv_new_named() off bdrv_new(), Eric Blake, 2014/09/10
- Re: [Qemu-devel] [PATCH 01/23] block: Split bdrv_new_named() off bdrv_new(), Benoît Canet, 2014/09/10
- Re: [Qemu-devel] [PATCH 01/23] block: Split bdrv_new_named() off bdrv_new(), Benoît Canet, 2014/09/10
- Re: [Qemu-devel] [PATCH 01/23] block: Split bdrv_new_named() off bdrv_new(), Fam Zheng, 2014/09/11
- [Qemu-devel] [PATCH 04/23] block: Connect BlockBackend and DriveInfo, Markus Armbruster, 2014/09/10