mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
memory: Drop MemoryRegion.ram_addr
All references to mr->ram_addr are replaced by memory_region_get_ram_addr(mr) (except for a few assertions that are replaced with mr->ram_block). Reviewed-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Fam Zheng <famz@redhat.com> Message-Id: <1456813104-25902-5-git-send-email-famz@redhat.com> Acked-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
7ebb2745ac
commit
8e41fb63c5
7 changed files with 40 additions and 53 deletions
71
memory.c
71
memory.c
|
@ -902,12 +902,12 @@ static void memory_region_destructor_none(MemoryRegion *mr)
|
|||
|
||||
static void memory_region_destructor_ram(MemoryRegion *mr)
|
||||
{
|
||||
qemu_ram_free(mr->ram_addr);
|
||||
qemu_ram_free(memory_region_get_ram_addr(mr));
|
||||
}
|
||||
|
||||
static void memory_region_destructor_rom_device(MemoryRegion *mr)
|
||||
{
|
||||
qemu_ram_free(mr->ram_addr & TARGET_PAGE_MASK);
|
||||
qemu_ram_free(memory_region_get_ram_addr(mr) & TARGET_PAGE_MASK);
|
||||
}
|
||||
|
||||
static bool memory_region_need_escape(char c)
|
||||
|
@ -1038,7 +1038,6 @@ static void memory_region_initfn(Object *obj)
|
|||
ObjectProperty *op;
|
||||
|
||||
mr->ops = &unassigned_mem_ops;
|
||||
mr->ram_addr = RAM_ADDR_INVALID;
|
||||
mr->enabled = true;
|
||||
mr->romd_mode = true;
|
||||
mr->global_locking = true;
|
||||
|
@ -1270,15 +1269,11 @@ void memory_region_init_ram(MemoryRegion *mr,
|
|||
uint64_t size,
|
||||
Error **errp)
|
||||
{
|
||||
RAMBlock *ram_block;
|
||||
|
||||
memory_region_init(mr, owner, name, size);
|
||||
mr->ram = true;
|
||||
mr->terminates = true;
|
||||
mr->destructor = memory_region_destructor_ram;
|
||||
ram_block = qemu_ram_alloc(size, mr, errp);
|
||||
mr->ram_block = ram_block;
|
||||
mr->ram_addr = ram_block->offset;
|
||||
mr->ram_block = qemu_ram_alloc(size, mr, errp);
|
||||
mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 0;
|
||||
}
|
||||
|
||||
|
@ -1292,15 +1287,12 @@ void memory_region_init_resizeable_ram(MemoryRegion *mr,
|
|||
void *host),
|
||||
Error **errp)
|
||||
{
|
||||
RAMBlock *ram_block;
|
||||
|
||||
memory_region_init(mr, owner, name, size);
|
||||
mr->ram = true;
|
||||
mr->terminates = true;
|
||||
mr->destructor = memory_region_destructor_ram;
|
||||
ram_block = qemu_ram_alloc_resizeable(size, max_size, resized, mr, errp);
|
||||
mr->ram_block = ram_block;
|
||||
mr->ram_addr = ram_block->offset;
|
||||
mr->ram_block = qemu_ram_alloc_resizeable(size, max_size, resized,
|
||||
mr, errp);
|
||||
mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 0;
|
||||
}
|
||||
|
||||
|
@ -1313,15 +1305,11 @@ void memory_region_init_ram_from_file(MemoryRegion *mr,
|
|||
const char *path,
|
||||
Error **errp)
|
||||
{
|
||||
RAMBlock *ram_block;
|
||||
|
||||
memory_region_init(mr, owner, name, size);
|
||||
mr->ram = true;
|
||||
mr->terminates = true;
|
||||
mr->destructor = memory_region_destructor_ram;
|
||||
ram_block = qemu_ram_alloc_from_file(size, mr, share, path, errp);
|
||||
mr->ram_block = ram_block;
|
||||
mr->ram_addr = ram_block->offset;
|
||||
mr->ram_block = qemu_ram_alloc_from_file(size, mr, share, path, errp);
|
||||
mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 0;
|
||||
}
|
||||
#endif
|
||||
|
@ -1332,8 +1320,6 @@ void memory_region_init_ram_ptr(MemoryRegion *mr,
|
|||
uint64_t size,
|
||||
void *ptr)
|
||||
{
|
||||
RAMBlock *ram_block;
|
||||
|
||||
memory_region_init(mr, owner, name, size);
|
||||
mr->ram = true;
|
||||
mr->terminates = true;
|
||||
|
@ -1342,9 +1328,7 @@ void memory_region_init_ram_ptr(MemoryRegion *mr,
|
|||
|
||||
/* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
|
||||
assert(ptr != NULL);
|
||||
ram_block = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_fatal);
|
||||
mr->ram_block = ram_block;
|
||||
mr->ram_addr = ram_block->offset;
|
||||
mr->ram_block = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_fatal);
|
||||
}
|
||||
|
||||
void memory_region_set_skip_dump(MemoryRegion *mr)
|
||||
|
@ -1372,17 +1356,13 @@ void memory_region_init_rom_device(MemoryRegion *mr,
|
|||
uint64_t size,
|
||||
Error **errp)
|
||||
{
|
||||
RAMBlock *ram_block;
|
||||
|
||||
memory_region_init(mr, owner, name, size);
|
||||
mr->ops = ops;
|
||||
mr->opaque = opaque;
|
||||
mr->terminates = true;
|
||||
mr->rom_device = true;
|
||||
mr->destructor = memory_region_destructor_rom_device;
|
||||
ram_block = qemu_ram_alloc(size, mr, errp);
|
||||
mr->ram_block = ram_block;
|
||||
mr->ram_addr = ram_block->offset;
|
||||
mr->ram_block = qemu_ram_alloc(size, mr, errp);
|
||||
}
|
||||
|
||||
void memory_region_init_iommu(MemoryRegion *mr,
|
||||
|
@ -1547,24 +1527,26 @@ void memory_region_set_log(MemoryRegion *mr, bool log, unsigned client)
|
|||
bool memory_region_get_dirty(MemoryRegion *mr, hwaddr addr,
|
||||
hwaddr size, unsigned client)
|
||||
{
|
||||
assert(mr->ram_addr != RAM_ADDR_INVALID);
|
||||
return cpu_physical_memory_get_dirty(mr->ram_addr + addr, size, client);
|
||||
assert(mr->ram_block);
|
||||
return cpu_physical_memory_get_dirty(memory_region_get_ram_addr(mr) + addr,
|
||||
size, client);
|
||||
}
|
||||
|
||||
void memory_region_set_dirty(MemoryRegion *mr, hwaddr addr,
|
||||
hwaddr size)
|
||||
{
|
||||
assert(mr->ram_addr != RAM_ADDR_INVALID);
|
||||
cpu_physical_memory_set_dirty_range(mr->ram_addr + addr, size,
|
||||
assert(mr->ram_block);
|
||||
cpu_physical_memory_set_dirty_range(memory_region_get_ram_addr(mr) + addr,
|
||||
size,
|
||||
memory_region_get_dirty_log_mask(mr));
|
||||
}
|
||||
|
||||
bool memory_region_test_and_clear_dirty(MemoryRegion *mr, hwaddr addr,
|
||||
hwaddr size, unsigned client)
|
||||
{
|
||||
assert(mr->ram_addr != RAM_ADDR_INVALID);
|
||||
return cpu_physical_memory_test_and_clear_dirty(mr->ram_addr + addr,
|
||||
size, client);
|
||||
assert(mr->ram_block);
|
||||
return cpu_physical_memory_test_and_clear_dirty(
|
||||
memory_region_get_ram_addr(mr) + addr, size, client);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1607,9 +1589,9 @@ void memory_region_rom_device_set_romd(MemoryRegion *mr, bool romd_mode)
|
|||
void memory_region_reset_dirty(MemoryRegion *mr, hwaddr addr,
|
||||
hwaddr size, unsigned client)
|
||||
{
|
||||
assert(mr->ram_addr != RAM_ADDR_INVALID);
|
||||
cpu_physical_memory_test_and_clear_dirty(mr->ram_addr + addr, size,
|
||||
client);
|
||||
assert(mr->ram_block);
|
||||
cpu_physical_memory_test_and_clear_dirty(
|
||||
memory_region_get_ram_addr(mr) + addr, size, client);
|
||||
}
|
||||
|
||||
int memory_region_get_fd(MemoryRegion *mr)
|
||||
|
@ -1618,9 +1600,9 @@ int memory_region_get_fd(MemoryRegion *mr)
|
|||
return memory_region_get_fd(mr->alias);
|
||||
}
|
||||
|
||||
assert(mr->ram_addr != RAM_ADDR_INVALID);
|
||||
assert(mr->ram_block);
|
||||
|
||||
return qemu_get_ram_fd(mr->ram_addr & TARGET_PAGE_MASK);
|
||||
return qemu_get_ram_fd(memory_region_get_ram_addr(mr) & TARGET_PAGE_MASK);
|
||||
}
|
||||
|
||||
void *memory_region_get_ram_ptr(MemoryRegion *mr)
|
||||
|
@ -1633,8 +1615,9 @@ void *memory_region_get_ram_ptr(MemoryRegion *mr)
|
|||
offset += mr->alias_offset;
|
||||
mr = mr->alias;
|
||||
}
|
||||
assert(mr->ram_addr != RAM_ADDR_INVALID);
|
||||
ptr = qemu_get_ram_ptr(mr->ram_block, mr->ram_addr & TARGET_PAGE_MASK);
|
||||
assert(mr->ram_block);
|
||||
ptr = qemu_get_ram_ptr(mr->ram_block,
|
||||
memory_region_get_ram_addr(mr) & TARGET_PAGE_MASK);
|
||||
rcu_read_unlock();
|
||||
|
||||
return ptr + offset;
|
||||
|
@ -1647,9 +1630,9 @@ ram_addr_t memory_region_get_ram_addr(MemoryRegion *mr)
|
|||
|
||||
void memory_region_ram_resize(MemoryRegion *mr, ram_addr_t newsize, Error **errp)
|
||||
{
|
||||
assert(mr->ram_addr != RAM_ADDR_INVALID);
|
||||
assert(mr->ram_block);
|
||||
|
||||
qemu_ram_resize(mr->ram_addr, newsize, errp);
|
||||
qemu_ram_resize(memory_region_get_ram_addr(mr), newsize, errp);
|
||||
}
|
||||
|
||||
static void memory_region_update_coalesced_range_as(MemoryRegion *mr, AddressSpace *as)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue