[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering res
From: |
Zhu Guihua |
Subject: |
[Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler |
Date: |
Thu, 25 Jun 2015 10:17:09 +0800 |
Add a wrapper to specify reset order when registering reset handler,
instead of non-obvious initiazation code ordering.
Signed-off-by: Zhu Guihua <address@hidden>
---
include/hw/hw.h | 4 ++++
vl.c | 18 +++++++++++++++++-
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/include/hw/hw.h b/include/hw/hw.h
index c78adae..d9375e7 100644
--- a/include/hw/hw.h
+++ b/include/hw/hw.h
@@ -37,7 +37,11 @@
#endif
typedef void QEMUResetHandler(void *opaque);
+typedef uint64_t QEMUResetOrder;
+#define default_reset_order 0x0
+void qemu_register_reset_common(QEMUResetHandler *func, void *opaque,
+ QEMUResetOrder reset_order);
void qemu_register_reset(QEMUResetHandler *func, void *opaque);
void qemu_unregister_reset(QEMUResetHandler *func, void *opaque);
diff --git a/vl.c b/vl.c
index 69ad90c..b205a9b 100644
--- a/vl.c
+++ b/vl.c
@@ -1589,6 +1589,7 @@ typedef struct QEMUResetEntry {
QTAILQ_ENTRY(QEMUResetEntry) entry;
QEMUResetHandler *func;
void *opaque;
+ QEMUResetOrder reset_order;
} QEMUResetEntry;
static QTAILQ_HEAD(reset_handlers, QEMUResetEntry) reset_handlers =
@@ -1672,15 +1673,30 @@ static int qemu_debug_requested(void)
return r;
}
-void qemu_register_reset(QEMUResetHandler *func, void *opaque)
+void qemu_register_reset_common(QEMUResetHandler *func, void *opaque,
+ QEMUResetOrder reset_order)
{
+ QEMUResetEntry *item;
QEMUResetEntry *re = g_malloc0(sizeof(QEMUResetEntry));
re->func = func;
re->opaque = opaque;
+ re->reset_order = reset_order;
+
+ QTAILQ_FOREACH(item, &reset_handlers, entry) {
+ if (re->reset_order >= item->reset_order)
+ continue;
+ QTAILQ_INSERT_BEFORE(item, re, entry);
+ return;
+ }
QTAILQ_INSERT_TAIL(&reset_handlers, re, entry);
}
+void qemu_register_reset(QEMUResetHandler *func, void *opaque)
+{
+ qemu_register_reset_common(func, opaque, default_reset_order);
+}
+
void qemu_unregister_reset(QEMUResetHandler *func, void *opaque)
{
QEMUResetEntry *re;
--
1.9.3
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, (continued)
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Andreas Färber, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Paolo Bonzini, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Andreas Färber, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Paolo Bonzini, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Andreas Färber, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Paolo Bonzini, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Peter Maydell, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Paolo Bonzini, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Igor Mammedov, 2015/06/26
- Re: [Qemu-devel] [RESEND PATCH v8 1/4] apic: map APIC's MMIO region at each CPU's address space, Paolo Bonzini, 2015/06/26
[Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler,
Zhu Guihua <=
- Re: [Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler, Andreas Färber, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler, Paolo Bonzini, 2015/06/25
- Re: [Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler, Zhu Guihua, 2015/06/30
- Re: [Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler, Igor Mammedov, 2015/06/30
- Re: [Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler, Zhu Guihua, 2015/06/30
- Re: [Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler, Peter Maydell, 2015/06/30
- Re: [Qemu-devel] [RESEND PATCH v8 2/4] hw: add a wrapper for registering reset handler, Eduardo Habkost, 2015/06/30