[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/20] qdev: add print_options callback
From: |
Alon Levy |
Subject: |
Re: [Qemu-devel] [PATCH 01/20] qdev: add print_options callback |
Date: |
Thu, 3 Feb 2011 12:21:57 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Please ignore, duplicate of 01/20 already on the list. It took so long for
01/20 to appear on the list that I thought it was lost.
Alon
On Wed, Feb 02, 2011 at 11:46:07PM +0200, Alon Levy wrote:
> another callback added to PropertyInfo, for later use by PROP_TYPE_ENUM.
> Allows printing of runtime computed options when doing:
> qemu -device foo,?
> ---
> hw/qdev.c | 10 +++++++++-
> hw/qdev.h | 1 +
> 2 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/hw/qdev.c b/hw/qdev.c
> index c7fec44..0b2ad3d 100644
> --- a/hw/qdev.c
> +++ b/hw/qdev.c
> @@ -187,7 +187,15 @@ int qdev_device_help(QemuOpts *opts)
> if (!prop->info->parse) {
> continue; /* no way to set it, don't show */
> }
> - error_printf("%s.%s=%s\n", info->name, prop->name, prop->info->name);
> + if (prop->info->print_options) {
> + char buf[256];
> + int ret;
> + ret = prop->info->print_options(info, prop, buf, sizeof(buf) -
> 3);
> + error_printf("%s.%s=%s%s\n", info->name, prop->name, buf,
> + ret == sizeof(buf) - 3 ? "..." : "" );
> + } else {
> + error_printf("%s.%s=%s\n", info->name, prop->name,
> prop->info->name);
> + }
> }
> return 1;
> }
> diff --git a/hw/qdev.h b/hw/qdev.h
> index 9808f85..fa3221b 100644
> --- a/hw/qdev.h
> +++ b/hw/qdev.h
> @@ -109,6 +109,7 @@ struct PropertyInfo {
> enum PropertyType type;
> int (*parse)(DeviceState *dev, Property *prop, const char *str);
> int (*print)(DeviceState *dev, Property *prop, char *dest, size_t len);
> + int (*print_options)(DeviceInfo *info, Property *prop, char *dest,
> size_t len);
> void (*free)(DeviceState *dev, Property *prop);
> };
>
> --
> 1.7.4
>
>