On 28/12/25 16:38, Paolo Bonzini wrote:


Il dom 28 dic 2025, 16:14 Philippe Mathieu-Daudé <[email protected] <mailto:[email protected]>> ha scritto:

     > Perhaps the source of the confusion is that they are in bswap.h
    but they
     > (quite obviously since it's host endianness) never swap?

    Hmm, maybe not well named API then.


The name is fine, the placement maybe a bit less; they could be moved out of bswap.h but it's not really necessary to do it now.

Indeed not needed now, but already done to figure this API ;) This
helped me to understand what we don't need is "DO_STN_LDN_P(he)"
because this is a convoluted expansion to a plain memcpy().

    OK. Let's consider the following patches removed then:

    - 03/25 system: Use explicit endianness in subpage_ops::read/write()
    - 14/25 system: Use explicit endianness in ram_device::read/write()
    - 16/25 system: Allow restricting legacy ld/st_he() 'native-endian' API

    All the series I posted this week build fine without them.


Great, the other change I suggested was about the handling of MO_BSWAP but it can be done separately.

This request is not ignored, but I plan to address it on top to keep
current changes simple enough.


If you don't want to repost and prefer to drop patch 14, we will also remove DEVICE_NATIVE_ENDIAN from subpages in a second step, for example by using "HOST_BIG_ENDIAN ? DEVICE_BIG_ENDIAN : DEVICE_LITTLE_ENDIAN" as in the ram_device ops.

Yeah, that would even be smth like "DEVICE_ENDIANNESS_IS_IRRELEVANT", as
we call directly the ld/st_unaligned helpers. I'll think about that later.

Reply via email to