xref: /qemu/include/hw/acpi/piix4.h (revision 29b62a10)
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