[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 6/7] qmp: print descriptions of object properties
From: |
arei.gonglei |
Subject: |
[Qemu-devel] [PATCH 6/7] qmp: print descriptions of object properties |
Date: |
Tue, 23 Sep 2014 21:08:36 +0800 |
From: Gonglei <address@hidden>
The descriptions can serve as documentation in the code,
and they can be used to provide better help. For example:
Before this patch:
$./qemu-system-x86_64 -device virtio-blk-pci,?
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:
$./qemu-system-x86_64 -device virtio-blk-pci,?
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 (The slot number of a pci device)
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);
+ } 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;
}
--
1.7.12.4
- [Qemu-devel] [PATCH 7/7] qdev: drop legacy_name from qdev properties, (continued)
- [Qemu-devel] [PATCH 7/7] qdev: drop legacy_name from qdev properties, arei.gonglei, 2014/09/23
- [Qemu-devel] [PATCH 4/7] qom: add description field in ObjectProperty struct, arei.gonglei, 2014/09/23
- [Qemu-devel] [PATCH 5/7] qdev: set the object property's description to the qdev property's., arei.gonglei, 2014/09/23
- Re: [Qemu-devel] [PATCH 5/7] qdev: set the object property's description to the qdev property's., Paolo Bonzini, 2014/09/23
- Re: [Qemu-devel] [PATCH 5/7] qdev: set the object property's description to the qdev property's., Gonglei (Arei), 2014/09/23
- Re: [Qemu-devel] [PATCH 5/7] qdev: set the object property's description to the qdev property's., Paolo Bonzini, 2014/09/24
- Re: [Qemu-devel] [PATCH 5/7] qdev: set the object property's description to the qdev property's., Gonglei (Arei), 2014/09/24
- Re: [Qemu-devel] [PATCH 5/7] qdev: set the object property's description to the qdev property's., Gonglei (Arei), 2014/09/24
- Re: [Qemu-devel] [PATCH 5/7] qdev: set the object property's description to the qdev property's., Paolo Bonzini, 2014/09/24
[Qemu-devel] [PATCH 6/7] qmp: print descriptions of object properties,
arei.gonglei <=
[Qemu-devel] [PATCH 2/7] qom: add error handler for object alias property, arei.gonglei, 2014/09/23
[Qemu-devel] [PATCH 1/7] qom: add error handler for object_property_print(), arei.gonglei, 2014/09/23
[Qemu-devel] [PATCH 3/7] qdev: add description field in PropertyInfo struct, arei.gonglei, 2014/09/23
Re: [Qemu-devel] [PATCH 0/7] add description field in ObjectProperty and PropertyInfo struct, Paolo Bonzini, 2014/09/23