qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options
@ 2010-01-16 17:19 Stefan Weil
  2010-01-18 10:09 ` Markus Armbruster
  2010-01-20 14:55 ` [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options Anthony Liguori
  0 siblings, 2 replies; 15+ messages in thread
From: Stefan Weil @ 2010-01-16 17:19 UTC (permalink / raw)
  To: QEMU Developers

The command line options -device, -nodefaults, -readconfig,
-writeconfig had entries for command line help, but
documentation for texi and derived formats (man, html, info)
was missing.

This also required moving "@end table" to the end of
qemu-options.hx again.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 qemu-options.hx |   25 +++++++++++++++++++++----
 1 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/qemu-options.hx b/qemu-options.hx
index e2edd71..b2d04e2 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -404,6 +404,12 @@ ETEXI
 
 DEF("device", HAS_ARG, QEMU_OPTION_device,
     "-device driver[,options]  add device\n")
+STEXI
+@item -device @var{driver}[,@var{option}[,...]]
+Add device @var{driver}. Depending on the device type,
+@var{option} (typically @var{key}=@var{value}) may be useful.
+ETEXI
+
 DEF("name", HAS_ARG, QEMU_OPTION_name,
     "-name string1[,process=string2]\n"
     "                set the name of the guest\n"
@@ -1905,6 +1911,8 @@ ETEXI
 DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
     "-nodefaults     don't create default devices\n")
 STEXI
+@item -nodefaults
+Don't create default devices.
 ETEXI
 
 #ifndef _WIN32
@@ -1927,10 +1935,6 @@ Immediately before starting guest execution, drop root privileges, switching
 to the specified user.
 ETEXI
 
-STEXI
-@end table
-ETEXI
-
 #if defined(TARGET_SPARC) || defined(TARGET_PPC)
 DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
     "-prom-env variable=value\n"
@@ -1946,6 +1950,19 @@ DEF("old-param", 0, QEMU_OPTION_old_param,
 #endif
 DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
     "-readconfig <file>\n")
+STEXI
+@item -readconfig @var{file}
+Read device configuration from @var{file}.
+ETEXI
 DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
     "-writeconfig <file>\n"
     "                read/write config file\n")
+STEXI
+@item -writeconfig @var{file}
+Write device configuration to @var{file}.
+ETEXI
+
+HXCOMM This is the last statement. Insert new options before this line!
+STEXI
+@end table
+ETEXI
-- 
1.6.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options
  2010-01-16 17:19 [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options Stefan Weil
@ 2010-01-18 10:09 ` Markus Armbruster
  2010-01-18 19:32   ` Stefan Weil
  2010-01-20 14:55 ` [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options Anthony Liguori
  1 sibling, 1 reply; 15+ messages in thread
From: Markus Armbruster @ 2010-01-18 10:09 UTC (permalink / raw)
  To: Stefan Weil; +Cc: QEMU Developers

Stefan Weil <weil@mail.berlios.de> writes:

> The command line options -device, -nodefaults, -readconfig,
> -writeconfig had entries for command line help, but
> documentation for texi and derived formats (man, html, info)
> was missing.
>
> This also required moving "@end table" to the end of
> qemu-options.hx again.
>
> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
> ---
>  qemu-options.hx |   25 +++++++++++++++++++++----
>  1 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/qemu-options.hx b/qemu-options.hx
> index e2edd71..b2d04e2 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -404,6 +404,12 @@ ETEXI
>  
>  DEF("device", HAS_ARG, QEMU_OPTION_device,
>      "-device driver[,options]  add device\n")
> +STEXI
> +@item -device @var{driver}[,@var{option}[,...]]
> +Add device @var{driver}. Depending on the device type,
> +@var{option} (typically @var{key}=@var{value}) may be useful.
> +ETEXI
> +

While there, would you mind improving --help for -device a bit?  It's
too terse, and it doesn't start the help text in column 16 like the
other options do.

>  DEF("name", HAS_ARG, QEMU_OPTION_name,
[...]
> +STEXI
> +@item -writeconfig @var{file}
> +Write device configuration to @var{file}.
> +ETEXI
> +
> +HXCOMM This is the last statement. Insert new options before this line!
> +STEXI
> +@end table
> +ETEXI

Neat, thanks!

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options
  2010-01-18 10:09 ` Markus Armbruster
@ 2010-01-18 19:32   ` Stefan Weil
  2010-01-19  9:38     ` Markus Armbruster
                       ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Stefan Weil @ 2010-01-18 19:32 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: QEMU Developers

Markus Armbruster schrieb:
> Stefan Weil <weil@mail.berlios.de> writes:
>
>> The command line options -device, -nodefaults, -readconfig,
>> -writeconfig had entries for command line help, but
>> documentation for texi and derived formats (man, html, info)
>> was missing.
>>
>> This also required moving "@end table" to the end of
>> qemu-options.hx again.
>>
>> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
>> ---
>> qemu-options.hx | 25 +++++++++++++++++++++----
>> 1 files changed, 21 insertions(+), 4 deletions(-)
>>
>> diff --git a/qemu-options.hx b/qemu-options.hx
>> index e2edd71..b2d04e2 100644
>> --- a/qemu-options.hx
>> +++ b/qemu-options.hx
>> @@ -404,6 +404,12 @@ ETEXI
>>
>> DEF("device", HAS_ARG, QEMU_OPTION_device,
>> "-device driver[,options] add device\n")
>> +STEXI
>> +@item -device @var{driver}[,@var{option}[,...]]
>> +Add device @var{driver}. Depending on the device type,
>> +@var{option} (typically @var{key}=@var{value}) may be useful.
>> +ETEXI
>> +
>
> While there, would you mind improving --help for -device a bit? It's
> too terse, and it doesn't start the help text in column 16 like the
> other options do.

Hi Markus,

this needs a little more work. I just had a look on the code,
and there is no online help for the possible options (key, value).

If you (and especially those who have commit rights) agree,
I could provide these three additional patches:

* Add online help for properties (qemu -device driver,?)
* Add online help for property value (qemu -device driver,property=?)
* Update documentation for command line option -device

There is already an online help for the driver (qemu -device ?).

Regards,

Stefan

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options
  2010-01-18 19:32   ` Stefan Weil
@ 2010-01-19  9:38     ` Markus Armbruster
  2010-01-20 22:05       ` Stefan Weil
  2010-01-19 13:32     ` [Qemu-devel] " Michael S. Tsirkin
  2010-01-20 21:58     ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Stefan Weil
  2 siblings, 1 reply; 15+ messages in thread
From: Markus Armbruster @ 2010-01-19  9:38 UTC (permalink / raw)
  To: Stefan Weil; +Cc: QEMU Developers

Stefan Weil <weil@mail.berlios.de> writes:

> Markus Armbruster schrieb:
>> Stefan Weil <weil@mail.berlios.de> writes:
>>
>>> The command line options -device, -nodefaults, -readconfig,
>>> -writeconfig had entries for command line help, but
>>> documentation for texi and derived formats (man, html, info)
>>> was missing.
>>>
>>> This also required moving "@end table" to the end of
>>> qemu-options.hx again.
>>>
>>> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
>>> ---
>>> qemu-options.hx | 25 +++++++++++++++++++++----
>>> 1 files changed, 21 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/qemu-options.hx b/qemu-options.hx
>>> index e2edd71..b2d04e2 100644
>>> --- a/qemu-options.hx
>>> +++ b/qemu-options.hx
>>> @@ -404,6 +404,12 @@ ETEXI
>>>
>>> DEF("device", HAS_ARG, QEMU_OPTION_device,
>>> "-device driver[,options] add device\n")
>>> +STEXI
>>> +@item -device @var{driver}[,@var{option}[,...]]
>>> +Add device @var{driver}. Depending on the device type,
>>> +@var{option} (typically @var{key}=@var{value}) may be useful.
>>> +ETEXI
>>> +
>>
>> While there, would you mind improving --help for -device a bit? It's
>> too terse, and it doesn't start the help text in column 16 like the
>> other options do.
>
> Hi Markus,
>
> this needs a little more work. I just had a look on the code,
> and there is no online help for the possible options (key, value).

What I had in mind was just to bring it up to par with your patch to the
texi, but...

> If you (and especially those who have commit rights) agree,
> I could provide these three additional patches:
>
> * Add online help for properties (qemu -device driver,?)
> * Add online help for property value (qemu -device driver,property=?)
> * Update documentation for command line option -device

... a patch to provide that is very desirable!

I figure the best way to document available properties and there values
is a self-documenting struct PropertyInfo: add a doc member, extend
DEFINE_PROP() & friends to set it, fix up users to pass NULL, and so
forth.  We can then replace the NULL by something useful at our leisure.

> There is already an online help for the driver (qemu -device ?).

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Qemu-devel] Re: [PATCH] Documentation: Add missing documentation for qdev related command line options
  2010-01-18 19:32   ` Stefan Weil
  2010-01-19  9:38     ` Markus Armbruster
@ 2010-01-19 13:32     ` Michael S. Tsirkin
  2010-01-20 21:58     ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Stefan Weil
  2 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2010-01-19 13:32 UTC (permalink / raw)
  To: Stefan Weil; +Cc: Markus Armbruster, QEMU Developers

On Mon, Jan 18, 2010 at 08:32:25PM +0100, Stefan Weil wrote:
> Markus Armbruster schrieb:
> > Stefan Weil <weil@mail.berlios.de> writes:
> >
> >> The command line options -device, -nodefaults, -readconfig,
> >> -writeconfig had entries for command line help, but
> >> documentation for texi and derived formats (man, html, info)
> >> was missing.
> >>
> >> This also required moving "@end table" to the end of
> >> qemu-options.hx again.
> >>
> >> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
> >> ---
> >> qemu-options.hx | 25 +++++++++++++++++++++----
> >> 1 files changed, 21 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/qemu-options.hx b/qemu-options.hx
> >> index e2edd71..b2d04e2 100644
> >> --- a/qemu-options.hx
> >> +++ b/qemu-options.hx
> >> @@ -404,6 +404,12 @@ ETEXI
> >>
> >> DEF("device", HAS_ARG, QEMU_OPTION_device,
> >> "-device driver[,options] add device\n")
> >> +STEXI
> >> +@item -device @var{driver}[,@var{option}[,...]]
> >> +Add device @var{driver}. Depending on the device type,
> >> +@var{option} (typically @var{key}=@var{value}) may be useful.
> >> +ETEXI
> >> +
> >
> > While there, would you mind improving --help for -device a bit? It's
> > too terse, and it doesn't start the help text in column 16 like the
> > other options do.
> 
> Hi Markus,
> 
> this needs a little more work. I just had a look on the code,
> and there is no online help for the possible options (key, value).
> 
> If you (and especially those who have commit rights) agree,
> I could provide these three additional patches:
> 
> * Add online help for properties (qemu -device driver,?)
> * Add online help for property value (qemu -device driver,property=?)
> * Update documentation for command line option -device
> 
> There is already an online help for the driver (qemu -device ?).
> 
> Regards,
> 
> Stefan
> 

Yes, this was on list of things to be fixed for a long time now.

Some more things that need looking into:

. -device ? itself is undocumented
. - device ? currently prints system devices as well
    let's only print these that have a description
    and add ?? to list all devices
. -netdev has undocumented options as well
. we should have a flag to dump all options in one go,
  for ease of searching

-- 
MST

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options
  2010-01-16 17:19 [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options Stefan Weil
  2010-01-18 10:09 ` Markus Armbruster
@ 2010-01-20 14:55 ` Anthony Liguori
  1 sibling, 0 replies; 15+ messages in thread
From: Anthony Liguori @ 2010-01-20 14:55 UTC (permalink / raw)
  To: Stefan Weil; +Cc: QEMU Developers

On 01/16/2010 11:19 AM, Stefan Weil wrote:
> The command line options -device, -nodefaults, -readconfig,
> -writeconfig had entries for command line help, but
> documentation for texi and derived formats (man, html, info)
> was missing.
>
> This also required moving "@end table" to the end of
> qemu-options.hx again.
>
> Signed-off-by: Stefan Weil<weil@mail.berlios.de>
>    

Applied.  Thanks.

Regards,

Anthony Liguori

> ---
>   qemu-options.hx |   25 +++++++++++++++++++++----
>   1 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/qemu-options.hx b/qemu-options.hx
> index e2edd71..b2d04e2 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -404,6 +404,12 @@ ETEXI
>
>   DEF("device", HAS_ARG, QEMU_OPTION_device,
>       "-device driver[,options]  add device\n")
> +STEXI
> +@item -device @var{driver}[,@var{option}[,...]]
> +Add device @var{driver}. Depending on the device type,
> +@var{option} (typically @var{key}=@var{value}) may be useful.
> +ETEXI
> +
>   DEF("name", HAS_ARG, QEMU_OPTION_name,
>       "-name string1[,process=string2]\n"
>       "                set the name of the guest\n"
> @@ -1905,6 +1911,8 @@ ETEXI
>   DEF("nodefaults", 0, QEMU_OPTION_nodefaults, \
>       "-nodefaults     don't create default devices\n")
>   STEXI
> +@item -nodefaults
> +Don't create default devices.
>   ETEXI
>
>   #ifndef _WIN32
> @@ -1927,10 +1935,6 @@ Immediately before starting guest execution, drop root privileges, switching
>   to the specified user.
>   ETEXI
>
> -STEXI
> -@end table
> -ETEXI
> -
>   #if defined(TARGET_SPARC) || defined(TARGET_PPC)
>   DEF("prom-env", HAS_ARG, QEMU_OPTION_prom_env,
>       "-prom-env variable=value\n"
> @@ -1946,6 +1950,19 @@ DEF("old-param", 0, QEMU_OPTION_old_param,
>   #endif
>   DEF("readconfig", HAS_ARG, QEMU_OPTION_readconfig,
>       "-readconfig<file>\n")
> +STEXI
> +@item -readconfig @var{file}
> +Read device configuration from @var{file}.
> +ETEXI
>   DEF("writeconfig", HAS_ARG, QEMU_OPTION_writeconfig,
>       "-writeconfig<file>\n"
>       "                read/write config file\n")
> +STEXI
> +@item -writeconfig @var{file}
> +Write device configuration to @var{file}.
> +ETEXI
> +
> +HXCOMM This is the last statement. Insert new options before this line!
> +STEXI
> +@end table
> +ETEXI
>    

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties
  2010-01-18 19:32   ` Stefan Weil
  2010-01-19  9:38     ` Markus Armbruster
  2010-01-19 13:32     ` [Qemu-devel] " Michael S. Tsirkin
@ 2010-01-20 21:58     ` Stefan Weil
  2010-01-20 21:58       ` [Qemu-devel] [PATCH 2/3] qdev: Add help for property value Stefan Weil
  2010-01-21 16:38       ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Markus Armbruster
  2 siblings, 2 replies; 15+ messages in thread
From: Stefan Weil @ 2010-01-20 21:58 UTC (permalink / raw)
  To: QEMU Developers

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>
---
 hw/qdev-properties.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 277ff9e..8547ad2 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) {
-- 
1.6.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Qemu-devel] [PATCH 2/3] qdev: Add help for property value
  2010-01-20 21:58     ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Stefan Weil
@ 2010-01-20 21:58       ` Stefan Weil
  2010-01-20 21:58         ` [Qemu-devel] [PATCH 3/3] Documentation: Improve command line help for -device option Stefan Weil
  2010-01-21 16:42         ` [Qemu-devel] [PATCH 2/3] qdev: Add help for property value Markus Armbruster
  2010-01-21 16:38       ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Markus Armbruster
  1 sibling, 2 replies; 15+ messages in thread
From: Stefan Weil @ 2010-01-20 21:58 UTC (permalink / raw)
  To: QEMU Developers

When called with property value "?",
a help text will be printed (instead of an error message).

This is useful for command lines like
    	qemu -device e1000,mac=?
and is already standard for other command line options.

A better help text could be provided by extending
the Property structure with a desc field.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 hw/qdev-properties.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
index 8547ad2..f5ca05f 100644
--- a/hw/qdev-properties.c
+++ b/hw/qdev-properties.c
@@ -565,8 +565,13 @@ int qdev_prop_parse(DeviceState *dev, const char *name, const char *value)
         return -1;
     }
     if (prop->info->parse(dev, prop, value) != 0) {
-        fprintf(stderr, "property \"%s.%s\": failed to parse \"%s\"\n",
-                dev->info->name, name, value);
+        if (strcmp(value, "?") != 0) {
+            fprintf(stderr, "property \"%s.%s\": failed to parse \"%s\"\n",
+                    dev->info->name, name, value);
+        } else {
+            fprintf(stderr, "%s.%s=%s\n",
+                    dev->info->name, name, prop->info->name);
+        }
         return -1;
     }
     return 0;
-- 
1.6.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Qemu-devel] [PATCH 3/3] Documentation: Improve command line help for -device option
  2010-01-20 21:58       ` [Qemu-devel] [PATCH 2/3] qdev: Add help for property value Stefan Weil
@ 2010-01-20 21:58         ` Stefan Weil
  2010-01-21 16:42         ` [Qemu-devel] [PATCH 2/3] qdev: Add help for property value Markus Armbruster
  1 sibling, 0 replies; 15+ messages in thread
From: Stefan Weil @ 2010-01-20 21:58 UTC (permalink / raw)
  To: QEMU Developers

* Fix column for help text.

* Give some more help, especially for the new '?' parameters.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
 qemu-options.hx |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/qemu-options.hx b/qemu-options.hx
index ee60d8a..ef82cac 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -403,11 +403,20 @@ Network adapter that supports CDC ethernet and RNDIS protocols.
 ETEXI
 
 DEF("device", HAS_ARG, QEMU_OPTION_device,
-    "-device driver[,options]  add device\n")
-STEXI
-@item -device @var{driver}[,@var{option}[,...]]
+    "-device driver[,option[=value][,...]]\n"
+    "                add device (based on driver) with default or\n"
+    "                user defined options\n"
+    "                use -device ? to print all possible drivers\n"
+    "                use -device driver,? to print all possible options\n"
+    "                use -device driver,option=? to print a help for value\n")
+STEXI
+@item -device @var{driver}[,@var{option}[=@var{value}][,...]]
 Add device @var{driver}. Depending on the device type,
-@var{option} (typically @var{key}=@var{value}) may be useful.
+@var{option} (with default or given @var{value}) may be useful.
+To get a help on possible @var{driver}s, @var{option}s or @var{value}s, use
+@code{-device ?},
+@code{-device @var{driver},?} or
+@code{-device @var{driver},@var{option}=?}. 
 ETEXI
 
 DEF("name", HAS_ARG, QEMU_OPTION_name,
-- 
1.6.5

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options
  2010-01-19  9:38     ` Markus Armbruster
@ 2010-01-20 22:05       ` Stefan Weil
  2010-01-21 16:45         ` Markus Armbruster
  0 siblings, 1 reply; 15+ messages in thread
From: Stefan Weil @ 2010-01-20 22:05 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: QEMU Developers

Markus Armbruster schrieb:
> Stefan Weil <weil@mail.berlios.de> writes:
>
>> Markus Armbruster schrieb:
>>> Stefan Weil <weil@mail.berlios.de> writes:
>>>
>>>> The command line options -device, -nodefaults, -readconfig,
>>>> -writeconfig had entries for command line help, but
>>>> documentation for texi and derived formats (man, html, info)
>>>> was missing.
>>>>
>>>> This also required moving "@end table" to the end of
>>>> qemu-options.hx again.
>>>>
>>>> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
>>>> ---
>>>> qemu-options.hx | 25 +++++++++++++++++++++----
>>>> 1 files changed, 21 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/qemu-options.hx b/qemu-options.hx
>>>> index e2edd71..b2d04e2 100644
>>>> --- a/qemu-options.hx
>>>> +++ b/qemu-options.hx
>>>> @@ -404,6 +404,12 @@ ETEXI
>>>>
>>>> DEF("device", HAS_ARG, QEMU_OPTION_device,
>>>> "-device driver[,options] add device\n")
>>>> +STEXI
>>>> +@item -device @var{driver}[,@var{option}[,...]]
>>>> +Add device @var{driver}. Depending on the device type,
>>>> +@var{option} (typically @var{key}=@var{value}) may be useful.
>>>> +ETEXI
>>>> +
>>> While there, would you mind improving --help for -device a bit? It's
>>> too terse, and it doesn't start the help text in column 16 like the
>>> other options do.
>> Hi Markus,
>>
>> this needs a little more work. I just had a look on the code,
>> and there is no online help for the possible options (key, value).
>
> What I had in mind was just to bring it up to par with your patch to the
> texi, but...
>
>> If you (and especially those who have commit rights) agree,
>> I could provide these three additional patches:
>>
>> * Add online help for properties (qemu -device driver,?)
>> * Add online help for property value (qemu -device driver,property=?)
>> * Update documentation for command line option -device
>
> ... a patch to provide that is very desirable!
>
> I figure the best way to document available properties and there values
> is a self-documenting struct PropertyInfo: add a doc member, extend
> DEFINE_PROP() & friends to set it, fix up users to pass NULL, and so
> forth. We can then replace the NULL by something useful at our leisure.
>
>> There is already an online help for the driver (qemu -device ?).

I cannot spend too much time on this, but a very basic help
for "?" is implemented by the patch series I just sent to the list.

The new feature was already very helpful for me, but it still
can be improved, of course: the driver list contains shows
too many drivers and is not nicely formatted, the help text
for the values could be more user friendly, ...

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties
  2010-01-20 21:58     ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Stefan Weil
  2010-01-20 21:58       ` [Qemu-devel] [PATCH 2/3] qdev: Add help for property value Stefan Weil
@ 2010-01-21 16:38       ` Markus Armbruster
  2010-01-21 16:44         ` Markus Armbruster
  1 sibling, 1 reply; 15+ messages in thread
From: Markus Armbruster @ 2010-01-21 16:38 UTC (permalink / raw)
  To: Stefan Weil; +Cc: QEMU Developers

Stefan Weil <weil@mail.berlios.de> writes:

> 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>
> ---
>  hw/qdev-properties.c |   15 +++++++++++++--
>  1 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
> index 277ff9e..8547ad2 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) {

I like it.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH 2/3] qdev: Add help for property value
  2010-01-20 21:58       ` [Qemu-devel] [PATCH 2/3] qdev: Add help for property value Stefan Weil
  2010-01-20 21:58         ` [Qemu-devel] [PATCH 3/3] Documentation: Improve command line help for -device option Stefan Weil
@ 2010-01-21 16:42         ` Markus Armbruster
  1 sibling, 0 replies; 15+ messages in thread
From: Markus Armbruster @ 2010-01-21 16:42 UTC (permalink / raw)
  To: Stefan Weil; +Cc: QEMU Developers

Stefan Weil <weil@mail.berlios.de> writes:

> When called with property value "?",
> a help text will be printed (instead of an error message).
>
> This is useful for command lines like
>     	qemu -device e1000,mac=?
> and is already standard for other command line options.
>
> A better help text could be provided by extending
> the Property structure with a desc field.
>
> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
> ---
>  hw/qdev-properties.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
> index 8547ad2..f5ca05f 100644
> --- a/hw/qdev-properties.c
> +++ b/hw/qdev-properties.c
> @@ -565,8 +565,13 @@ int qdev_prop_parse(DeviceState *dev, const char *name, const char *value)
>          return -1;
>      }
>      if (prop->info->parse(dev, prop, value) != 0) {
> -        fprintf(stderr, "property \"%s.%s\": failed to parse \"%s\"\n",
> -                dev->info->name, name, value);
> +        if (strcmp(value, "?") != 0) {
> +            fprintf(stderr, "property \"%s.%s\": failed to parse \"%s\"\n",
> +                    dev->info->name, name, value);
> +        } else {
> +            fprintf(stderr, "%s.%s=%s\n",
> +                    dev->info->name, name, prop->info->name);
> +        }
>          return -1;
>      }
>      return 0;

This one is problematic.  If prop->info->parse() accepts "?", help is
inaccessible.  PATCH 1/3 is immune to that problem, because we won't
name a property "?".

PATCH 1/3 already makes -device FOO,? print all property names.  I
figure it could just as well print all help along with names.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties
  2010-01-21 16:38       ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Markus Armbruster
@ 2010-01-21 16:44         ` Markus Armbruster
  2010-01-21 17:28           ` Gerd Hoffmann
  0 siblings, 1 reply; 15+ messages in thread
From: Markus Armbruster @ 2010-01-21 16:44 UTC (permalink / raw)
  To: Stefan Weil; +Cc: QEMU Developers

Markus Armbruster <armbru@redhat.com> writes:

> Stefan Weil <weil@mail.berlios.de> writes:
>
>> 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>
>> ---
>>  hw/qdev-properties.c |   15 +++++++++++++--
>>  1 files changed, 13 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c
>> index 277ff9e..8547ad2 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) {
>
> I like it.

One question, though: why print DRIVER.PROPNAME instead of just
PROPNAME?  You could still put DRIVER into the heading, say "Properties
of DRIVER:".

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options
  2010-01-20 22:05       ` Stefan Weil
@ 2010-01-21 16:45         ` Markus Armbruster
  0 siblings, 0 replies; 15+ messages in thread
From: Markus Armbruster @ 2010-01-21 16:45 UTC (permalink / raw)
  To: Stefan Weil; +Cc: QEMU Developers

Stefan Weil <weil@mail.berlios.de> writes:

> Markus Armbruster schrieb:
>> Stefan Weil <weil@mail.berlios.de> writes:
>>
>>> Markus Armbruster schrieb:
[...]
>>>> While there, would you mind improving --help for -device a bit? It's
>>>> too terse, and it doesn't start the help text in column 16 like the
>>>> other options do.
>>> Hi Markus,
>>>
>>> this needs a little more work. I just had a look on the code,
>>> and there is no online help for the possible options (key, value).
>>
>> What I had in mind was just to bring it up to par with your patch to the
>> texi, but...
>>
>>> If you (and especially those who have commit rights) agree,
>>> I could provide these three additional patches:
>>>
>>> * Add online help for properties (qemu -device driver,?)
>>> * Add online help for property value (qemu -device driver,property=?)
>>> * Update documentation for command line option -device
>>
>> ... a patch to provide that is very desirable!
>>
>> I figure the best way to document available properties and there values
>> is a self-documenting struct PropertyInfo: add a doc member, extend
>> DEFINE_PROP() & friends to set it, fix up users to pass NULL, and so
>> forth. We can then replace the NULL by something useful at our leisure.
>>
>>> There is already an online help for the driver (qemu -device ?).
>
> I cannot spend too much time on this, but a very basic help
> for "?" is implemented by the patch series I just sent to the list.
>
> The new feature was already very helpful for me, but it still
> can be improved, of course: the driver list contains shows
> too many drivers and is not nicely formatted, the help text
> for the values could be more user friendly, ...

It's a start.  Many thanks!

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties
  2010-01-21 16:44         ` Markus Armbruster
@ 2010-01-21 17:28           ` Gerd Hoffmann
  0 siblings, 0 replies; 15+ messages in thread
From: Gerd Hoffmann @ 2010-01-21 17:28 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: QEMU Developers

On 01/21/10 17:44, Markus Armbruster wrote:
> Markus Armbruster<armbru@redhat.com>  writes:
>
>>> -        fprintf(stderr, "property \"%s.%s\" not found\n",
>>> -                dev->info->name, name);

>>> +                    fprintf(stderr, "%s.%s\n", dev->info->name, props->name);
>>> +                    props++;

> One question, though: why print DRIVER.PROPNAME instead of just
> PROPNAME?  You could still put DRIVER into the heading, say "Properties
> of DRIVER:".

Probably for consistency with the error messages.

cheers,
   Gerd

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2010-01-21 17:28 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-16 17:19 [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options Stefan Weil
2010-01-18 10:09 ` Markus Armbruster
2010-01-18 19:32   ` Stefan Weil
2010-01-19  9:38     ` Markus Armbruster
2010-01-20 22:05       ` Stefan Weil
2010-01-21 16:45         ` Markus Armbruster
2010-01-19 13:32     ` [Qemu-devel] " Michael S. Tsirkin
2010-01-20 21:58     ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Stefan Weil
2010-01-20 21:58       ` [Qemu-devel] [PATCH 2/3] qdev: Add help for property value Stefan Weil
2010-01-20 21:58         ` [Qemu-devel] [PATCH 3/3] Documentation: Improve command line help for -device option Stefan Weil
2010-01-21 16:42         ` [Qemu-devel] [PATCH 2/3] qdev: Add help for property value Markus Armbruster
2010-01-21 16:38       ` [Qemu-devel] [PATCH 1/3] qdev: Add help for device properties Markus Armbruster
2010-01-21 16:44         ` Markus Armbruster
2010-01-21 17:28           ` Gerd Hoffmann
2010-01-20 14:55 ` [Qemu-devel] [PATCH] Documentation: Add missing documentation for qdev related command line options Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).