mirror of https://github.com/xqemu/xqemu.git
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>
This commit is contained in:
parent
42a5b30844
commit
1be6b511a6
|
@ -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)
|
void AcpiCpuHotplug_add(ACPIGPE *gpe, AcpiCpuHotplug *g, CPUState *cpu)
|
||||||
{
|
{
|
||||||
CPUClass *k = CPU_GET_CLASS(cpu);
|
CPUClass *k = CPU_GET_CLASS(cpu);
|
||||||
|
|
|
@ -20,6 +20,9 @@ typedef struct AcpiCpuHotplug {
|
||||||
uint8_t sts[ACPI_GPE_PROC_LEN];
|
uint8_t sts[ACPI_GPE_PROC_LEN];
|
||||||
} AcpiCpuHotplug;
|
} AcpiCpuHotplug;
|
||||||
|
|
||||||
|
void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq,
|
||||||
|
AcpiCpuHotplug *g, DeviceState *dev, Error **errp);
|
||||||
|
|
||||||
void AcpiCpuHotplug_add(ACPIGPE *gpe, AcpiCpuHotplug *g, CPUState *cpu);
|
void AcpiCpuHotplug_add(ACPIGPE *gpe, AcpiCpuHotplug *g, CPUState *cpu);
|
||||||
|
|
||||||
void AcpiCpuHotplug_init(MemoryRegion *parent, Object *owner,
|
void AcpiCpuHotplug_init(MemoryRegion *parent, Object *owner,
|
||||||
|
|
Loading…
Reference in New Issue