[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 22/24] accel: register global_props like machine glob
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL 22/24] accel: register global_props like machine globals |
Date: |
Tue, 11 Dec 2018 16:01:27 -0200 |
From: Marc-André Lureau <address@hidden>
global_props is only used for Xen xen_compat_props. It's a static
array of GlobalProperty, like machine globals in SET_MACHINE_COMPAT().
Let's register the globals the same way, without extra copy allocation.
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
include/hw/qdev-properties.h | 29 -----------------------------
accel/accel.c | 9 ++++++++-
hw/core/qdev-properties.c | 21 ---------------------
3 files changed, 8 insertions(+), 51 deletions(-)
diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h
index 4f60cc88f3..a95f4a73eb 100644
--- a/include/hw/qdev-properties.h
+++ b/include/hw/qdev-properties.h
@@ -255,35 +255,6 @@ void qdev_prop_set_globals(DeviceState *dev);
void error_set_from_qdev_prop_error(Error **errp, int ret, DeviceState *dev,
Property *prop, const char *value);
-/**
- * register_compat_prop:
- *
- * Register internal (not user-provided) global property, changing the
- * default value of a given property in a device type. This can be used
- * for enabling machine-type compatibility or for enabling
- * accelerator-specific defaults in devices.
- *
- * The property values set using this function must be always valid and
- * never report setter errors, as the property will have
- * GlobalProperty::errp set to &error_abort.
- *
- * User-provided global properties should override internal global
- * properties, so callers of this function should ensure that it is
- * called before user-provided global properties are registered.
- *
- * @driver: Device type to be affected
- * @property: Property whose default value is going to be changed
- * @value: New default value for the property
- */
-void register_compat_prop(const char *driver, const char *property,
- const char *value);
-/*
- * register_compat_props_array(): using register_compat_prop(), which
- * only registers internal global properties (which has lower priority
- * than user-provided global properties)
- */
-void register_compat_props_array(GlobalProperty *prop);
-
/**
* qdev_property_add_static:
* @dev: Device to add the property to.
diff --git a/accel/accel.c b/accel/accel.c
index 966b2d8f53..3da26eb90f 100644
--- a/accel/accel.c
+++ b/accel/accel.c
@@ -34,6 +34,7 @@
#include "qom/object.h"
#include "qemu/error-report.h"
#include "qemu/option.h"
+#include "qapi/error.h"
static const TypeInfo accel_type = {
.name = TYPE_ACCEL,
@@ -121,7 +122,13 @@ void configure_accelerator(MachineState *ms)
void accel_register_compat_props(AccelState *accel)
{
AccelClass *class = ACCEL_GET_CLASS(accel);
- register_compat_props_array(class->global_props);
+ GlobalProperty *prop = class->global_props;
+
+ for (; prop && prop->driver; prop++) {
+ /* Any compat_props must never cause error */
+ prop->errp = &error_abort;
+ qdev_prop_register_global(prop);
+ }
}
void accel_setup_post(MachineState *ms)
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 35072dec1e..ab61d502fd 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -1180,27 +1180,6 @@ void qdev_prop_register_global(GlobalProperty *prop)
global_props = g_list_append(global_props, prop);
}
-void register_compat_prop(const char *driver,
- const char *property,
- const char *value)
-{
- GlobalProperty *p = g_new0(GlobalProperty, 1);
-
- /* Any compat_props must never cause error */
- p->errp = &error_abort;
- p->driver = driver;
- p->property = property;
- p->value = value;
- qdev_prop_register_global(p);
-}
-
-void register_compat_props_array(GlobalProperty *prop)
-{
- for (; prop && prop->driver; prop++) {
- register_compat_prop(prop->driver, prop->property, prop->value);
- }
-}
-
void qdev_prop_register_global_list(GlobalProperty *props)
{
int i;
--
2.18.0.rc1.1.g3f1ff2140
- [Qemu-devel] [PULL 12/24] hostmem: Validate host-nodes before setting bitmap, (continued)
- [Qemu-devel] [PULL 12/24] hostmem: Validate host-nodes before setting bitmap, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 16/24] spapr: Use default_machine_opts to set suppress_vmdesc, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 18/24] pc: Use default_machine_opts to set suppress_vmdesc, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 14/24] virt: Eliminate separate instance_init functions, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 13/24] q35/440fx/arm/spapr: Add QEMU 4.0 machine type, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 17/24] spapr: Delete instance_options functions, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 15/24] spapr: Use default_machine_opts to set use_hotplug_event_source, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 19/24] tests: qdev_prop_check_globals() doesn't return "all_used", Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 20/24] qom: make interface types abstract, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 21/24] qom: make user_creatable_complete() specific to UserCreatable, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 22/24] accel: register global_props like machine globals,
Eduardo Habkost <=
- [Qemu-devel] [PULL 23/24] qdev: move qdev_prop_register_global_list() to tests, Eduardo Habkost, 2018/12/11
- [Qemu-devel] [PULL 24/24] qom: remove unimplemented class_finalize, Eduardo Habkost, 2018/12/11
- Re: [Qemu-devel] [PULL 00/24] Machine queue post-3.1.0 (including 4.0 machine-types), Peter Maydell, 2018/12/11
- Re: [Qemu-devel] [PULL 00/24] Machine queue post-3.1.0 (including 4.0 machine-types), no-reply, 2018/12/11