diff mbox series

[04/12] hw/acpi/piix4: move PIIX4PMState into separate piix4.h header

Message ID 20220528091934.15520-5-mark.cave-ayland@ilande.co.uk (mailing list archive)
State New, archived
Headers show
Series hw/acpi/piix4: remove legacy piix4_pm_init() function | expand

Commit Message

Mark Cave-Ayland May 28, 2022, 9:19 a.m. UTC
This allows the QOM types in hw/acpi/piix4.c to be used elsewhere by simply including
hw/acpi/piix4.h.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 hw/acpi/piix4.c               | 43 +-------------------
 hw/i386/acpi-build.c          |  1 +
 include/hw/acpi/piix4.h       | 75 +++++++++++++++++++++++++++++++++++
 include/hw/southbridge/piix.h |  2 -
 4 files changed, 78 insertions(+), 43 deletions(-)
 create mode 100644 include/hw/acpi/piix4.h

Comments

Bernhard Beschow May 29, 2022, 7:02 p.m. UTC | #1
Am 28. Mai 2022 09:19:26 UTC schrieb Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>:
>This allows the QOM types in hw/acpi/piix4.c to be used elsewhere by simply including
>hw/acpi/piix4.h.
>
>Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>---
> hw/acpi/piix4.c               | 43 +-------------------
> hw/i386/acpi-build.c          |  1 +
> include/hw/acpi/piix4.h       | 75 +++++++++++++++++++++++++++++++++++
> include/hw/southbridge/piix.h |  2 -
> 4 files changed, 78 insertions(+), 43 deletions(-)
> create mode 100644 include/hw/acpi/piix4.h
>
>diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
>index 2735ff375e..7ee65b1bff 100644
>--- a/hw/acpi/piix4.c
>+++ b/hw/acpi/piix4.c
>@@ -28,6 +28,8 @@
> #include "hw/pci/pci.h"
> #include "hw/qdev-properties.h"
> #include "hw/acpi/acpi.h"
>+#include "hw/acpi/pcihp.h"

No need to be included twice.

>+#include "hw/acpi/piix4.h"
> #include "sysemu/runstate.h"
> #include "sysemu/sysemu.h"
> #include "sysemu/xen.h"
>@@ -56,47 +58,6 @@ struct pci_status {
>     uint32_t down;
> };
> 
>-struct PIIX4PMState {
>-    /*< private >*/
>-    PCIDevice parent_obj;
>-    /*< public >*/
>-
>-    MemoryRegion io;
>-    uint32_t io_base;
>-
>-    MemoryRegion io_gpe;
>-    ACPIREGS ar;
>-
>-    APMState apm;
>-
>-    PMSMBus smb;
>-    uint32_t smb_io_base;
>-
>-    qemu_irq irq;
>-    qemu_irq smi_irq;
>-    bool smm_enabled;
>-    bool smm_compat;
>-    Notifier machine_ready;
>-    Notifier powerdown_notifier;
>-
>-    AcpiPciHpState acpi_pci_hotplug;
>-    bool use_acpi_hotplug_bridge;
>-    bool use_acpi_root_pci_hotplug;
>-    bool not_migrate_acpi_index;
>-
>-    uint8_t disable_s3;
>-    uint8_t disable_s4;
>-    uint8_t s4_val;
>-
>-    bool cpu_hotplug_legacy;
>-    AcpiCpuHotplug gpe_cpu;
>-    CPUHotplugState cpuhp_state;
>-
>-    MemHotplugState acpi_memory_hotplug;
>-};
>-
>-OBJECT_DECLARE_SIMPLE_TYPE(PIIX4PMState, PIIX4_PM)
>-
> static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
>                                            PCIBus *bus, PIIX4PMState *s);
> 
>diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
>index c125939ed6..89ac326d7f 100644
>--- a/hw/i386/acpi-build.c
>+++ b/hw/i386/acpi-build.c
>@@ -46,6 +46,7 @@
> #include "hw/acpi/tpm.h"
> #include "hw/acpi/vmgenid.h"
> #include "hw/acpi/erst.h"
>+#include "hw/acpi/piix4.h"
> #include "sysemu/tpm_backend.h"
> #include "hw/rtc/mc146818rtc_regs.h"
> #include "migration/vmstate.h"
>diff --git a/include/hw/acpi/piix4.h b/include/hw/acpi/piix4.h
>new file mode 100644
>index 0000000000..32686a75c5
>--- /dev/null
>+++ b/include/hw/acpi/piix4.h
>@@ -0,0 +1,75 @@
>+/*
>+ * ACPI implementation
>+ *
>+ * Copyright (c) 2006 Fabrice Bellard
>+ *
>+ * This library is free software; you can redistribute it and/or
>+ * modify it under the terms of the GNU Lesser General Public
>+ * License version 2.1 as published by the Free Software Foundation.
>+ *
>+ * This library is distributed in the hope that it will be useful,
>+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
>+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>+ * Lesser General Public License for more details.
>+ *
>+ * You should have received a copy of the GNU Lesser General Public
>+ * License along with this library; if not, see <http://www.gnu.org/licenses/>
>+ *
>+ * Contributions after 2012-01-13 are licensed under the terms of the
>+ * GNU GPL, version 2 or (at your option) any later version.
>+ */
>+
>+#ifndef HW_ACPI_PIIX4_H
>+#define HW_ACPI_PIIX4_H
>+
>+#include "hw/pci/pci.h"
>+#include "hw/acpi/acpi.h"
>+#include "hw/acpi/cpu_hotplug.h"
>+#include "hw/acpi/memory_hotplug.h"
>+#include "hw/acpi/pcihp.h"
>+#include "hw/i2c/pm_smbus.h"
>+#include "hw/isa/apm.h"

These headers don't need to be included in the .c file any more.

>+
>+#define TYPE_PIIX4_PM "PIIX4_PM"
>+OBJECT_DECLARE_SIMPLE_TYPE(PIIX4PMState, PIIX4_PM)
>+
>+struct PIIX4PMState {
>+    /*< private >*/
>+    PCIDevice parent_obj;
>+    /*< public >*/
>+
>+    MemoryRegion io;
>+    uint32_t io_base;
>+
>+    MemoryRegion io_gpe;
>+    ACPIREGS ar;
>+
>+    APMState apm;
>+
>+    PMSMBus smb;
>+    uint32_t smb_io_base;
>+
>+    qemu_irq irq;
>+    qemu_irq smi_irq;
>+    bool smm_enabled;
>+    bool smm_compat;
>+    Notifier machine_ready;
>+    Notifier powerdown_notifier;
>+
>+    AcpiPciHpState acpi_pci_hotplug;
>+    bool use_acpi_hotplug_bridge;
>+    bool use_acpi_root_pci_hotplug;
>+    bool not_migrate_acpi_index;
>+
>+    uint8_t disable_s3;
>+    uint8_t disable_s4;
>+    uint8_t s4_val;
>+
>+    bool cpu_hotplug_legacy;
>+    AcpiCpuHotplug gpe_cpu;
>+    CPUHotplugState cpuhp_state;
>+
>+    MemHotplugState acpi_memory_hotplug;
>+};
>+
>+#endif
>diff --git a/include/hw/southbridge/piix.h b/include/hw/southbridge/piix.h
>index f63f83e5c6..c5b842b45d 100644
>--- a/include/hw/southbridge/piix.h
>+++ b/include/hw/southbridge/piix.h
>@@ -15,8 +15,6 @@
> #include "hw/pci/pci.h"
> #include "qom/object.h"
> 
>-#define TYPE_PIIX4_PM "PIIX4_PM"
>-
> I2CBus *piix4_pm_init(PCIBus *bus, int devfn, uint32_t smb_io_base,
>                       qemu_irq sci_irq, qemu_irq smi_irq,
>                       int smm_enabled, DeviceState **piix4_pm);
diff mbox series

Patch

diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index 2735ff375e..7ee65b1bff 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -28,6 +28,8 @@ 
 #include "hw/pci/pci.h"
 #include "hw/qdev-properties.h"
 #include "hw/acpi/acpi.h"
+#include "hw/acpi/pcihp.h"
+#include "hw/acpi/piix4.h"
 #include "sysemu/runstate.h"
 #include "sysemu/sysemu.h"
 #include "sysemu/xen.h"
@@ -56,47 +58,6 @@  struct pci_status {
     uint32_t down;
 };
 
-struct PIIX4PMState {
-    /*< private >*/
-    PCIDevice parent_obj;
-    /*< public >*/
-
-    MemoryRegion io;
-    uint32_t io_base;
-
-    MemoryRegion io_gpe;
-    ACPIREGS ar;
-
-    APMState apm;
-
-    PMSMBus smb;
-    uint32_t smb_io_base;
-
-    qemu_irq irq;
-    qemu_irq smi_irq;
-    bool smm_enabled;
-    bool smm_compat;
-    Notifier machine_ready;
-    Notifier powerdown_notifier;
-
-    AcpiPciHpState acpi_pci_hotplug;
-    bool use_acpi_hotplug_bridge;
-    bool use_acpi_root_pci_hotplug;
-    bool not_migrate_acpi_index;
-
-    uint8_t disable_s3;
-    uint8_t disable_s4;
-    uint8_t s4_val;
-
-    bool cpu_hotplug_legacy;
-    AcpiCpuHotplug gpe_cpu;
-    CPUHotplugState cpuhp_state;
-
-    MemHotplugState acpi_memory_hotplug;
-};
-
-OBJECT_DECLARE_SIMPLE_TYPE(PIIX4PMState, PIIX4_PM)
-
 static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
                                            PCIBus *bus, PIIX4PMState *s);
 
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index c125939ed6..89ac326d7f 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -46,6 +46,7 @@ 
 #include "hw/acpi/tpm.h"
 #include "hw/acpi/vmgenid.h"
 #include "hw/acpi/erst.h"
+#include "hw/acpi/piix4.h"
 #include "sysemu/tpm_backend.h"
 #include "hw/rtc/mc146818rtc_regs.h"
 #include "migration/vmstate.h"
diff --git a/include/hw/acpi/piix4.h b/include/hw/acpi/piix4.h
new file mode 100644
index 0000000000..32686a75c5
--- /dev/null
+++ b/include/hw/acpi/piix4.h
@@ -0,0 +1,75 @@ 
+/*
+ * ACPI implementation
+ *
+ * Copyright (c) 2006 Fabrice Bellard
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#ifndef HW_ACPI_PIIX4_H
+#define HW_ACPI_PIIX4_H
+
+#include "hw/pci/pci.h"
+#include "hw/acpi/acpi.h"
+#include "hw/acpi/cpu_hotplug.h"
+#include "hw/acpi/memory_hotplug.h"
+#include "hw/acpi/pcihp.h"
+#include "hw/i2c/pm_smbus.h"
+#include "hw/isa/apm.h"
+
+#define TYPE_PIIX4_PM "PIIX4_PM"
+OBJECT_DECLARE_SIMPLE_TYPE(PIIX4PMState, PIIX4_PM)
+
+struct PIIX4PMState {
+    /*< private >*/
+    PCIDevice parent_obj;
+    /*< public >*/
+
+    MemoryRegion io;
+    uint32_t io_base;
+
+    MemoryRegion io_gpe;
+    ACPIREGS ar;
+
+    APMState apm;
+
+    PMSMBus smb;
+    uint32_t smb_io_base;
+
+    qemu_irq irq;
+    qemu_irq smi_irq;
+    bool smm_enabled;
+    bool smm_compat;
+    Notifier machine_ready;
+    Notifier powerdown_notifier;
+
+    AcpiPciHpState acpi_pci_hotplug;
+    bool use_acpi_hotplug_bridge;
+    bool use_acpi_root_pci_hotplug;
+    bool not_migrate_acpi_index;
+
+    uint8_t disable_s3;
+    uint8_t disable_s4;
+    uint8_t s4_val;
+
+    bool cpu_hotplug_legacy;
+    AcpiCpuHotplug gpe_cpu;
+    CPUHotplugState cpuhp_state;
+
+    MemHotplugState acpi_memory_hotplug;
+};
+
+#endif
diff --git a/include/hw/southbridge/piix.h b/include/hw/southbridge/piix.h
index f63f83e5c6..c5b842b45d 100644
--- a/include/hw/southbridge/piix.h
+++ b/include/hw/southbridge/piix.h
@@ -15,8 +15,6 @@ 
 #include "hw/pci/pci.h"
 #include "qom/object.h"
 
-#define TYPE_PIIX4_PM "PIIX4_PM"
-
 I2CBus *piix4_pm_init(PCIBus *bus, int devfn, uint32_t smb_io_base,
                       qemu_irq sci_irq, qemu_irq smi_irq,
                       int smm_enabled, DeviceState **piix4_pm);