Merge tag 'pull-ppc-20211129' of https://github.com/legoater/qemu into staging
[qemu.git] / include / hw / acpi / cpu_hotplug.h
1 /*
2 * QEMU ACPI hotplug utilities
3 *
4 * Copyright (C) 2013 Red Hat Inc
5 *
6 * Authors:
7 * Igor Mammedov <imammedo@redhat.com>
8 *
9 * This work is licensed under the terms of the GNU GPL, version 2 or later.
10 * See the COPYING file in the top-level directory.
11 */
12
13 #ifndef HW_ACPI_CPU_HOTPLUG_H
14 #define HW_ACPI_CPU_HOTPLUG_H
15
16 #include "hw/acpi/acpi.h"
17 #include "hw/acpi/pc-hotplug.h"
18 #include "hw/acpi/aml-build.h"
19 #include "hw/hotplug.h"
20 #include "hw/acpi/cpu.h"
21
22 typedef struct AcpiCpuHotplug {
23 Object *device;
24 MemoryRegion io;
25 uint8_t sts[ACPI_GPE_PROC_LEN];
26 } AcpiCpuHotplug;
27
28 void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
29 AcpiCpuHotplug *g, DeviceState *dev, Error **errp);
30
31 void legacy_acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
32 AcpiCpuHotplug *gpe_cpu, uint16_t base);
33
34 void acpi_switch_to_modern_cphp(AcpiCpuHotplug *gpe_cpu,
35 CPUHotplugState *cpuhp_state,
36 uint16_t io_port);
37
38 void build_legacy_cpu_hotplug_aml(Aml *ctx, MachineState *machine,
39 uint16_t io_base);
40 #endif