From 2ba6edf0dd740166632df80caa85992b20791a68 Mon Sep 17 00:00:00 2001
From: Stefan Weil <weil@mail.berlios.de>
Date: Wed, 20 Jan 2010 22:58:33 +0100
Subject: [PATCH] qdev: Add help for device properties

When called with property "?", a list of supported
properties will be printed (instead of an error message).

This is useful for command lines like
	qemu -device e1000,?
and was already standard for other options like model=?

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
---
 hw/qdev-properties.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 277ff9e780..8547ad27d4 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -544,8 +544,19 @@ int qdev_prop_parse(DeviceState *dev, const char *name, const char *value)
 
     prop = qdev_prop_find(dev, name);
     if (!prop) {
-        fprintf(stderr, "property \"%s.%s\" not found\n",
-                dev->info->name, name);
+        if (strcmp(name, "?") != 0) {
+            fprintf(stderr, "property \"%s.%s\" not found\n",
+                    dev->info->name, name);
+        } else {
+            fprintf(stderr, "supported properties:\n");
+            if (dev->info->props != NULL) {
+                Property *props = dev->info->props;
+                while (props->name) {
+                    fprintf(stderr, "%s.%s\n", dev->info->name, props->name);
+                    props++;
+                }
+            }
+        }
         return -1;
     }
     if (!prop->info->parse) {
-- 
2.30.2