2014-01-09 17:36:31 +01:00
|
|
|
/*
|
|
|
|
* QEMU ACPI hotplug utilities
|
|
|
|
*
|
|
|
|
* Copyright (C) 2013 Red Hat Inc
|
|
|
|
*
|
|
|
|
* Authors:
|
|
|
|
* Igor Mammedov <imammedo@redhat.com>
|
|
|
|
*
|
|
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
|
|
* See the COPYING file in the top-level directory.
|
|
|
|
*/
|
2016-06-29 10:12:57 +02:00
|
|
|
|
|
|
|
#ifndef HW_ACPI_CPU_HOTPLUG_H
|
|
|
|
#define HW_ACPI_CPU_HOTPLUG_H
|
2014-01-09 17:36:31 +01:00
|
|
|
|
|
|
|
#include "hw/acpi/acpi.h"
|
2014-06-02 15:25:15 +02:00
|
|
|
#include "hw/acpi/pc-hotplug.h"
|
2015-12-28 18:02:23 +01:00
|
|
|
#include "hw/acpi/aml-build.h"
|
2016-05-31 12:01:17 +02:00
|
|
|
#include "hw/hotplug.h"
|
2016-06-15 11:25:23 +02:00
|
|
|
#include "hw/acpi/cpu.h"
|
2014-01-09 17:36:31 +01:00
|
|
|
|
|
|
|
typedef struct AcpiCpuHotplug {
|
2016-06-15 11:25:23 +02:00
|
|
|
Object *device;
|
2014-01-09 17:36:31 +01:00
|
|
|
MemoryRegion io;
|
|
|
|
uint8_t sts[ACPI_GPE_PROC_LEN];
|
|
|
|
} AcpiCpuHotplug;
|
|
|
|
|
2016-05-31 12:01:17 +02:00
|
|
|
void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
|
2016-05-17 16:43:00 +02:00
|
|
|
AcpiCpuHotplug *g, DeviceState *dev, Error **errp);
|
2014-10-22 05:24:25 +02:00
|
|
|
|
2016-05-17 16:43:00 +02:00
|
|
|
void legacy_acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
|
|
|
|
AcpiCpuHotplug *gpe_cpu, uint16_t base);
|
2015-12-28 18:02:23 +01:00
|
|
|
|
2016-06-15 11:25:23 +02:00
|
|
|
void acpi_switch_to_modern_cphp(AcpiCpuHotplug *gpe_cpu,
|
|
|
|
CPUHotplugState *cpuhp_state,
|
|
|
|
uint16_t io_port);
|
|
|
|
|
2016-05-17 16:43:00 +02:00
|
|
|
void build_legacy_cpu_hotplug_aml(Aml *ctx, MachineState *machine,
|
2016-05-17 16:43:02 +02:00
|
|
|
uint16_t io_base);
|
2014-01-09 17:36:31 +01:00
|
|
|
#endif
|