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 |
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 --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);
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