From: Philippe Mathieu-Daudé Date: Tue, 9 Dec 2025 18:24:05 +0000 (+0100) Subject: system: Allow restricting legacy address_space_ldst() native-endian API X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d267f5b852cde3ccd9e0d60f6c498e2b67daab8;p=thirdparty%2Fqemu.git system: Allow restricting legacy address_space_ldst() native-endian API Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Message-ID: <20260109165058.59144-16-philmd@linaro.org> --- diff --git a/include/system/memory_cached.h b/include/system/memory_cached.h index e0ed54bd1e..6eb6179140 100644 --- a/include/system/memory_cached.h +++ b/include/system/memory_cached.h @@ -80,8 +80,10 @@ void address_space_stb_cached(MemoryRegionCache *cache, } } +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #include "system/memory_ldst_cached.h.inc" +#endif #define ENDIANNESS _le #include "system/memory_ldst_cached.h.inc" diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.h.inc index dd1fb482ea..896550bdd6 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -25,8 +25,10 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #include "system/memory_ldst_endian.h.inc" +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ #define ENDIANNESS _le #include "system/memory_ldst_endian.h.inc" diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index ebb441f1a6..a728b7737c 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -105,9 +105,11 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, attrs, result); } +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #define MO_ENDIAN (target_big_endian() ? MO_BE : MO_LE) #include "memory_ldst_endian.c.inc" +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ #define ENDIANNESS _le #define MO_ENDIAN MO_LE