12bfd0845SMark Cave-Ayland /* 22bfd0845SMark Cave-Ayland * ACPI implementation 32bfd0845SMark Cave-Ayland * 42bfd0845SMark Cave-Ayland * Copyright (c) 2006 Fabrice Bellard 52bfd0845SMark Cave-Ayland * 62bfd0845SMark Cave-Ayland * This library is free software; you can redistribute it and/or 72bfd0845SMark Cave-Ayland * modify it under the terms of the GNU Lesser General Public 82bfd0845SMark Cave-Ayland * License version 2.1 as published by the Free Software Foundation. 92bfd0845SMark Cave-Ayland * 102bfd0845SMark Cave-Ayland * This library is distributed in the hope that it will be useful, 112bfd0845SMark Cave-Ayland * but WITHOUT ANY WARRANTY; without even the implied warranty of 122bfd0845SMark Cave-Ayland * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 132bfd0845SMark Cave-Ayland * Lesser General Public License for more details. 142bfd0845SMark Cave-Ayland * 152bfd0845SMark Cave-Ayland * You should have received a copy of the GNU Lesser General Public 162bfd0845SMark Cave-Ayland * License along with this library; if not, see <http://www.gnu.org/licenses/> 172bfd0845SMark Cave-Ayland * 182bfd0845SMark Cave-Ayland * Contributions after 2012-01-13 are licensed under the terms of the 192bfd0845SMark Cave-Ayland * GNU GPL, version 2 or (at your option) any later version. 202bfd0845SMark Cave-Ayland */ 212bfd0845SMark Cave-Ayland 222bfd0845SMark Cave-Ayland #ifndef HW_ACPI_PIIX4_H 232bfd0845SMark Cave-Ayland #define HW_ACPI_PIIX4_H 242bfd0845SMark Cave-Ayland 25*edf5ca5dSMarkus Armbruster #include "hw/pci/pci_device.h" 262bfd0845SMark Cave-Ayland #include "hw/acpi/acpi.h" 272bfd0845SMark Cave-Ayland #include "hw/acpi/cpu_hotplug.h" 282bfd0845SMark Cave-Ayland #include "hw/acpi/memory_hotplug.h" 292bfd0845SMark Cave-Ayland #include "hw/acpi/pcihp.h" 302bfd0845SMark Cave-Ayland #include "hw/i2c/pm_smbus.h" 312bfd0845SMark Cave-Ayland #include "hw/isa/apm.h" 322bfd0845SMark Cave-Ayland 332bfd0845SMark Cave-Ayland #define TYPE_PIIX4_PM "PIIX4_PM" 342bfd0845SMark Cave-Ayland OBJECT_DECLARE_SIMPLE_TYPE(PIIX4PMState, PIIX4_PM) 352bfd0845SMark Cave-Ayland 362bfd0845SMark Cave-Ayland struct PIIX4PMState { 372bfd0845SMark Cave-Ayland /*< private >*/ 382bfd0845SMark Cave-Ayland PCIDevice parent_obj; 392bfd0845SMark Cave-Ayland /*< public >*/ 402bfd0845SMark Cave-Ayland 412bfd0845SMark Cave-Ayland MemoryRegion io; 422bfd0845SMark Cave-Ayland uint32_t io_base; 432bfd0845SMark Cave-Ayland 442bfd0845SMark Cave-Ayland MemoryRegion io_gpe; 452bfd0845SMark Cave-Ayland ACPIREGS ar; 462bfd0845SMark Cave-Ayland 472bfd0845SMark Cave-Ayland APMState apm; 482bfd0845SMark Cave-Ayland 492bfd0845SMark Cave-Ayland PMSMBus smb; 502bfd0845SMark Cave-Ayland uint32_t smb_io_base; 512bfd0845SMark Cave-Ayland 522bfd0845SMark Cave-Ayland qemu_irq irq; 532bfd0845SMark Cave-Ayland qemu_irq smi_irq; 542bfd0845SMark Cave-Ayland bool smm_enabled; 552bfd0845SMark Cave-Ayland bool smm_compat; 562bfd0845SMark Cave-Ayland Notifier machine_ready; 572bfd0845SMark Cave-Ayland Notifier powerdown_notifier; 582bfd0845SMark Cave-Ayland 592bfd0845SMark Cave-Ayland AcpiPciHpState acpi_pci_hotplug; 602bfd0845SMark Cave-Ayland bool not_migrate_acpi_index; 612bfd0845SMark Cave-Ayland 622bfd0845SMark Cave-Ayland uint8_t disable_s3; 632bfd0845SMark Cave-Ayland uint8_t disable_s4; 642bfd0845SMark Cave-Ayland uint8_t s4_val; 652bfd0845SMark Cave-Ayland 662bfd0845SMark Cave-Ayland bool cpu_hotplug_legacy; 672bfd0845SMark Cave-Ayland AcpiCpuHotplug gpe_cpu; 682bfd0845SMark Cave-Ayland CPUHotplugState cpuhp_state; 692bfd0845SMark Cave-Ayland 702bfd0845SMark Cave-Ayland MemHotplugState acpi_memory_hotplug; 712bfd0845SMark Cave-Ayland }; 722bfd0845SMark Cave-Ayland 732bfd0845SMark Cave-Ayland #endif 74