mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-06 06:27:41 -07:00
system/memory: make compilation unit common
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20250317183417.285700-18-pierrick.bouvier@linaro.org>
This commit is contained in:
parent
a54240931c
commit
94f5cd62b8
2 changed files with 6 additions and 13 deletions
|
|
@ -353,15 +353,6 @@ static void flatview_simplify(FlatView *view)
|
|||
}
|
||||
}
|
||||
|
||||
static bool memory_region_big_endian(MemoryRegion *mr)
|
||||
{
|
||||
#if TARGET_BIG_ENDIAN
|
||||
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, MemOp op)
|
||||
{
|
||||
if ((op & MO_BSWAP) != devend_memop(mr->ops->endianness)) {
|
||||
|
|
@ -563,7 +554,7 @@ static MemTxResult access_with_adjusted_size(hwaddr addr,
|
|||
/* FIXME: support unaligned access? */
|
||||
access_size = MAX(MIN(size, access_size_max), access_size_min);
|
||||
access_mask = MAKE_64BIT_MASK(0, access_size * 8);
|
||||
if (memory_region_big_endian(mr)) {
|
||||
if (devend_big_endian(mr->ops->endianness)) {
|
||||
for (i = 0; i < size; i += access_size) {
|
||||
r |= access_fn(mr, addr + i, value, access_size,
|
||||
(size - access_size - i) * 8, access_mask, attrs);
|
||||
|
|
@ -2584,7 +2575,8 @@ void memory_region_add_eventfd(MemoryRegion *mr,
|
|||
unsigned i;
|
||||
|
||||
if (size) {
|
||||
adjust_endianness(mr, &mrfd.data, size_memop(size) | MO_TE);
|
||||
MemOp mop = (target_words_bigendian() ? MO_BE : MO_LE) | size_memop(size);
|
||||
adjust_endianness(mr, &mrfd.data, mop);
|
||||
}
|
||||
memory_region_transaction_begin();
|
||||
for (i = 0; i < mr->ioeventfd_nb; ++i) {
|
||||
|
|
@ -2619,7 +2611,8 @@ void memory_region_del_eventfd(MemoryRegion *mr,
|
|||
unsigned i;
|
||||
|
||||
if (size) {
|
||||
adjust_endianness(mr, &mrfd.data, size_memop(size) | MO_TE);
|
||||
MemOp mop = (target_words_bigendian() ? MO_BE : MO_LE) | size_memop(size);
|
||||
adjust_endianness(mr, &mrfd.data, mop);
|
||||
}
|
||||
memory_region_transaction_begin();
|
||||
for (i = 0; i < mr->ioeventfd_nb; ++i) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: [files(
|
|||
'arch_init.c',
|
||||
'ioport.c',
|
||||
'globals-target.c',
|
||||
'memory.c',
|
||||
)])
|
||||
|
||||
system_ss.add(files(
|
||||
|
|
@ -15,6 +14,7 @@ system_ss.add(files(
|
|||
'dma-helpers.c',
|
||||
'globals.c',
|
||||
'memory_mapping.c',
|
||||
'memory.c',
|
||||
'physmem.c',
|
||||
'qdev-monitor.c',
|
||||
'qtest.c',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue