[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 1/6] Merge memory_region_init_reservation() into
From: |
Pavel Fedin |
Subject: |
[Qemu-devel] [PATCH v6 1/6] Merge memory_region_init_reservation() into memory_region_init_io() |
Date: |
Wed, 22 Jul 2015 11:32:16 +0300 |
Just speficying ops = NULL in some cases can be more convenient than having
two functions. GICv3 code is going to use this. GICv2 code can be refactored
in a similar way, killing some code duplication.
Signed-off-by: Pavel Fedin <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
---
include/exec/memory.h | 14 +++++++++++---
memory.c | 10 +---------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 1394715..3b5e44e 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -436,6 +436,9 @@ void memory_region_init_alias(MemoryRegion *mr,
* memory_region_init_rom_device: Initialize a ROM memory region. Writes are
* handled via callbacks.
*
+ * If NULL callbacks pointer is given, then I/O space is not supposed to be
+ * handled by QEMU itself. Any access via the memory API will cause an abort().
+ *
* @mr: the #MemoryRegion to be initialized.
* @owner: the object that tracks the region's reference count
* @ops: callbacks for write access handling.
@@ -458,16 +461,21 @@ void memory_region_init_rom_device(MemoryRegion *mr,
* A reservation region primariy serves debugging purposes. It claims I/O
* space that is not supposed to be handled by QEMU itself. Any access via
* the memory API will cause an abort().
+ * This function is deprecated. Use memory_region_init_io() with NULL
+ * callbacks instead.
*
* @mr: the #MemoryRegion to be initialized
* @owner: the object that tracks the region's reference count
* @name: used for debugging; not visible to the user or ABI
* @size: size of the region.
*/
-void memory_region_init_reservation(MemoryRegion *mr,
- struct Object *owner,
+static inline void memory_region_init_reservation(MemoryRegion *mr,
+ Object *owner,
const char *name,
- uint64_t size);
+ uint64_t size)
+{
+ memory_region_init_io(mr, owner, NULL, mr, name, size);
+}
/**
* memory_region_init_iommu: Initialize a memory region that translates
diff --git a/memory.c b/memory.c
index 0acebb1..b843952 100644
--- a/memory.c
+++ b/memory.c
@@ -1187,7 +1187,7 @@ void memory_region_init_io(MemoryRegion *mr,
uint64_t size)
{
memory_region_init(mr, owner, name, size);
- mr->ops = ops;
+ mr->ops = ops ? ops : &unassigned_mem_ops;
mr->opaque = opaque;
mr->terminates = true;
}
@@ -1307,14 +1307,6 @@ void memory_region_init_iommu(MemoryRegion *mr,
notifier_list_init(&mr->iommu_notify);
}
-void memory_region_init_reservation(MemoryRegion *mr,
- Object *owner,
- const char *name,
- uint64_t size)
-{
- memory_region_init_io(mr, owner, &unassigned_mem_ops, mr, name, size);
-}
-
static void memory_region_finalize(Object *obj)
{
MemoryRegion *mr = MEMORY_REGION(obj);
--
1.9.5.msysgit.0
- [Qemu-devel] [PATCH v6 0/6] vGICv3 support, Pavel Fedin, 2015/07/22
- [Qemu-devel] [PATCH v6 1/6] Merge memory_region_init_reservation() into memory_region_init_io(),
Pavel Fedin <=
- [Qemu-devel] [PATCH v6 4/6] Introduce irqchip type specification for KVM, Pavel Fedin, 2015/07/22
- [Qemu-devel] [PATCH v6 5/6] Initial implementation of vGICv3, Pavel Fedin, 2015/07/22
- [Qemu-devel] [PATCH v6 3/6] Extract some reusable vGIC code, Pavel Fedin, 2015/07/22
- [Qemu-devel] [PATCH v6 2/6] Implement GIC-500 base class, Pavel Fedin, 2015/07/22
- [Qemu-devel] [PATCH v6 6/6] Add gicversion option to virt machine, Pavel Fedin, 2015/07/22