[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH qom-cpu for-1.5 2/4] qdev: Introduce qdev_prop_s
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCH qom-cpu for-1.5 2/4] qdev: Introduce qdev_prop_set_custom_globals() |
Date: |
Thu, 2 May 2013 16:08:30 -0300 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, May 01, 2013 at 06:07:18PM +0200, Andreas Färber wrote:
> Reuse it in qdev_prop_set_globals().
>
> Signed-off-by: Andreas Färber <address@hidden>
Very useful to allow us to implement sane bugfixes while the QOM
conversion is still work in progress, and much more flexible than having
to write special-purpose compat functions for code that isn't completely
QOMified yet.
Reviewed-by: Eduardo Habkost <address@hidden>
I assume that although this works with "-global" on the command-line, we
will try to use the (currently) fake class names from patch 3/4 only for
the internal machine-type compat_props tables, and discourage users from
using them in the command-line.
> ---
> hw/core/qdev-properties.c | 35 ++++++++++++++++++++++++-----------
> include/hw/qdev-properties.h | 2 ++
> 2 files changed, 26 insertions(+), 11 deletions(-)
>
> diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
> index 716ba19..68d1bff 100644
> --- a/hw/core/qdev-properties.c
> +++ b/hw/core/qdev-properties.c
> @@ -1099,23 +1099,36 @@ void qdev_prop_register_global_list(GlobalProperty
> *props)
> }
> }
>
> +void qdev_prop_set_custom_globals(DeviceState *dev, const char *driver,
> + Error **errp)
> +{
> + GlobalProperty *prop;
> +
> + QTAILQ_FOREACH(prop, &global_props, next) {
> + Error *err = NULL;
> +
> + if (strcmp(driver, prop->driver) != 0) {
> + continue;
> + }
> + qdev_prop_parse(dev, prop->property, prop->value, &err);
> + if (err != NULL) {
> + error_propagate(errp, err);
> + return;
> + }
> + }
> +}
> +
> void qdev_prop_set_globals(DeviceState *dev, Error **errp)
> {
> ObjectClass *class = object_get_class(OBJECT(dev));
>
> do {
> - GlobalProperty *prop;
> - QTAILQ_FOREACH(prop, &global_props, next) {
> - Error *err = NULL;
> + Error *err = NULL;
>
> - if (strcmp(object_class_get_name(class), prop->driver) != 0) {
> - continue;
> - }
> - qdev_prop_parse(dev, prop->property, prop->value, &err);
> - if (err != NULL) {
> - error_propagate(errp, err);
> - return;
> - }
> + qdev_prop_set_custom_globals(dev, object_class_get_name(class),
> &err);
> + if (err != NULL) {
> + error_propagate(errp, err);
> + return;
> }
> class = object_class_get_parent(class);
> } while (class);
> diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h
> index 38469d4..833300c 100644
> --- a/include/hw/qdev-properties.h
> +++ b/include/hw/qdev-properties.h
> @@ -169,6 +169,8 @@ void qdev_prop_set_ptr(DeviceState *dev, const char
> *name, void *value);
> void qdev_prop_register_global(GlobalProperty *prop);
> void qdev_prop_register_global_list(GlobalProperty *props);
> void qdev_prop_set_globals(DeviceState *dev, Error **errp);
> +void qdev_prop_set_custom_globals(DeviceState *dev, const char *driver,
> + Error **errp);
> void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *dev,
> Property *prop, const char *value);
>
> --
> 1.8.1.4
>
--
Eduardo
- [Qemu-devel] [PATCH qom-cpu for-1.5 0/4] target-i386: X86CPU compatibility properties, Andreas Färber, 2013/05/01
- [Qemu-devel] [PATCH qom-cpu for-1.5 3/4] target-i386: Emulate X86CPU subclasses for global properties, Andreas Färber, 2013/05/01
- [Qemu-devel] [PATCH qom-cpu for-1.5 2/4] qdev: Introduce qdev_prop_set_custom_globals(), Andreas Färber, 2013/05/01
- [Qemu-devel] [PATCH qom-cpu for-1.5 4/4] target-i386: Change CPUID model of 486 to 8, Andreas Färber, 2013/05/01
- [Qemu-devel] [PATCH qom-cpu for-1.5 1/4] qdev: Let qdev_prop_parse() pass through Error, Andreas Färber, 2013/05/01
- Re: [Qemu-devel] [PATCH qom-cpu for-1.5 0/4] target-i386: X86CPU compatibility properties, Anthony Liguori, 2013/05/03
- Re: [Qemu-devel] [PATCH qom-cpu for-1.5 0/4] target-i386: X86CPU compatibility properties, Andreas Färber, 2013/05/06