summary refs log tree commit diff stats
path: root/include/hw/qdev-core.h
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2024-12-18 07:42:47 -0600
committerPaolo Bonzini <pbonzini@redhat.com>2024-12-19 19:36:37 +0100
commit5fcabe628b8140691dab834a22be549d242b24bd (patch)
tree677fbe0002ba4aedbeff7718bc00d82e494a5bc0 /include/hw/qdev-core.h
parentebe9685f12bb30ebd35575d31c6b6e0efad3a2bc (diff)
downloadfocaccia-qemu-5fcabe628b8140691dab834a22be549d242b24bd.tar.gz
focaccia-qemu-5fcabe628b8140691dab834a22be549d242b24bd.zip
include/hw/qdev-properties: Remove DEFINE_PROP_END_OF_LIST
Now that all of the Property arrays are counted, we can remove
the terminator object from each array.  Update the assertions
in device_class_set_props to match.

With struct Property being 88 bytes, this was a rather large
form of terminator.  Saves 30k from qemu-system-aarch64.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Lei Yang <leiyang@redhat.com>
Link: https://lore.kernel.org/r/20241218134251.4724-21-richard.henderson@linaro.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/hw/qdev-core.h')
-rw-r--r--include/hw/qdev-core.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index afa667b68f..e6ef80b7fd 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -941,22 +941,22 @@ char *qdev_get_own_fw_dev_path_from_handler(BusState *bus, DeviceState *dev);
 /**
  * device_class_set_props(): add a set of properties to an device
  * @dc: the parent DeviceClass all devices inherit
- * @props: an array of properties, terminate by DEFINE_PROP_END_OF_LIST()
+ * @props: an array of properties
  *
  * This will add a set of properties to the object. It will fault if
  * you attempt to add an existing property defined by a parent class.
  * To modify an inherited property you need to use????
  *
- * Validate that @props has at least one Property plus the terminator.
+ * Validate that @props has at least one Property.
  * Validate that @props is an array, not a pointer, via ARRAY_SIZE.
- * Validate that the array is terminated at compile-time (with -O2),
- * which requires the array to be const.
+ * Validate that the array does not have a legacy terminator at compile-time;
+ * requires -O2 and the array to be const.
  */
 #define device_class_set_props(dc, props) \
     do {                                                                \
         QEMU_BUILD_BUG_ON(sizeof(props) == 0);                          \
-        size_t props_count_ = ARRAY_SIZE(props) - 1;                    \
-        if ((props)[props_count_].name != NULL) {                       \
+        size_t props_count_ = ARRAY_SIZE(props);                        \
+        if ((props)[props_count_ - 1].name == NULL) {                   \
             qemu_build_not_reached();                                   \
         }                                                               \
         device_class_set_props_n((dc), (props), props_count_);          \
@@ -965,7 +965,7 @@ char *qdev_get_own_fw_dev_path_from_handler(BusState *bus, DeviceState *dev);
 /**
  * device_class_set_props_n(): add a set of properties to an device
  * @dc: the parent DeviceClass all devices inherit
- * @props: an array of properties, not terminated by DEFINE_PROP_END_OF_LIST.
+ * @props: an array of properties
  * @n: ARRAY_SIZE(@props)
  *
  * This will add a set of properties to the object. It will fault if