All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL 17/27] qom: Move compat_props machinery from qdev to QOM
Date: Mon, 11 Mar 2019 23:08:33 +0100	[thread overview]
Message-ID: <20190311220843.4026-18-armbru@redhat.com> (raw)
In-Reply-To: <20190311220843.4026-1-armbru@redhat.com>

See the previous commit for rationale.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190308131445.17502-3-armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/core/qdev.c         | 39 ---------------------------------------
 include/hw/qdev-core.h |  4 ----
 include/qom/object.h   |  3 +++
 qom/object.c           | 39 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 4f3200d54b..f9b6efe509 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -978,45 +978,6 @@ static void device_initfn(Object *obj)
     QLIST_INIT(&dev->gpios);
 }
 
-/*
- * Global property defaults
- * Slot 0: accelerator's global property defaults
- * Slot 1: machine's global property defaults
- * Each is a GPtrArray of of GlobalProperty.
- * Applied in order, later entries override earlier ones.
- */
-static GPtrArray *object_compat_props[2];
-
-/*
- * Set machine's global property defaults to @compat_props.
- * May be called at most once.
- */
-void object_set_machine_compat_props(GPtrArray *compat_props)
-{
-    assert(!object_compat_props[1]);
-    object_compat_props[1] = compat_props;
-}
-
-/*
- * Set accelerator's global property defaults to @compat_props.
- * May be called at most once.
- */
-void object_set_accelerator_compat_props(GPtrArray *compat_props)
-{
-    assert(!object_compat_props[0]);
-    object_compat_props[0] = compat_props;
-}
-
-void object_apply_compat_props(Object *obj)
-{
-    int i;
-
-    for (i = 0; i < ARRAY_SIZE(object_compat_props); i++) {
-        object_apply_global_props(obj, object_compat_props[i],
-                                  &error_abort);
-    }
-}
-
 static void device_post_init(Object *obj)
 {
     /*
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index aa8a3ea782..33ed3b8dde 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -431,10 +431,6 @@ const char *qdev_fw_name(DeviceState *dev);
 
 Object *qdev_get_machine(void);
 
-void object_set_machine_compat_props(GPtrArray *compat_props);
-void object_set_accelerator_compat_props(GPtrArray *compat_props);
-void object_apply_compat_props(Object *obj);
-
 /* FIXME: make this a link<> */
 void qdev_set_parent_bus(DeviceState *dev, BusState *bus);
 
diff --git a/include/qom/object.h b/include/qom/object.h
index e0262962b5..288cdddf44 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -677,6 +677,9 @@ Object *object_new_with_propv(const char *typename,
 
 void object_apply_global_props(Object *obj, const GPtrArray *props,
                                Error **errp);
+void object_set_machine_compat_props(GPtrArray *compat_props);
+void object_set_accelerator_compat_props(GPtrArray *compat_props);
+void object_apply_compat_props(Object *obj);
 
 /**
  * object_set_props:
diff --git a/qom/object.c b/qom/object.c
index 05a8567041..e3206d6799 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -408,6 +408,45 @@ void object_apply_global_props(Object *obj, const GPtrArray *props, Error **errp
     }
 }
 
+/*
+ * Global property defaults
+ * Slot 0: accelerator's global property defaults
+ * Slot 1: machine's global property defaults
+ * Each is a GPtrArray of of GlobalProperty.
+ * Applied in order, later entries override earlier ones.
+ */
+static GPtrArray *object_compat_props[2];
+
+/*
+ * Set machine's global property defaults to @compat_props.
+ * May be called at most once.
+ */
+void object_set_machine_compat_props(GPtrArray *compat_props)
+{
+    assert(!object_compat_props[1]);
+    object_compat_props[1] = compat_props;
+}
+
+/*
+ * Set accelerator's global property defaults to @compat_props.
+ * May be called at most once.
+ */
+void object_set_accelerator_compat_props(GPtrArray *compat_props)
+{
+    assert(!object_compat_props[0]);
+    object_compat_props[0] = compat_props;
+}
+
+void object_apply_compat_props(Object *obj)
+{
+    int i;
+
+    for (i = 0; i < ARRAY_SIZE(object_compat_props); i++) {
+        object_apply_global_props(obj, object_compat_props[i],
+                                  &error_abort);
+    }
+}
+
 static void object_initialize_with_type(void *data, size_t size, TypeImpl *type)
 {
     Object *obj = data;
-- 
2.17.2

  parent reply	other threads:[~2019-03-11 22:09 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-11 22:08 [Qemu-devel] [PULL 00/27] Pflash and firmware configuration patches for 2019-03-11 Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 01/27] pflash: Rename pflash_t to PFlashCFI01, PFlashCFI02 Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 02/27] pflash_cfi01: Do not exit() on guest aborting "write to buffer" Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 03/27] pflash_cfi01: Log use of flawed " Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 04/27] pflash: Rename *CFI_PFLASH* to *PFLASH_CFI* Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 05/27] hw: Use PFLASH_CFI0{1, 2} and TYPE_PFLASH_CFI0{1, 2} Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 06/27] sam460ex: Don't size flash memory to match backing image Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 07/27] ppc405_boards: Delete stale, disabled DEBUG_BOARD_INIT code Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 08/27] ppc405_boards: Don't size flash memory to match backing image Markus Armbruster
2020-03-20 15:25   ` Peter Maydell
2020-03-20 16:10     ` Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 09/27] r2d: Fix flash memory size, sector size, width, device ID Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 10/27] mips_malta: Delete disabled, broken DEBUG_BOARD_INIT code Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 11/27] hw/mips/malta: Remove fl_sectors variable Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 12/27] hw/mips/malta: Restrict 'bios_size' variable scope Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 13/27] mips_malta: Clean up definition of flash memory size somewhat Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 14/27] pflash: Clean up after commit 368a354f02b, part 1 Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 15/27] pflash: Clean up after commit 368a354f02b, part 2 Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 16/27] qdev: Fix latent bug with compat_props and onboard devices Markus Armbruster
2019-03-11 22:08 ` Markus Armbruster [this message]
2019-03-11 22:08 ` [Qemu-devel] [PULL 18/27] vl: Fix latent bug with -global " Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 19/27] sysbus: Fix latent bug with " Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 20/27] vl: Improve legibility of BlockdevOptions queue Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 21/27] vl: Factor configure_blockdev() out of main() Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 22/27] vl: Create block backends before setting machine properties Markus Armbruster
2019-05-16  8:29   ` Michal Privoznik
2019-05-16 11:43     ` Markus Armbruster
2019-05-16 12:44       ` Michal Privoznik
2019-06-03 17:40         ` Markus Armbruster
2019-06-04 13:29           ` Paolo Bonzini
2019-03-11 22:08 ` [Qemu-devel] [PULL 23/27] pflash_cfi01: Add pflash_cfi01_get_blk() helper Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 24/27] pc_sysfw: Remove unused PcSysFwDevice Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 25/27] pc_sysfw: Pass PCMachineState to pc_system_firmware_init() Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 26/27] pc: Support firmware configuration with -blockdev Markus Armbruster
2019-03-11 22:08 ` [Qemu-devel] [PULL 27/27] docs/interop/firmware.json: Prefer -machine to if=pflash Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190311220843.4026-18-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.