memory: move functions around
Prepare for next patch, no semantic change. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Message-id: 1374501278-31549-26-git-send-email-pbonzini@redhat.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
8fefa31be9
commit
e11ef3d184
60
memory.c
60
memory.c
|
@ -339,6 +339,36 @@ static void flatview_simplify(FlatView *view)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool memory_region_wrong_endianness(MemoryRegion *mr)
|
||||||
|
{
|
||||||
|
#ifdef TARGET_WORDS_BIGENDIAN
|
||||||
|
return mr->ops->endianness == DEVICE_LITTLE_ENDIAN;
|
||||||
|
#else
|
||||||
|
return mr->ops->endianness == DEVICE_BIG_ENDIAN;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void adjust_endianness(MemoryRegion *mr, uint64_t *data, unsigned size)
|
||||||
|
{
|
||||||
|
if (memory_region_wrong_endianness(mr)) {
|
||||||
|
switch (size) {
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
*data = bswap16(*data);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
*data = bswap32(*data);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
*data = bswap64(*data);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void memory_region_oldmmio_read_accessor(void *opaque,
|
static void memory_region_oldmmio_read_accessor(void *opaque,
|
||||||
hwaddr addr,
|
hwaddr addr,
|
||||||
uint64_t *value,
|
uint64_t *value,
|
||||||
|
@ -786,15 +816,6 @@ static void memory_region_destructor_rom_device(MemoryRegion *mr)
|
||||||
qemu_ram_free(mr->ram_addr & TARGET_PAGE_MASK);
|
qemu_ram_free(mr->ram_addr & TARGET_PAGE_MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool memory_region_wrong_endianness(MemoryRegion *mr)
|
|
||||||
{
|
|
||||||
#ifdef TARGET_WORDS_BIGENDIAN
|
|
||||||
return mr->ops->endianness == DEVICE_LITTLE_ENDIAN;
|
|
||||||
#else
|
|
||||||
return mr->ops->endianness == DEVICE_BIG_ENDIAN;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void memory_region_init(MemoryRegion *mr,
|
void memory_region_init(MemoryRegion *mr,
|
||||||
Object *owner,
|
Object *owner,
|
||||||
const char *name,
|
const char *name,
|
||||||
|
@ -921,27 +942,6 @@ static uint64_t memory_region_dispatch_read1(MemoryRegion *mr,
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void adjust_endianness(MemoryRegion *mr, uint64_t *data, unsigned size)
|
|
||||||
{
|
|
||||||
if (memory_region_wrong_endianness(mr)) {
|
|
||||||
switch (size) {
|
|
||||||
case 1:
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
*data = bswap16(*data);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
*data = bswap32(*data);
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
*data = bswap64(*data);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
abort();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool memory_region_dispatch_read(MemoryRegion *mr,
|
static bool memory_region_dispatch_read(MemoryRegion *mr,
|
||||||
hwaddr addr,
|
hwaddr addr,
|
||||||
uint64_t *pval,
|
uint64_t *pval,
|
||||||
|
|
Loading…
Reference in New Issue