[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V2 1/7] acpi/cpu: add cpu hotplug callback function
From: |
Gu Zheng |
Subject: |
[Qemu-devel] [PATCH V2 1/7] acpi/cpu: add cpu hotplug callback function to match hotplug_handler API |
Date: |
Fri, 12 Sep 2014 16:57:19 +0800 |
---
v2:
-add errp argument to catch error.
-return error instead of aborting if cpu id is invalid.
-make acpi_cpu_plug_cb as a wrapper around AcpiCpuHotplug_add.
---
Signed-off-by: Gu Zheng <address@hidden>
---
hw/acpi/cpu_hotplug.c | 17 +++++++++++++++++
include/hw/acpi/cpu_hotplug.h | 3 +++
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/hw/acpi/cpu_hotplug.c b/hw/acpi/cpu_hotplug.c
index 2ad83a0..dfd6de5 100644
--- a/hw/acpi/cpu_hotplug.c
+++ b/hw/acpi/cpu_hotplug.c
@@ -36,6 +36,23 @@ static const MemoryRegionOps AcpiCpuHotplug_ops = {
},
};
+void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq,
+ AcpiCpuHotplug *g, CPUState *cpu, Error **errp)
+{
+ 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);
diff --git a/include/hw/acpi/cpu_hotplug.h b/include/hw/acpi/cpu_hotplug.h
index 9e5d30c..166edb0 100644
--- a/include/hw/acpi/cpu_hotplug.h
+++ b/include/hw/acpi/cpu_hotplug.h
@@ -20,6 +20,9 @@ typedef struct AcpiCpuHotplug {
uint8_t sts[ACPI_GPE_PROC_LEN];
} AcpiCpuHotplug;
+void acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq,
+ AcpiCpuHotplug *g, CPUState *dev, Error **errp);
+
void AcpiCpuHotplug_add(ACPIGPE *gpe, AcpiCpuHotplug *g, CPUState *cpu);
void AcpiCpuHotplug_init(MemoryRegion *parent, Object *owner,
--
1.7.7
- [Qemu-devel] [PATCH V2 0/7] cpu/acpi: convert cpu hot plug to hotplug_handler API, Gu Zheng, 2014/09/12
- [Qemu-devel] [PATCH V2 1/7] acpi/cpu: add cpu hotplug callback function to match hotplug_handler API,
Gu Zheng <=
- [Qemu-devel] [PATCH V2 2/7] acpi:ich9: convert cpu hotplug handle to hotplug_handler API, Gu Zheng, 2014/09/12
- [Qemu-devel] [PATCH V2 3/7] acpi:piix4: convert cpu hotplug handle to hotplug_handler API, Gu Zheng, 2014/09/12
- [Qemu-devel] [PATCH V2 4/7] pc: add cpu hotplug handler to PC_MACHINE, Gu Zheng, 2014/09/12
- [Qemu-devel] [PATCH V2 5/7] pc: Update rtc_cmos in pc_cpu_plug, Gu Zheng, 2014/09/12
- [Qemu-devel] [PATCH V2 6/7] cpu-hotplug: rename function for better readability, Gu Zheng, 2014/09/12
- [Qemu-devel] [PATCH V2 7/7] acpi/cpu-hotplug: introduce help function to keep bit setting in one place, Gu Zheng, 2014/09/12