aboutsummaryrefslogtreecommitdiff
path: root/hw/qdev.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2010-01-29 19:49:00 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2010-02-03 12:39:01 -0600
commit08350cf06a4aa1b703ff6968688fab9fd8e90fcc (patch)
tree6aaa5ddcebf0ab40a83c7b31b5c957bedd22ddd9 /hw/qdev.c
parent5137b6accdbb43913c31e4d8579da4eb9957b0e7 (diff)
qdev: Add help for device properties
Option "-device DRIVER,?" and monitor command "device_add DRIVER,?" print the supported properties instead of creating a device. The former also terminates the program. This is commit 2ba6edf0 (just reverted) done right. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/qdev.c')
-rw-r--r--hw/qdev.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/hw/qdev.c b/hw/qdev.c
index f47f0cb973..7c3701c4e4 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -158,6 +158,7 @@ int qdev_device_help(QemuOpts *opts)
const char *driver;
DeviceInfo *info;
char msg[256];
+ Property *prop;
driver = qemu_opt_get(opts, "driver");
if (driver && !strcmp(driver, "?")) {
@@ -168,7 +169,19 @@ int qdev_device_help(QemuOpts *opts)
return 1;
}
- return 0;
+ if (!qemu_opt_get(opts, "?")) {
+ return 0;
+ }
+
+ info = qdev_find_info(NULL, driver);
+ if (!info) {
+ return 0;
+ }
+
+ for (prop = info->props; prop && prop->name; prop++) {
+ qemu_error("%s.%s\n", info->name, prop->name);
+ }
+ return 1;
}
DeviceState *qdev_device_add(QemuOpts *opts)