[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 26/28] memory: pass MemoryRegion to access_with_adju
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 26/28] memory: pass MemoryRegion to access_with_adjusted_size |
Date: |
Mon, 22 Jul 2013 15:54:36 +0200 |
The accessors all use a MemoryRegion opaque value. Avoid going
uselessly through void*.
Signed-off-by: Paolo Bonzini <address@hidden>
---
Needed in a previous (wrong) version of this series, and
it's what Alexey tested.
memory.c | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/memory.c b/memory.c
index aaae10d..77a34dd 100644
--- a/memory.c
+++ b/memory.c
@@ -369,28 +369,26 @@ static void adjust_endianness(MemoryRegion *mr, uint64_t
*data, unsigned size)
}
}
-static void memory_region_oldmmio_read_accessor(void *opaque,
+static void memory_region_oldmmio_read_accessor(MemoryRegion *mr,
hwaddr addr,
uint64_t *value,
unsigned size,
unsigned shift,
uint64_t mask)
{
- MemoryRegion *mr = opaque;
uint64_t tmp;
tmp = mr->ops->old_mmio.read[ctz32(size)](mr->opaque, addr);
*value |= (tmp & mask) << shift;
}
-static void memory_region_read_accessor(void *opaque,
+static void memory_region_read_accessor(MemoryRegion *mr,
hwaddr addr,
uint64_t *value,
unsigned size,
unsigned shift,
uint64_t mask)
{
- MemoryRegion *mr = opaque;
uint64_t tmp;
if (mr->flush_coalesced_mmio) {
@@ -400,28 +398,26 @@ static void memory_region_read_accessor(void *opaque,
*value |= (tmp & mask) << shift;
}
-static void memory_region_oldmmio_write_accessor(void *opaque,
+static void memory_region_oldmmio_write_accessor(MemoryRegion *mr,
hwaddr addr,
uint64_t *value,
unsigned size,
unsigned shift,
uint64_t mask)
{
- MemoryRegion *mr = opaque;
uint64_t tmp;
tmp = (*value >> shift) & mask;
mr->ops->old_mmio.write[ctz32(size)](mr->opaque, addr, tmp);
}
-static void memory_region_write_accessor(void *opaque,
+static void memory_region_write_accessor(MemoryRegion *mr,
hwaddr addr,
uint64_t *value,
unsigned size,
unsigned shift,
uint64_t mask)
{
- MemoryRegion *mr = opaque;
uint64_t tmp;
if (mr->flush_coalesced_mmio) {
@@ -436,13 +432,13 @@ static void access_with_adjusted_size(hwaddr addr,
unsigned size,
unsigned access_size_min,
unsigned access_size_max,
- void (*access)(void *opaque,
+ void (*access)(MemoryRegion *mr,
hwaddr addr,
uint64_t *value,
unsigned size,
unsigned shift,
uint64_t mask),
- void *opaque)
+ MemoryRegion *mr)
{
uint64_t access_mask;
unsigned access_size;
@@ -460,10 +456,10 @@ static void access_with_adjusted_size(hwaddr addr,
access_mask = -1ULL >> (64 - access_size * 8);
for (i = 0; i < size; i += access_size) {
#ifdef TARGET_WORDS_BIGENDIAN
- access(opaque, addr + i, value, access_size,
+ access(mr, addr + i, value, access_size,
(size - access_size - i) * 8, access_mask);
#else
- access(opaque, addr + i, value, access_size, i * 8, access_mask);
+ access(mr, addr + i, value, access_size, i * 8, access_mask);
#endif
}
}
--
1.8.1.4
- [Qemu-devel] [PATCH 15/28] Revert "ioport: remove LITTLE_ENDIAN mark for portio", (continued)
- [Qemu-devel] [PATCH 15/28] Revert "ioport: remove LITTLE_ENDIAN mark for portio", Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 16/28] pc-testdev: support 8 and 16-bit accesses to 0xe0, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 14/28] isa_mmio: delete, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 17/28] pc-testdev: remove useless cpu_to_le64/le64_to_cpu, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 18/28] mips: degrade BIOS error to warning, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 20/28] sparc64: unbreak, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 19/28] sh4: unbreak r2d, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 21/28] default-configs: add test device to all machines supporting ISA, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 22/28] default-configs: add SuperIO to SH4, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 23/28] default-configs/ppc64: add all components of i82378 SuperIO chip used by prep, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 26/28] memory: pass MemoryRegion to access_with_adjusted_size,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 24/28] qtest: add test for ISA I/O space endianness, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 27/28] memory: check memory region endianness, not target's, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 25/28] memory: move functions around, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 28/28] pc-testdev: add I/O port to test memory.c auto split/combine, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 02/28] ppc_oldworld: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 03/28] ppc_newworld: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 04/28] spapr_pci: remove indirection for I/O port access, Paolo Bonzini, 2013/07/22
- [Qemu-devel] [PATCH 01/28] sh4: do not use isa_mmio, Paolo Bonzini, 2013/07/22
- Re: [Qemu-devel] [PATCH 00/28] Memory API for 1.6: fix I/O port endianness mess, Peter Maydell, 2013/07/22