[PATCH 3/9] hw/acpi/pci: Consolidate OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES

Zhao Liu posted 9 patches 6 months ago
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, Ani Sinha <anisinha@redhat.com>, Yoshinori Sato <ysato@users.sourceforge.jp>, Magnus Damm <magnus.damm@gmail.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Maciej S. Szmigiero" <maciej.szmigiero@oracle.com>, Nicholas Piggin <npiggin@gmail.com>, Daniel Henrique Barboza <danielhb413@gmail.com>, Harsh Prateek Bora <harshpb@linux.ibm.com>, Peter Maydell <peter.maydell@linaro.org>, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Richard Henderson <richard.henderson@linaro.org>, David Hildenbrand <david@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>, Thomas Huth <thuth@redhat.com>
[PATCH 3/9] hw/acpi/pci: Consolidate OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES
Posted by Zhao Liu 6 months ago
The QOM types of AcpiGenericInitiator and AcpiGenericPort are declared
by OBJECT_DECLARE_SIMPLE_TYPE, which means they don't need the class!

Therefore, use OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES to implement
the type, then there's no need for class definition.

Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Ani Sinha <anisinha@redhat.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
---
 hw/acpi/pci.c | 24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git a/hw/acpi/pci.c b/hw/acpi/pci.c
index d511a8502954..acac6744525e 100644
--- a/hw/acpi/pci.c
+++ b/hw/acpi/pci.c
@@ -75,16 +75,12 @@ typedef struct AcpiGenericInitiator {
     uint32_t node;
 } AcpiGenericInitiator;
 
-typedef struct AcpiGenericInitiatorClass {
-    ObjectClass parent_class;
-} AcpiGenericInitiatorClass;
-
 #define TYPE_ACPI_GENERIC_INITIATOR "acpi-generic-initiator"
 
-OBJECT_DEFINE_TYPE_WITH_INTERFACES(AcpiGenericInitiator, acpi_generic_initiator,
-                   ACPI_GENERIC_INITIATOR, OBJECT,
-                   { TYPE_USER_CREATABLE },
-                   { NULL })
+OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES(AcpiGenericInitiator, acpi_generic_initiator,
+                                          ACPI_GENERIC_INITIATOR, OBJECT,
+                                          { TYPE_USER_CREATABLE },
+                                          { NULL })
 
 OBJECT_DECLARE_SIMPLE_TYPE(AcpiGenericInitiator, ACPI_GENERIC_INITIATOR)
 
@@ -191,16 +187,12 @@ typedef struct AcpiGenericPort {
     uint32_t node;
 } AcpiGenericPort;
 
-typedef struct AcpiGenericPortClass {
-    ObjectClass parent_class;
-} AcpiGenericPortClass;
-
 #define TYPE_ACPI_GENERIC_PORT "acpi-generic-port"
 
-OBJECT_DEFINE_TYPE_WITH_INTERFACES(AcpiGenericPort, acpi_generic_port,
-                   ACPI_GENERIC_PORT, OBJECT,
-                   { TYPE_USER_CREATABLE },
-                   { NULL })
+OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES(AcpiGenericPort, acpi_generic_port,
+                                          ACPI_GENERIC_PORT, OBJECT,
+                                          { TYPE_USER_CREATABLE },
+                                          { NULL })
 
 OBJECT_DECLARE_SIMPLE_TYPE(AcpiGenericPort, ACPI_GENERIC_PORT)
 
-- 
2.34.1
Re: [PATCH 3/9] hw/acpi/pci: Consolidate OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES
Posted by Ani Sinha 6 months ago
On Wed, May 14, 2025 at 1:59 PM Zhao Liu <zhao1.liu@intel.com> wrote:
>
> The QOM types of AcpiGenericInitiator and AcpiGenericPort are declared
> by OBJECT_DECLARE_SIMPLE_TYPE, which means they don't need the class!
>
> Therefore, use OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES to implement
> the type, then there's no need for class definition.
>
> Cc: "Michael S. Tsirkin" <mst@redhat.com>
> Cc: Igor Mammedov <imammedo@redhat.com>
> Cc: Ani Sinha <anisinha@redhat.com>
> Signed-off-by: Zhao Liu <zhao1.liu@intel.com>

Reviewed-by: Ani Sinha <anisinha@redhat.com>

> ---
>  hw/acpi/pci.c | 24 ++++++++----------------
>  1 file changed, 8 insertions(+), 16 deletions(-)
>
> diff --git a/hw/acpi/pci.c b/hw/acpi/pci.c
> index d511a8502954..acac6744525e 100644
> --- a/hw/acpi/pci.c
> +++ b/hw/acpi/pci.c
> @@ -75,16 +75,12 @@ typedef struct AcpiGenericInitiator {
>      uint32_t node;
>  } AcpiGenericInitiator;
>
> -typedef struct AcpiGenericInitiatorClass {
> -    ObjectClass parent_class;
> -} AcpiGenericInitiatorClass;
> -
>  #define TYPE_ACPI_GENERIC_INITIATOR "acpi-generic-initiator"
>
> -OBJECT_DEFINE_TYPE_WITH_INTERFACES(AcpiGenericInitiator, acpi_generic_initiator,
> -                   ACPI_GENERIC_INITIATOR, OBJECT,
> -                   { TYPE_USER_CREATABLE },
> -                   { NULL })
> +OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES(AcpiGenericInitiator, acpi_generic_initiator,
> +                                          ACPI_GENERIC_INITIATOR, OBJECT,
> +                                          { TYPE_USER_CREATABLE },
> +                                          { NULL })
>
>  OBJECT_DECLARE_SIMPLE_TYPE(AcpiGenericInitiator, ACPI_GENERIC_INITIATOR)
>
> @@ -191,16 +187,12 @@ typedef struct AcpiGenericPort {
>      uint32_t node;
>  } AcpiGenericPort;
>
> -typedef struct AcpiGenericPortClass {
> -    ObjectClass parent_class;
> -} AcpiGenericPortClass;
> -
>  #define TYPE_ACPI_GENERIC_PORT "acpi-generic-port"
>
> -OBJECT_DEFINE_TYPE_WITH_INTERFACES(AcpiGenericPort, acpi_generic_port,
> -                   ACPI_GENERIC_PORT, OBJECT,
> -                   { TYPE_USER_CREATABLE },
> -                   { NULL })
> +OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES(AcpiGenericPort, acpi_generic_port,
> +                                          ACPI_GENERIC_PORT, OBJECT,
> +                                          { TYPE_USER_CREATABLE },
> +                                          { NULL })
>
>  OBJECT_DECLARE_SIMPLE_TYPE(AcpiGenericPort, ACPI_GENERIC_PORT)
>
> --
> 2.34.1
>