mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-12-23 04:35:36 +00:00
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. Backports commit 6d6d2abf2c2e52c0f404d0a31a963e945b0cc7ad from qemu
This commit is contained in:
parent
7a1ce36785
commit
0201c71145
|
@ -386,6 +386,9 @@ void memory_region_init_alias(struct uc_struct *uc, MemoryRegion *mr,
|
||||||
* memory_region_init_rom_device: Initialize a ROM memory region. Writes are
|
* memory_region_init_rom_device: Initialize a ROM memory region. Writes are
|
||||||
* handled via callbacks.
|
* 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.
|
* @mr: the #MemoryRegion to be initialized.
|
||||||
* @owner: the object that tracks the region's reference count
|
* @owner: the object that tracks the region's reference count
|
||||||
* @ops: callbacks for write access handling.
|
* @ops: callbacks for write access handling.
|
||||||
|
@ -434,16 +437,21 @@ void memory_region_init_resizeable_ram(struct uc_struct *uc,
|
||||||
* A reservation region primariy serves debugging purposes. It claims I/O
|
* 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
|
* space that is not supposed to be handled by QEMU itself. Any access via
|
||||||
* the memory API will cause an abort().
|
* 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
|
* @mr: the #MemoryRegion to be initialized
|
||||||
* @owner: the object that tracks the region's reference count
|
* @owner: the object that tracks the region's reference count
|
||||||
* @name: used for debugging; not visible to the user or ABI
|
* @name: used for debugging; not visible to the user or ABI
|
||||||
* @size: size of the region.
|
* @size: size of the region.
|
||||||
*/
|
*/
|
||||||
void memory_region_init_reservation(struct uc_struct *uc, MemoryRegion *mr,
|
static inline void memory_region_init_reservation(struct uc_struct *uc, MemoryRegion *mr,
|
||||||
struct Object *owner,
|
Object *owner,
|
||||||
const char *name,
|
const char *name,
|
||||||
uint64_t size);
|
uint64_t size)
|
||||||
|
{
|
||||||
|
memory_region_init_io(uc, mr, owner, NULL, mr, name, size);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* memory_region_init_iommu: Initialize a memory region that translates
|
* memory_region_init_iommu: Initialize a memory region that translates
|
||||||
|
|
|
@ -1147,7 +1147,7 @@ void memory_region_init_io(struct uc_struct *uc, MemoryRegion *mr,
|
||||||
uint64_t size)
|
uint64_t size)
|
||||||
{
|
{
|
||||||
memory_region_init(uc, mr, owner, name, size);
|
memory_region_init(uc, mr, owner, name, size);
|
||||||
mr->ops = ops;
|
mr->ops = ops ? ops : &unassigned_mem_ops;
|
||||||
mr->opaque = opaque;
|
mr->opaque = opaque;
|
||||||
mr->terminates = true;
|
mr->terminates = true;
|
||||||
}
|
}
|
||||||
|
@ -1225,14 +1225,6 @@ void memory_region_init_alias(struct uc_struct *uc, MemoryRegion *mr,
|
||||||
mr->alias_offset = offset;
|
mr->alias_offset = offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void memory_region_init_reservation(struct uc_struct *uc, MemoryRegion *mr,
|
|
||||||
Object *owner,
|
|
||||||
const char *name,
|
|
||||||
uint64_t size)
|
|
||||||
{
|
|
||||||
memory_region_init_io(uc, mr, owner, &unassigned_mem_ops, mr, name, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void memory_region_finalize(struct uc_struct *uc, Object *obj, void *opaque)
|
static void memory_region_finalize(struct uc_struct *uc, Object *obj, void *opaque)
|
||||||
{
|
{
|
||||||
MemoryRegion *mr = MEMORY_REGION(uc, obj);
|
MemoryRegion *mr = MEMORY_REGION(uc, obj);
|
||||||
|
|
Loading…
Reference in a new issue