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