qemu-devel
[Top][All Lists]
Advanced

[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
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]