[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 10/10] i386/cpu: add instance finalize callback
From: |
Zhu Guihua |
Subject: |
[Qemu-devel] [PATCH v4 10/10] i386/cpu: add instance finalize callback |
Date: |
Fri, 13 Feb 2015 18:25:33 +0800 |
From: Gu Zheng <address@hidden>
Add a func to finalize a cpu's instance. When cpu's device_add failed,
and cpu's device_del executed, this func would be invoked.
Signed-off-by: Gu Zheng <address@hidden>
Signed-off-by: Zhu Guihua <address@hidden>
---
include/qom/cpu.h | 1 +
target-i386/cpu.c | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index d0a50e2..518f234 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -308,6 +308,7 @@ struct CPUState {
QTAILQ_HEAD(CPUTailQ, CPUState);
extern struct CPUTailQ cpus;
#define CPU_NEXT(cpu) QTAILQ_NEXT(cpu, node)
+#define CPU_REMOVE(cpu) QTAILQ_REMOVE(&cpus, cpu, node)
#define CPU_FOREACH(cpu) QTAILQ_FOREACH(cpu, &cpus, node)
#define CPU_FOREACH_SAFE(cpu, next_cpu) \
QTAILQ_FOREACH_SAFE(cpu, &cpus, node, next_cpu)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 68a6aa4..6df948f 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -2973,6 +2973,13 @@ static void x86_cpu_initfn(Object *obj)
}
}
+static void x86_cpu_finalizefn(Object *obj)
+{
+ CPUState *cs = CPU(obj);
+
+ CPU_REMOVE(cs);
+}
+
static int64_t x86_cpu_get_arch_id(CPUState *cs)
{
X86CPU *cpu = X86_CPU(cs);
@@ -3094,6 +3101,7 @@ static const TypeInfo x86_cpu_type_info = {
.parent = TYPE_CPU,
.instance_size = sizeof(X86CPU),
.instance_init = x86_cpu_initfn,
+ .instance_finalize = x86_cpu_finalizefn,
.abstract = true,
.class_size = sizeof(X86CPUClass),
.class_init = x86_cpu_common_class_init,
--
1.9.3
- [Qemu-devel] [PATCH v4 00/10] cpu: add device_add foo-x86_64-cpu support, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 01/10] cpu/apic: drop icc bus/bridge/, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 03/10] cpu: introduce CpuTopoInfo structure for argument simplification, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 02/10] icc_bus: remove icc related files, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 06/10] qom/cpu: move apic vmstate register into x86_cpu_apic_realize, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 04/10] cpu: introduce get_compat_arch_id() method and override it for X86CPU, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 05/10] qom/cpu: move register_vmstate to common CPUClass.realizefn, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 07/10] monitor: use cc->get_arch_id as the cpu index, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 08/10] acpi: introduce acpi_send_gpe_event(), Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 09/10] cpu: add device_add foo-x86_64-cpu support, Zhu Guihua, 2015/02/13
- [Qemu-devel] [PATCH v4 10/10] i386/cpu: add instance finalize callback,
Zhu Guihua <=
- Re: [Qemu-devel] [PATCH v4 00/10] cpu: add device_add foo-x86_64-cpu support, Gu Zheng, 2015/02/23
- Re: [Qemu-devel] [PATCH v4 00/10] cpu: add device_add foo-x86_64-cpu support, Bharata B Rao, 2015/02/25
- Re: [Qemu-devel] [PATCH v4 00/10] cpu: add device_add foo-x86_64-cpu support, Andreas Färber, 2015/02/26