Only address_space_translate_for_iotlb needs to return the section.
Every caller of address_space_translate now uses only section-mr,
return it directly.
Signed-off-by: Paolo Bonzini pbonz...@redhat.com
---
exec.c| 150 +-
include/exec/memory.h | 8 +--
2 files changed, 79 insertions(+), 79 deletions(-)
diff --git a/exec.c b/exec.c
index bf374e4..2a81b6e 100644
--- a/exec.c
+++ b/exec.c
@@ -262,11 +262,11 @@ address_space_translate_internal(AddressSpace *as, hwaddr
addr, hwaddr *xlat,
return section;
}
-MemoryRegionSection *address_space_translate(AddressSpace *as, hwaddr addr,
- hwaddr *xlat, hwaddr *plen,
- bool is_write)
+MemoryRegion *address_space_translate(AddressSpace *as, hwaddr addr,
+ hwaddr *xlat, hwaddr *plen,
+ bool is_write)
{
-return address_space_translate_internal(as, addr, xlat, plen, true);
+return address_space_translate_internal(as, addr, xlat, plen, true)-mr;
}
MemoryRegionSection *
@@ -1923,58 +1923,58 @@ bool address_space_rw(AddressSpace *as, hwaddr addr,
uint8_t *buf,
uint8_t *ptr;
uint64_t val;
hwaddr addr1;
-MemoryRegionSection *section;
+MemoryRegion *mr;
bool error = false;
while (len 0) {
l = len;
-section = address_space_translate(as, addr, addr1, l, is_write);
+mr = address_space_translate(as, addr, addr1, l, is_write);
if (is_write) {
-if (!memory_access_is_direct(section-mr, is_write)) {
-l = memory_access_size(section-mr, l, addr1);
+if (!memory_access_is_direct(mr, is_write)) {
+l = memory_access_size(mr, l, addr1);
/* XXX: could force cpu_single_env to NULL to avoid
potential bugs */
if (l == 4) {
/* 32 bit write access */
val = ldl_p(buf);
-error |= io_mem_write(section-mr, addr1, val, 4);
+error |= io_mem_write(mr, addr1, val, 4);
} else if (l == 2) {
/* 16 bit write access */
val = lduw_p(buf);
-error |= io_mem_write(section-mr, addr1, val, 2);
+error |= io_mem_write(mr, addr1, val, 2);
} else {
/* 8 bit write access */
val = ldub_p(buf);
-error |= io_mem_write(section-mr, addr1, val, 1);
+error |= io_mem_write(mr, addr1, val, 1);
}
} else {
-addr1 += memory_region_get_ram_addr(section-mr);
+addr1 += memory_region_get_ram_addr(mr);
/* RAM case */
ptr = qemu_get_ram_ptr(addr1);
memcpy(ptr, buf, l);
invalidate_and_set_dirty(addr1, l);
}
} else {
-if (!memory_access_is_direct(section-mr, is_write)) {
+if (!memory_access_is_direct(mr, is_write)) {
/* I/O case */
-l = memory_access_size(section-mr, l, addr1);
+l = memory_access_size(mr, l, addr1);
if (l == 4) {
/* 32 bit read access */
-error |= io_mem_read(section-mr, addr1, val, 4);
+error |= io_mem_read(mr, addr1, val, 4);
stl_p(buf, val);
} else if (l == 2) {
/* 16 bit read access */
-error |= io_mem_read(section-mr, addr1, val, 2);
+error |= io_mem_read(mr, addr1, val, 2);
stw_p(buf, val);
} else {
/* 8 bit read access */
-error |= io_mem_read(section-mr, addr1, val, 1);
+error |= io_mem_read(mr, addr1, val, 1);
stb_p(buf, val);
}
} else {
/* RAM case */
-ptr = qemu_get_ram_ptr(section-mr-ram_addr + addr1);
+ptr = qemu_get_ram_ptr(mr-ram_addr + addr1);
memcpy(buf, ptr, l);
}
}
@@ -2011,18 +2011,18 @@ void cpu_physical_memory_write_rom(hwaddr addr,
hwaddr l;
uint8_t *ptr;
hwaddr addr1;
-MemoryRegionSection *section;
+MemoryRegion *mr;
while (len 0) {
l = len;
-section = address_space_translate(address_space_memory,
- addr, addr1, l, true);
+mr = address_space_translate(address_space_memory,
+ addr, addr1, l, true);
-if (!(memory_region_is_ram(section-mr) ||
- memory_region_is_romd(section-mr))) {
+if