Marc-André Lureau <[email protected]> writes:
> Change DEFINE_PROP_ARRAY, the macro now uses _arrayprop##_list to
> resolve the typed list PropertyInfo (introduced in the previous patch)
> instead of the generic qdev_prop_array.
>
> This means the element type and size information is carried by the
> PropertyInfo itself rather than duplicated at each callsite. Since
> the typed list PropertyInfos encode element_info and element_size,
> the .arrayinfo and .arrayfieldsize fields are no longer set by the
> macro (they will be removed from the Property struct in the next patch).
>
> Remove qdev_prop_array, which is now unused.
>
> Signed-off-by: Marc-André Lureau <[email protected]>
[...]
> diff --git a/hw/intc/arm_gicv5_common.c b/hw/intc/arm_gicv5_common.c
> index b155486af65..61c8ae49302 100644
> --- a/hw/intc/arm_gicv5_common.c
> +++ b/hw/intc/arm_gicv5_common.c
> @@ -191,9 +191,9 @@ static void gicv5_common_realize(DeviceState *dev, Error
> **errp)
>
> static const Property arm_gicv5_common_properties[] = {
> DEFINE_PROP_LINK_ARRAY("cpus", GICv5Common, num_cpus,
> - cpus, TYPE_ARM_CPU, ARMCPU *),
> + cpus, TYPE_ARM_CPU),
> DEFINE_PROP_ARRAY("cpu-iaffids", GICv5Common, num_cpu_iaffids,
> - cpu_iaffids, qdev_prop_uint32, uint32_t),
> + cpu_iaffids, qdev_prop_uint32),
> DEFINE_PROP_UINT32("irsid", GICv5Common, irsid, 0),
> DEFINE_PROP_UINT32("spi-range", GICv5Common, spi_range, 0),
> DEFINE_PROP_UINT32("spi-base", GICv5Common, spi_base, 0),
Doesn't compile for me. I applied the series at merge commit
8333dba732. If it compiles for you, could you push it to where I can
pull?
FAILED: [code=1] libsystem.a.p/hw_intc_arm_gicv5_common.c.o
cc -m64 -Ilibsystem.a.p -I. -I.. -Isubprojects/libvduse
-I../subprojects/libvduse -Iui -Iqapi -Itrace -Iui/shader
-I/usr/include/p11-kit-1 -I/usr/include/pixman-1 -I/usr/include/libpng16
-I/usr/include/spice-server -I/usr/include/spice-1 -I/usr/include/opus
-I/usr/include/cacard -I/usr/include/nss3 -I/usr/include/nspr4
-I/usr/include/PCSC -I/usr/include/gstreamer-1.0 -I/usr/include/libdrm
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-6
-I/usr/include/orc-0.4 -I/usr/include/libusb-1.0 -I/usr/include/SDL2
-I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0
-I/usr/include/slirp -I/usr/local/include -I/usr/include/gtk-3.0
-I/usr/include/pango-1.0 -I/usr/include/cloudproviders -I/usr/include/cairo
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glycin-2
-I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0
-I/usr/lib64/pkgconfig/../../include/dbus-1.0
-I/usr/lib64/pkgconfig/../../lib64/dbus-1.0/include -I/usr/include/fribidi
-I/usr/include/libxml2 -I/usr/include/harfbuzz -I/usr/include/freetype2
-I/usr/include/vte-2.91 -I/usr/include/rav1e -I/usr/include/svt-av1
-I/usr/include/libvmaf -I/usr/include/webp -I/usr/include/virgl
-I/usr/include/fuse3 -I/usr/include/uuid -I/usr/include/pipewire-0.3
-I/usr/include/spa-0.2 -fdiagnostics-color=auto -Wall -Winvalid-pch -Werror
-std=gnu11 -O2 -g -mcx16 -msse2 -D_GNU_SOURCE -D_LARGEFILE_SOURCE
-fno-strict-aliasing -fno-common -fwrapv -ftrivial-auto-var-init=zero
-fzero-call-used-regs=used-gpr -fstack-protector-strong -Wempty-body
-Wendif-labels -Wexpansion-to-defined -Wformat-overflow=2 -Wformat-security
-Wformat-y2k -Wignored-qualifiers -Wimplicit-fallthrough=2 -Winit-self
-Wmissing-format-attribute -Wmissing-prototypes -Wnested-externs
-Wold-style-declaration -Wold-style-definition -Wredundant-decls -Wshadow=local
-Wstrict-prototypes -Wtype-limits -Wundef -Wvla -Wwrite-strings
-Wno-missing-include-dirs -Wno-psabi -Wno-shift-negative-value -isystem
/work/armbru/qemu/linux-headers -isystem linux-headers -iquote . -iquote
/work/armbru/qemu -iquote /work/armbru/qemu/include -iquote
/work/armbru/qemu/host/include/x86_64 -iquote
/work/armbru/qemu/host/include/generic -iquote /work/armbru/qemu/tcg/x86_64
-pthread -DSTAP_SDT_V2 -fPIE -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64
-D__USE_LARGEFILE64 -DUSE_POSIX_ACLS=1 -DHWY_SHARED_DEFINE -DAVIF_DLL -DEB_DLL
-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNCURSES_WIDECHAR=1 -D_GNU_SOURCE=1
-D_REENTRANT -DSTRUCT_IOVEC_DEFINED -DWITH_GZFILEOP -DCONFIG_SOFTMMU
-DCOMPILING_SYSTEM_VS_USER -MD -MQ libsystem.a.p/hw_intc_arm_gicv5_common.c.o
-MF libsystem.a.p/hw_intc_arm_gicv5_common.c.o.d -o
libsystem.a.p/hw_intc_arm_gicv5_common.c.o -c ../hw/intc/arm_gicv5_common.c
In file included from ../hw/intc/arm_gicv5_common.c:12:
/work/armbru/qemu/include/hw/core/qdev-properties.h:195:40: error:
‘qdev_prop_array’ undeclared here (not in a function); did you mean
‘qdev_prop_set_array’?
195 | DEFINE_PROP(_name, _state, _field, qdev_prop_array, uint32_t,
\
| ^~~~~~~~~~~~~~~
/work/armbru/qemu/include/hw/core/qdev-properties.h:88:24: note: in definition
of macro ‘DEFINE_PROP’
88 | .info = &(_prop), \
| ^~~~~
../hw/intc/arm_gicv5_common.c:193:5: note: in expansion of macro
‘DEFINE_PROP_LINK_ARRAY’
193 | DEFINE_PROP_LINK_ARRAY("cpus", GICv5Common, num_cpus,
| ^~~~~~~~~~~~~~~~~~~~~~
../hw/intc/arm_gicv5_common.c:196:62: error: macro ‘DEFINE_PROP_ARRAY’ passed 6
arguments, but takes just 5
196 | cpu_iaffids, qdev_prop_uint32, uint32_t),
| ^
/work/armbru/qemu/include/hw/core/qdev-properties.h:166:9: note: macro
‘DEFINE_PROP_ARRAY’ defined here
166 | #define DEFINE_PROP_ARRAY(_name, _state, _field,
\
| ^~~~~~~~~~~~~~~~~
../hw/intc/arm_gicv5_common.c:195:5: error: ‘DEFINE_PROP_ARRAY’ undeclared here
(not in a function)
195 | DEFINE_PROP_ARRAY("cpu-iaffids", GICv5Common, num_cpu_iaffids,
| ^~~~~~~~~~~~~~~~~
[...]