On Tue, 31 Oct 2023 at 13:55, Peter Maydell <peter.maydell@linaro.org> wrote:
On Mon, 30 Oct 2023 at 20:38, Mark Cave-Ayland
<mark.cave-ayland@ilande.co.uk> wrote:
On 30/10/2023 11:48, Peter Maydell wrote:
Is it worth converting this to use DEFINE_TYPES() during the conversion? I know
Phil
has considered some automation to remove the type_init() boilerplate for the
majority
of cases.
I could, I guess. It seems a bit awkward that DEFINE_TYPES()
wants you to pass it an array even when you only have one type,
though, which is going to be a very common use case.
I'm going to squash this into this patch:
diff --git a/hw/input/stellaris_gamepad.c b/hw/input/stellaris_gamepad.c
index 6ccf0e80adc..d42ba4f0582 100644
--- a/hw/input/stellaris_gamepad.c
+++ b/hw/input/stellaris_gamepad.c
@@ -90,16 +90,13 @@ static void
stellaris_gamepad_class_init(ObjectClass *klass, void *data)
device_class_set_props(dc, stellaris_gamepad_properties);
}
-static const TypeInfo stellaris_gamepad_info = {
- .name = TYPE_STELLARIS_GAMEPAD,
- .parent = TYPE_SYS_BUS_DEVICE,
- .instance_size = sizeof(StellarisGamepad),
- .class_init = stellaris_gamepad_class_init,
+static const TypeInfo stellaris_gamepad_info[] = {
+ {
+ .name = TYPE_STELLARIS_GAMEPAD,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(StellarisGamepad),
+ .class_init = stellaris_gamepad_class_init,
+ },
};
-static void stellaris_gamepad_register_types(void)
-{
- type_register_static(&stellaris_gamepad_info);
-}
-
-type_init(stellaris_gamepad_register_types);
+DEFINE_TYPES(stellaris_gamepad_info);
The array is a bit awkward, but it's overall better than having
to define the register-types function.