1 /* 2 * ACPI implementation 3 * 4 * Copyright (c) 2006 Fabrice Bellard 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License version 2.1 as published by the Free Software Foundation. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, see <http://www.gnu.org/licenses/> 17 * 18 * Contributions after 2012-01-13 are licensed under the terms of the 19 * GNU GPL, version 2 or (at your option) any later version. 20 */ 21 22 #ifndef HW_ACPI_PIIX4_H 23 #define HW_ACPI_PIIX4_H 24 25 #include "hw/pci/pci_device.h" 26 #include "hw/acpi/acpi.h" 27 #include "hw/acpi/cpu_hotplug.h" 28 #include "hw/acpi/memory_hotplug.h" 29 #include "hw/acpi/pcihp.h" 30 #include "hw/i2c/pm_smbus.h" 31 #include "hw/isa/apm.h" 32 33 #define TYPE_PIIX4_PM "PIIX4_PM" 34 OBJECT_DECLARE_SIMPLE_TYPE(PIIX4PMState, PIIX4_PM) 35 36 struct PIIX4PMState { 37 /*< private >*/ 38 PCIDevice parent_obj; 39 /*< public >*/ 40 41 MemoryRegion io; 42 uint32_t io_base; 43 44 MemoryRegion io_gpe; 45 ACPIREGS ar; 46 47 APMState apm; 48 49 PMSMBus smb; 50 uint32_t smb_io_base; 51 52 qemu_irq irq; 53 qemu_irq smi_irq; 54 bool smm_enabled; 55 bool smm_compat; 56 Notifier machine_ready; 57 Notifier powerdown_notifier; 58 59 AcpiPciHpState acpi_pci_hotplug; 60 bool use_acpi_hotplug_bridge; 61 bool use_acpi_root_pci_hotplug; 62 bool not_migrate_acpi_index; 63 64 uint8_t disable_s3; 65 uint8_t disable_s4; 66 uint8_t s4_val; 67 68 bool cpu_hotplug_legacy; 69 AcpiCpuHotplug gpe_cpu; 70 CPUHotplugState cpuhp_state; 71 72 MemHotplugState acpi_memory_hotplug; 73 }; 74 75 #endif 76