提交 6d6d2abf 编写于 作者: P Pavel Fedin 提交者: Peter Maydell

Merge memory_region_init_reservation() into memory_region_init_io()

Just specifying ops = NULL in some cases can be more convenient than having
two functions.
Signed-off-by: NPavel Fedin <p.fedin@samsung.com>
Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
Message-id: 78a379ab1b6b30ab497db7971ad336dad1dbee76.1438758065.git.p.fedin@samsung.com
Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
上级 68b85290
......@@ -437,6 +437,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.
......@@ -459,16 +462,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
......
......@@ -1182,7 +1182,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;
}
......@@ -1300,14 +1300,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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册