xref: /qemu/include/hw/acpi/cpu_hotplug.h (revision ca3d87d4c84032f19478010b5604cac88b045c25)
181cea5e7SIgor Mammedov /*
281cea5e7SIgor Mammedov  * QEMU ACPI hotplug utilities
381cea5e7SIgor Mammedov  *
481cea5e7SIgor Mammedov  * Copyright (C) 2013 Red Hat Inc
581cea5e7SIgor Mammedov  *
681cea5e7SIgor Mammedov  * Authors:
781cea5e7SIgor Mammedov  *   Igor Mammedov <imammedo@redhat.com>
881cea5e7SIgor Mammedov  *
981cea5e7SIgor Mammedov  * This work is licensed under the terms of the GNU GPL, version 2 or later.
1081cea5e7SIgor Mammedov  * See the COPYING file in the top-level directory.
1181cea5e7SIgor Mammedov  */
12*121d0712SMarkus Armbruster 
13*121d0712SMarkus Armbruster #ifndef HW_ACPI_CPU_HOTPLUG_H
14*121d0712SMarkus Armbruster #define HW_ACPI_CPU_HOTPLUG_H
1581cea5e7SIgor Mammedov 
1681cea5e7SIgor Mammedov #include "hw/acpi/acpi.h"
177e629d1dSIgor Mammedov #include "hw/acpi/pc-hotplug.h"
18fbd7a6b8SIgor Mammedov #include "hw/acpi/aml-build.h"
190058c082SIgor Mammedov #include "hw/hotplug.h"
20679dd1a9SIgor Mammedov #include "hw/acpi/cpu.h"
2181cea5e7SIgor Mammedov 
2281cea5e7SIgor Mammedov typedef struct AcpiCpuHotplug {
23679dd1a9SIgor Mammedov     Object *device;
2481cea5e7SIgor Mammedov     MemoryRegion io;
2581cea5e7SIgor Mammedov     uint8_t sts[ACPI_GPE_PROC_LEN];
2681cea5e7SIgor Mammedov } AcpiCpuHotplug;
2781cea5e7SIgor Mammedov 
280058c082SIgor Mammedov void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
291be6b511SGu Zheng                              AcpiCpuHotplug *g, DeviceState *dev, Error **errp);
301be6b511SGu Zheng 
3196e3e12bSIgor Mammedov void legacy_acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
3281cea5e7SIgor Mammedov                                   AcpiCpuHotplug *gpe_cpu, uint16_t base);
33fbd7a6b8SIgor Mammedov 
34679dd1a9SIgor Mammedov void acpi_switch_to_modern_cphp(AcpiCpuHotplug *gpe_cpu,
35679dd1a9SIgor Mammedov                                 CPUHotplugState *cpuhp_state,
36679dd1a9SIgor Mammedov                                 uint16_t io_port);
37679dd1a9SIgor Mammedov 
3896e3e12bSIgor Mammedov void build_legacy_cpu_hotplug_aml(Aml *ctx, MachineState *machine,
39ebd8ea82SIgor Mammedov                                   uint16_t io_base);
4081cea5e7SIgor Mammedov #endif
41