qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 6/7] qmp: print descriptions of object proper


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v2 6/7] qmp: print descriptions of object properties
Date: Fri, 26 Sep 2014 13:38:48 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.1

Il 25/09/2014 04:04, address@hidden ha scritto:
> From: Gonglei <address@hidden>
> 
> The descriptions can serve as documentation in the code,
> and they can be used to provide better help. For example:
> 
> $./qemu-system-x86_64 -device virtio-blk-pci,?
> 
> Before this patch:
> 
> virtio-blk-pci.iothread=link<iothread>
> virtio-blk-pci.x-data-plane=bool
> virtio-blk-pci.scsi=bool
> virtio-blk-pci.config-wce=bool
> virtio-blk-pci.serial=str
> virtio-blk-pci.secs=uint32
> virtio-blk-pci.heads=uint32
> virtio-blk-pci.cyls=uint32
> virtio-blk-pci.discard_granularity=uint32
> virtio-blk-pci.bootindex=int32
> virtio-blk-pci.opt_io_size=uint32
> virtio-blk-pci.min_io_size=uint16
> virtio-blk-pci.physical_block_size=uint16
> virtio-blk-pci.logical_block_size=uint16
> virtio-blk-pci.drive=str
> virtio-blk-pci.virtio-backend=child<virtio-blk-device>
> virtio-blk-pci.command_serr_enable=on/off
> virtio-blk-pci.multifunction=on/off
> virtio-blk-pci.rombar=uint32
> virtio-blk-pci.romfile=str
> virtio-blk-pci.addr=pci-devfn
> virtio-blk-pci.event_idx=on/off
> virtio-blk-pci.indirect_desc=on/off
> virtio-blk-pci.vectors=uint32
> virtio-blk-pci.ioeventfd=on/off
> virtio-blk-pci.class=uint32
> 
> After:
> 
> virtio-blk-pci.iothread=link<iothread>
> virtio-blk-pci.x-data-plane=bool (on/off)
> virtio-blk-pci.scsi=bool (on/off)
> virtio-blk-pci.config-wce=bool (on/off)
> virtio-blk-pci.serial=str
> virtio-blk-pci.secs=uint32
> virtio-blk-pci.heads=uint32
> virtio-blk-pci.cyls=uint32
> virtio-blk-pci.discard_granularity=uint32
> virtio-blk-pci.bootindex=int32
> virtio-blk-pci.opt_io_size=uint32
> virtio-blk-pci.min_io_size=uint16
> virtio-blk-pci.physical_block_size=uint16 (A power of two between 512 and 
> 32768)
> virtio-blk-pci.logical_block_size=uint16 (A power of two between 512 and 
> 32768)
> virtio-blk-pci.drive=str (ID of a drive to use as a backend)
> virtio-blk-pci.virtio-backend=child<virtio-blk-device>
> virtio-blk-pci.command_serr_enable=bool (on/off)
> virtio-blk-pci.multifunction=bool (on/off)
> virtio-blk-pci.rombar=uint32
> virtio-blk-pci.romfile=str
> virtio-blk-pci.addr=int32 (Slot and function number, example: 06.0)
> virtio-blk-pci.event_idx=bool (on/off)
> virtio-blk-pci.indirect_desc=bool (on/off)
> virtio-blk-pci.vectors=uint32
> virtio-blk-pci.ioeventfd=bool (on/off)
> virtio-blk-pci.class=uint32
> 
> Cc: Paolo Bonzini <address@hidden>
> Cc: Michael S. Tsirkin <address@hidden>
> Cc: Markus Armbruster <address@hidden>
> Signed-off-by: Gonglei <address@hidden>
> ---
>  qmp.c | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
> 
> diff --git a/qmp.c b/qmp.c
> index c6767c4..20f501b 100644
> --- a/qmp.c
> +++ b/qmp.c
> @@ -442,7 +442,8 @@ ObjectTypeInfoList *qmp_qom_list_types(bool 
> has_implements,
>   */
>  static DevicePropertyInfo *make_device_property_info(ObjectClass *klass,
>                                                       const char *name,
> -                                                     const char 
> *default_type)
> +                                                     const char 
> *default_type,
> +                                                     const char *description)
>  {
>      DevicePropertyInfo *info;
>      Property *prop;
> @@ -465,7 +466,12 @@ static DevicePropertyInfo 
> *make_device_property_info(ObjectClass *klass,
>  
>              info = g_malloc0(sizeof(*info));
>              info->name = g_strdup(prop->name);
> -            info->type = g_strdup(prop->info->legacy_name ?: 
> prop->info->name);
> +            if (prop->info->description) {
> +                info->type = g_strdup_printf("%s (%s)", prop->info->name,
> +                                             prop->info->description);
> +            } else {
> +                info->type = g_strdup(prop->info->name);
> +            }
>              return info;
>          }
>          klass = object_class_get_parent(klass);
> @@ -474,7 +480,11 @@ static DevicePropertyInfo 
> *make_device_property_info(ObjectClass *klass,
>      /* Not a qdev property, use the default type */
>      info = g_malloc0(sizeof(*info));
>      info->name = g_strdup(name);
> -    info->type = g_strdup(default_type);
> +    if (description) {
> +        info->type = g_strdup_printf("%s (%s)", default_type, description);

Please add a new "description" field to DevicePropertyInfo, and format
it in qdev_device_help.

You can send v3 of just this patch.

Thanks,

Paolo

> +    } else {
> +        info->type = g_strdup(default_type);
> +    }
>      return info;
>  }
>  
> @@ -521,7 +531,8 @@ DevicePropertyInfoList *qmp_device_list_properties(const 
> char *typename,
>              continue;
>          }
>  
> -        info = make_device_property_info(klass, prop->name, prop->type);
> +        info = make_device_property_info(klass, prop->name, prop->type,
> +                                         prop->description);
>          if (!info) {
>              continue;
>          }
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]