diff options
author | Gu Zheng <guz.fnst@cn.fujitsu.com> | 2014-10-22 11:24:25 +0800 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2014-11-02 13:44:11 +0200 |
commit | 1be6b511a6a6f0d87b57725cf8d5caefcff3cc9a (patch) | |
tree | 9f9bf23c659c345ee019ecefc8753fc9f05984ea /hw/acpi | |
parent | 42a5b30844207e5644ba3c2d30f719d5bad9ee72 (diff) |
acpi/cpu: add cpu hotplug callback function to match hotplug_handler API
Add cpu hotplug callback function (acpi_cpu_plug_cb) to match hotplug_handler API.
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Diffstat (limited to 'hw/acpi')
-rw-r--r-- | hw/acpi/cpu_hotplug.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/hw/acpi/cpu_hotplug.c b/hw/acpi/cpu_hotplug.c index 2ad83a0ede..06e9c6101c 100644 --- a/hw/acpi/cpu_hotplug.c +++ b/hw/acpi/cpu_hotplug.c @@ -36,6 +36,24 @@ static const MemoryRegionOps AcpiCpuHotplug_ops = { }, }; +void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq, + AcpiCpuHotplug *g, DeviceState *dev, Error **errp) +{ + CPUState *cpu = CPU(dev); + CPUClass *k = CPU_GET_CLASS(cpu); + int64_t cpu_id; + + cpu_id = k->get_arch_id(cpu); + if ((cpu_id / 8) >= ACPI_GPE_PROC_LEN) { + error_setg(errp, "acpi: invalid cpu id: %" PRIi64, cpu_id); + return; + } + + AcpiCpuHotplug_add(&ar->gpe, g, cpu); + + acpi_update_sci(ar, irq); +} + void AcpiCpuHotplug_add(ACPIGPE *gpe, AcpiCpuHotplug *g, CPUState *cpu) { CPUClass *k = CPU_GET_CLASS(cpu); |