[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 54/55] cpu: Convert to DEFINE_PROP_LINK
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 54/55] cpu: Convert to DEFINE_PROP_LINK |
Date: |
Fri, 14 Jul 2017 12:10:27 +0200 |
From: Fam Zheng <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <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 b3c080f..01ac21e 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"
@@ -737,6 +738,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;
@@ -744,18 +759,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 d3c783b..04c31e6 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -1013,6 +1013,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, ...
--
1.8.3.1
- [Qemu-devel] [PULL 44/55] qdev: Introduce DEFINE_PROP_LINK, (continued)
- [Qemu-devel] [PULL 44/55] qdev: Introduce DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 23/55] mttcg/i386: Patch instruction using async_safe_* framework, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 46/55] qdev: Add const qualifier to PropertyInfo definitions, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 47/55] virtio-blk: Convert to DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 49/55] virtio-rng: Convert to DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 51/55] dimm: Convert to DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 48/55] virtio-scsi: Convert to DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 50/55] virtio-crypto: Convert to DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 52/55] ivshmem: Convert to DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 53/55] mips_cmgcr: Convert to DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- [Qemu-devel] [PULL 54/55] cpu: Convert to DEFINE_PROP_LINK,
Paolo Bonzini <=
- [Qemu-devel] [PULL 55/55] spapr_rng: Convert to DEFINE_PROP_LINK, Paolo Bonzini, 2017/07/14
- Re: [Qemu-devel] [PULL v2 00/55] Misc patches for QEMU 2.10 soft freeze, Peter Maydell, 2017/07/14