[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 19/20] cpu: Convert to DEFINE_PROP_LINK
From: |
Fam Zheng |
Subject: |
[Qemu-devel] [PATCH v4 19/20] cpu: Convert to DEFINE_PROP_LINK |
Date: |
Fri, 14 Jul 2017 10:15:08 +0800 |
Signed-off-by: Fam Zheng <address@hidden>
---
exec.c | 27 +++++++++++++++------------
include/qom/cpu.h | 1 +
qom/cpu.c | 1 +
3 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/exec.c b/exec.c
index a083ff8..385c2d0 100644
--- a/exec.c
+++ b/exec.c
@@ -27,6 +27,7 @@
#include "exec/target_page.h"
#include "tcg.h"
#include "hw/qdev-core.h"
+#include "hw/qdev-properties.h"
#if !defined(CONFIG_USER_ONLY)
#include "hw/boards.h"
#include "hw/xen/xen.h"
@@ -735,6 +736,20 @@ void cpu_exec_unrealizefn(CPUState *cpu)
}
}
+Property cpu_common_props[] = {
+#ifndef CONFIG_USER_ONLY
+ /* Create a memory property for softmmu CPU object,
+ * so users can wire up its memory. (This can't go in qom/cpu.c
+ * because that file is compiled only once for both user-mode
+ * and system builds.) The default if no link is set up is to use
+ * the system address space.
+ */
+ DEFINE_PROP_LINK("memory", CPUState, memory, TYPE_MEMORY_REGION,
+ MemoryRegion *),
+#endif
+ DEFINE_PROP_END_OF_LIST(),
+};
+
void cpu_exec_initfn(CPUState *cpu)
{
cpu->as = NULL;
@@ -742,18 +757,6 @@ void cpu_exec_initfn(CPUState *cpu)
#ifndef CONFIG_USER_ONLY
cpu->thread_id = qemu_get_thread_id();
-
- /* This is a softmmu CPU object, so create a property for it
- * so users can wire up its memory. (This can't go in qom/cpu.c
- * because that file is compiled only once for both user-mode
- * and system builds.) The default if no link is set up is to use
- * the system address space.
- */
- object_property_add_link(OBJECT(cpu), "memory", TYPE_MEMORY_REGION,
- (Object **)&cpu->memory,
- qdev_prop_allow_set_link_before_realize,
- OBJ_PROP_LINK_UNREF_ON_RELEASE,
- &error_abort);
cpu->memory = system_memory;
object_ref(OBJECT(cpu->memory));
#endif
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index 7bfd50c..e456cef 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -1015,6 +1015,7 @@ AddressSpace *cpu_get_address_space(CPUState *cpu, int
asidx);
void QEMU_NORETURN cpu_abort(CPUState *cpu, const char *fmt, ...)
GCC_FMT_ATTR(2, 3);
+extern Property cpu_common_props[];
void cpu_exec_initfn(CPUState *cpu);
void cpu_exec_realizefn(CPUState *cpu, Error **errp);
void cpu_exec_unrealizefn(CPUState *cpu);
diff --git a/qom/cpu.c b/qom/cpu.c
index 8757f03..a39ff6c 100644
--- a/qom/cpu.c
+++ b/qom/cpu.c
@@ -458,6 +458,7 @@ static void cpu_class_init(ObjectClass *klass, void *data)
set_bit(DEVICE_CATEGORY_CPU, dc->categories);
dc->realize = cpu_common_realizefn;
dc->unrealize = cpu_common_unrealizefn;
+ dc->props = cpu_common_props;
/*
* Reason: CPUs still need special care by board code: wiring up
* IRQs, adding reset handlers, halting non-first CPUs, ...
--
2.9.4
- [Qemu-devel] [PATCH v4 09/20] virtio-crypto: Convert to DEFINE_PROP_LINK, (continued)
- [Qemu-devel] [PATCH v4 09/20] virtio-crypto: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 10/20] dimm: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 11/20] ivshmem: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 12/20] armv7m: Convert bitband.source-mamory to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 13/20] armv7m: Convert armv7m.memory to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 14/20] gicv3: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 16/20] xilinx_axienet: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 15/20] xlnx_zynqmp: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 17/20] xilinx_axidma: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 18/20] mips_cmgcr: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- [Qemu-devel] [PATCH v4 19/20] cpu: Convert to DEFINE_PROP_LINK,
Fam Zheng <=
- [Qemu-devel] [PATCH v4 20/20] spapr_rng: Convert to DEFINE_PROP_LINK, Fam Zheng, 2017/07/13
- Re: [Qemu-devel] [PATCH v4 00/20] qdev: Introduce DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14