Signed-off-by: Pierrick Bouvier <pierrick.bouvier@xxxxxxxxxx> --- system/memory.c | 22 +++++++++++++++------- system/meson.build | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/system/memory.c b/system/memory.c index 4c829793a0a..b401be8b5f1 100644 --- a/system/memory.c +++ b/system/memory.c @@ -355,11 +355,11 @@ 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 + if (target_words_bigendian()) { + return mr->ops->endianness != DEVICE_LITTLE_ENDIAN; + } else { + return mr->ops->endianness == DEVICE_BIG_ENDIAN; + } } static void adjust_endianness(MemoryRegion *mr, uint64_t *data, MemOp op) @@ -2584,7 +2584,11 @@ void memory_region_add_eventfd(MemoryRegion *mr, unsigned i; if (size) { - adjust_endianness(mr, &mrfd.data, size_memop(size) | MO_TE); + if (target_words_bigendian()) { + adjust_endianness(mr, &mrfd.data, size_memop(size) | MO_BE); + } else { + adjust_endianness(mr, &mrfd.data, size_memop(size) | MO_LE); + } } memory_region_transaction_begin(); for (i = 0; i < mr->ioeventfd_nb; ++i) { @@ -2619,7 +2623,11 @@ void memory_region_del_eventfd(MemoryRegion *mr, unsigned i; if (size) { - adjust_endianness(mr, &mrfd.data, size_memop(size) | MO_TE); + if (target_words_bigendian()) { + adjust_endianness(mr, &mrfd.data, size_memop(size) | MO_BE); + } else { + adjust_endianness(mr, &mrfd.data, size_memop(size) | MO_LE); + } } memory_region_transaction_begin(); for (i = 0; i < mr->ioeventfd_nb; ++i) { diff --git a/system/meson.build b/system/meson.build index 9d0b0122e54..881cb2736fe 100644 --- a/system/meson.build +++ b/system/meson.build @@ -1,7 +1,6 @@ specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: [files( 'arch_init.c', 'ioport.c', - 'memory.c', )]) system_ss.add(files( @@ -14,6 +13,7 @@ system_ss.add(files( 'dma-helpers.c', 'globals.c', 'memory_mapping.c', + 'memory.c', 'physmem.c', 'qdev-monitor.c', 'qtest.c', -- 2.39.5