diff mbox series

[2/2] hw/char/sh_serial: Convert to TypeInfo

Message ID 20250124175053.74461-3-philmd@linaro.org
State New
Headers show
Series hw/char/sh_serial: QOM housekeeping | expand

Commit Message

Philippe Mathieu-Daudé Jan. 24, 2025, 5:50 p.m. UTC
QOM types are now registered using as TypeInfo via DEFINE_TYPES()
or type_init(). Update TYPE_SH_SERIAL, removing the empty QOM
instance_init/finalize handlers.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/char/sh_serial.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

Comments

Philippe Mathieu-Daudé Jan. 24, 2025, 6:07 p.m. UTC | #1
On 24/1/25 18:50, Philippe Mathieu-Daudé wrote:
> QOM types are now registered using as TypeInfo via DEFINE_TYPES()
> or type_init(). Update TYPE_SH_SERIAL, removing the empty QOM
> instance_init/finalize handlers.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   hw/char/sh_serial.c | 23 +++++++++++------------
>   1 file changed, 11 insertions(+), 12 deletions(-)
> 
> diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
> index 29ac9f9e5e7..b1db91656fe 100644
> --- a/hw/char/sh_serial.c
> +++ b/hw/char/sh_serial.c
> @@ -78,10 +78,6 @@ struct SHSerialState {
>       qemu_irq bri;
>   };
>   
> -typedef struct {} SHSerialStateClass;

Note this structure was buggy, as it should have embedded its parent...

   struct SHSerialStateClass {
     SysBusDeviceClass parent_class;
     ...
   };

> -
> -OBJECT_DEFINE_TYPE(SHSerialState, sh_serial, SH_SERIAL, SYS_BUS_DEVICE)
> -
>   static void sh_serial_clear_fifo(SHSerialState *s)
>   {
>       memset(s->rx_fifo, 0, SH_RX_FIFO_LENGTH);
> @@ -443,14 +439,6 @@ static void sh_serial_unrealize(DeviceState *dev)
>       timer_del(&s->fifo_timeout_timer);
>   }
>   
> -static void sh_serial_init(Object *obj)
> -{
> -}
> -
> -static void sh_serial_finalize(Object *obj)
> -{
> -}
> -
>   static const Property sh_serial_properties[] = {
>       DEFINE_PROP_CHR("chardev", SHSerialState, chr),
>       DEFINE_PROP_UINT8("features", SHSerialState, feat, 0),
> @@ -467,3 +455,14 @@ static void sh_serial_class_init(ObjectClass *oc, void *data)
>       /* Reason: part of SuperH CPU/SoC, needs to be wired up */
>       dc->user_creatable = false;
>   }
> +
> +static const TypeInfo sh_serial_types[] = {
> +    {
> +        .name           = TYPE_SH_SERIAL,
> +        .parent         = TYPE_SYS_BUS_DEVICE,
> +        .instance_size  = sizeof(SHSerialState),
> +        .class_init     = sh_serial_class_init,
> +    },
> +};
> +
> +DEFINE_TYPES(sh_serial_types)
diff mbox series

Patch

diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c
index 29ac9f9e5e7..b1db91656fe 100644
--- a/hw/char/sh_serial.c
+++ b/hw/char/sh_serial.c
@@ -78,10 +78,6 @@  struct SHSerialState {
     qemu_irq bri;
 };
 
-typedef struct {} SHSerialStateClass;
-
-OBJECT_DEFINE_TYPE(SHSerialState, sh_serial, SH_SERIAL, SYS_BUS_DEVICE)
-
 static void sh_serial_clear_fifo(SHSerialState *s)
 {
     memset(s->rx_fifo, 0, SH_RX_FIFO_LENGTH);
@@ -443,14 +439,6 @@  static void sh_serial_unrealize(DeviceState *dev)
     timer_del(&s->fifo_timeout_timer);
 }
 
-static void sh_serial_init(Object *obj)
-{
-}
-
-static void sh_serial_finalize(Object *obj)
-{
-}
-
 static const Property sh_serial_properties[] = {
     DEFINE_PROP_CHR("chardev", SHSerialState, chr),
     DEFINE_PROP_UINT8("features", SHSerialState, feat, 0),
@@ -467,3 +455,14 @@  static void sh_serial_class_init(ObjectClass *oc, void *data)
     /* Reason: part of SuperH CPU/SoC, needs to be wired up */
     dc->user_creatable = false;
 }
+
+static const TypeInfo sh_serial_types[] = {
+    {
+        .name           = TYPE_SH_SERIAL,
+        .parent         = TYPE_SYS_BUS_DEVICE,
+        .instance_size  = sizeof(SHSerialState),
+        .class_init     = sh_serial_class_init,
+    },
+};
+
+DEFINE_TYPES(sh_serial_types)