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

> Rename the API methods using the explicit 'unaligned'
> description instead of 'he' which stands for 'host
> endianness'.
>
> Inspired-by: Paolo Bonzini <[email protected]>
> Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
> ---
>  include/qemu/bswap.h                 | 32 ++++++++++++++--------------
>  include/qemu/memory_ldst_unaligned.h | 16 +++++++-------
>

No "memory_" since it's for host pointers and not guest memory addresses.

Paolo

 accel/tcg/translator.c               |  6 +++---
>  hw/display/ati_2d.c                  |  2 +-
>  hw/display/sm501.c                   | 19 ++++++++++-------
>  hw/remote/vfio-user-obj.c            |  4 ++--
>  hw/vmapple/virtio-blk.c              |  2 +-
>  net/checksum.c                       |  6 +++---
>  system/memory.c                      |  4 ++--
>  system/physmem.c                     |  8 +++----
>  ui/vnc-enc-tight.c                   |  2 +-
>  util/bufferiszero.c                  |  6 +++---
>  accel/tcg/ldst_atomicity.c.inc       | 10 ++++-----
>  13 files changed, 60 insertions(+), 57 deletions(-)
>
> diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
> index e8b944988c3..f7c806085fb 100644
> --- a/include/qemu/bswap.h
> +++ b/include/qemu/bswap.h
> @@ -237,82 +237,82 @@ static inline void stb_p(void *ptr, uint8_t v)
>
>  static inline int lduw_le_p(const void *ptr)
>  {
> -    return (uint16_t)le_bswap(lduw_he_p(ptr), 16);
> +    return (uint16_t)le_bswap(lduw_unaligned_p(ptr), 16);
>  }
>
>  static inline int ldsw_le_p(const void *ptr)
>  {
> -    return (int16_t)le_bswap(lduw_he_p(ptr), 16);
> +    return (int16_t)le_bswap(lduw_unaligned_p(ptr), 16);
>  }
>
>  static inline int ldl_le_p(const void *ptr)
>  {
> -    return le_bswap(ldl_he_p(ptr), 32);
> +    return le_bswap(ldl_unaligned_p(ptr), 32);
>  }
>
>  static inline uint64_t ldq_le_p(const void *ptr)
>  {
> -    return le_bswap(ldq_he_p(ptr), 64);
> +    return le_bswap(ldq_unaligned_p(ptr), 64);
>  }
>
>  static inline void stw_le_p(void *ptr, uint16_t v)
>  {
> -    stw_he_p(ptr, le_bswap(v, 16));
> +    stw_unaligned_p(ptr, le_bswap(v, 16));
>  }
>
>  static inline void st24_le_p(void *ptr, uint32_t v)
>  {
> -    st24_he_p(ptr, le_bswap24(v));
> +    st24_unaligned_p(ptr, le_bswap24(v));
>  }
>
>  static inline void stl_le_p(void *ptr, uint32_t v)
>  {
> -    stl_he_p(ptr, le_bswap(v, 32));
> +    stl_unaligned_p(ptr, le_bswap(v, 32));
>  }
>
>  static inline void stq_le_p(void *ptr, uint64_t v)
>  {
> -    stq_he_p(ptr, le_bswap(v, 64));
> +    stq_unaligned_p(ptr, le_bswap(v, 64));
>  }
>
>  static inline int lduw_be_p(const void *ptr)
>  {
> -    return (uint16_t)be_bswap(lduw_he_p(ptr), 16);
> +    return (uint16_t)be_bswap(lduw_unaligned_p(ptr), 16);
>  }
>
>  static inline int ldsw_be_p(const void *ptr)
>  {
> -    return (int16_t)be_bswap(lduw_he_p(ptr), 16);
> +    return (int16_t)be_bswap(lduw_unaligned_p(ptr), 16);
>  }
>
>  static inline int ldl_be_p(const void *ptr)
>  {
> -    return be_bswap(ldl_he_p(ptr), 32);
> +    return be_bswap(ldl_unaligned_p(ptr), 32);
>  }
>
>  static inline uint64_t ldq_be_p(const void *ptr)
>  {
> -    return be_bswap(ldq_he_p(ptr), 64);
> +    return be_bswap(ldq_unaligned_p(ptr), 64);
>  }
>
>  static inline void stw_be_p(void *ptr, uint16_t v)
>  {
> -    stw_he_p(ptr, be_bswap(v, 16));
> +    stw_unaligned_p(ptr, be_bswap(v, 16));
>  }
>
>  static inline void st24_be_p(void *ptr, uint32_t v)
>  {
> -    st24_he_p(ptr, be_bswap24(v));
> +    st24_unaligned_p(ptr, be_bswap24(v));
>  }
>
>  static inline void stl_be_p(void *ptr, uint32_t v)
>  {
> -    stl_he_p(ptr, be_bswap(v, 32));
> +    stl_unaligned_p(ptr, be_bswap(v, 32));
>  }
>
>  static inline void stq_be_p(void *ptr, uint64_t v)
>  {
> -    stq_he_p(ptr, be_bswap(v, 64));
> +    stq_unaligned_p(ptr, be_bswap(v, 64));
>  }
>
>  /* Store v to p as a sz byte value in host order */
> diff --git a/include/qemu/memory_ldst_unaligned.h
> b/include/qemu/memory_ldst_unaligned.h
> index f6b64e8fe9c..6b0cc3e2777 100644
> --- a/include/qemu/memory_ldst_unaligned.h
> +++ b/include/qemu/memory_ldst_unaligned.h
> @@ -16,50 +16,50 @@
>   * of good performance.
>   */
>
> -static inline int lduw_he_p(const void *ptr)
> +static inline int lduw_unaligned_p(const void *ptr)
>  {
>      uint16_t r;
>      __builtin_memcpy(&r, ptr, sizeof(r));
>      return r;
>  }
>
> -static inline int ldsw_he_p(const void *ptr)
> +static inline int ldsw_unaligned_p(const void *ptr)
>  {
>      int16_t r;
>      __builtin_memcpy(&r, ptr, sizeof(r));
>      return r;
>  }
>
> -static inline void stw_he_p(void *ptr, uint16_t v)
> +static inline void stw_unaligned_p(void *ptr, uint16_t v)
>  {
>      __builtin_memcpy(ptr, &v, sizeof(v));
>  }
>
> -static inline void st24_he_p(void *ptr, uint32_t v)
> +static inline void st24_unaligned_p(void *ptr, uint32_t v)
>  {
>      __builtin_memcpy(ptr, &v, 3);
>  }
>
> -static inline int ldl_he_p(const void *ptr)
> +static inline int ldl_unaligned_p(const void *ptr)
>  {
>      int32_t r;
>      __builtin_memcpy(&r, ptr, sizeof(r));
>      return r;
>  }
>
> -static inline void stl_he_p(void *ptr, uint32_t v)
> +static inline void stl_unaligned_p(void *ptr, uint32_t v)
>  {
>      __builtin_memcpy(ptr, &v, sizeof(v));
>  }
>
> -static inline uint64_t ldq_he_p(const void *ptr)
> +static inline uint64_t ldq_unaligned_p(const void *ptr)
>  {
>      uint64_t r;
>      __builtin_memcpy(&r, ptr, sizeof(r));
>      return r;
>  }
>
> -static inline void stq_he_p(void *ptr, uint64_t v)
> +static inline void stq_unaligned_p(void *ptr, uint64_t v)
>  {
>      __builtin_memcpy(ptr, &v, sizeof(v));
>  }
> diff --git a/accel/tcg/translator.c b/accel/tcg/translator.c
> index 86cdd70c47f..497128c96c5 100644
> --- a/accel/tcg/translator.c
> +++ b/accel/tcg/translator.c
> @@ -342,14 +342,14 @@ static bool translator_ld(CPUArchState *env,
> DisasContextBase *db,
>      case 2:
>          if (QEMU_IS_ALIGNED(pc, 2)) {
>              uint16_t t = qatomic_read((uint16_t *)host);
> -            stw_he_p(dest, t);
> +            stw_unaligned_p(dest, t);
>              return true;
>          }
>          break;
>      case 4:
>          if (QEMU_IS_ALIGNED(pc, 4)) {
>              uint32_t t = qatomic_read((uint32_t *)host);
> -            stl_he_p(dest, t);
> +            stl_unaligned_p(dest, t);
>              return true;
>          }
>          break;
> @@ -357,7 +357,7 @@ static bool translator_ld(CPUArchState *env,
> DisasContextBase *db,
>      case 8:
>          if (QEMU_IS_ALIGNED(pc, 8)) {
>              uint64_t t = qatomic_read__nocheck((uint64_t *)host);
> -            stq_he_p(dest, t);
> +            stq_unaligned_p(dest, t);
>              return true;
>          }
>          break;
> diff --git a/hw/display/ati_2d.c b/hw/display/ati_2d.c
> index 24a3c3e942f..333d78d7455 100644
> --- a/hw/display/ati_2d.c
> +++ b/hw/display/ati_2d.c
> @@ -222,7 +222,7 @@ void ati_2d_blt(ATIVGAState *s)
>              for (y = 0; y < s->regs.dst_height; y++) {
>                  i = dst_x * bypp + (dst_y + y) * dst_pitch;
>                  for (x = 0; x < s->regs.dst_width; x++, i += bypp) {
> -                    stn_he_p(&dst_bits[i], bypp, filler);
> +                    stn_unaligned_p(&dst_bits[i], bypp, filler);
>                  }
>              }
>          }
> diff --git a/hw/display/sm501.c b/hw/display/sm501.c
> index 51efe2ad41f..776fedebb13 100644
> --- a/hw/display/sm501.c
> +++ b/hw/display/sm501.c
> @@ -768,7 +768,7 @@ static void sm501_2d_operation(SM501State *s)
>              for (y = 0; y < height; y++) {
>                  i = (dst_x + (dst_y + y) * dst_pitch) * bypp;
>                  for (x = 0; x < width; x++, i += bypp) {
> -                    stn_he_p(&d[i], bypp, ~ldn_he_p(&d[i], bypp));
> +                    stn_unaligned_p(&d[i], bypp, ~ldn_unaligned_p(&d[i],
> bypp));
>                  }
>              }
>          } else if (!rop_mode && rop == 0x99) {
> @@ -781,8 +781,9 @@ static void sm501_2d_operation(SM501State *s)
>                  i = (dst_x + (dst_y + y) * dst_pitch) * bypp;
>                  j = (src_x + (src_y + y) * src_pitch) * bypp;
>                  for (x = 0; x < width; x++, i += bypp, j += bypp) {
> -                    stn_he_p(&d[i], bypp,
> -                             ~(ldn_he_p(&sp[j], bypp) ^ ldn_he_p(&d[i],
> bypp)));
> +                    stn_unaligned_p(&d[i], bypp,
> +                                    ~(ldn_unaligned_p(&sp[j], bypp)
> +                                      ^ ldn_unaligned_p(&d[i], bypp)));
>                  }
>              }
>          } else if (!rop_mode && rop == 0xee) {
> @@ -795,8 +796,9 @@ static void sm501_2d_operation(SM501State *s)
>                  i = (dst_x + (dst_y + y) * dst_pitch) * bypp;
>                  j = (src_x + (src_y + y) * src_pitch) * bypp;
>                  for (x = 0; x < width; x++, i += bypp, j += bypp) {
> -                    stn_he_p(&d[i], bypp,
> -                             ldn_he_p(&sp[j], bypp) | ldn_he_p(&d[i],
> bypp));
> +                    stn_unaligned_p(&d[i], bypp,
> +                                    ldn_unaligned_p(&sp[j], bypp)
> +                                    | ldn_unaligned_p(&d[i], bypp));
>                  }
>              }
>          } else {
> @@ -818,8 +820,9 @@ static void sm501_2d_operation(SM501State *s)
>              if (width == 1 && height == 1) {
>                  unsigned int si = (src_x + src_y * src_pitch) * bypp;
>                  unsigned int di = (dst_x + dst_y * dst_pitch) * bypp;
> -                stn_he_p(&s->local_mem[dst_base + di], bypp,
> -                         ldn_he_p(&s->local_mem[src_base + si], bypp));
> +                stn_unaligned_p(&s->local_mem[dst_base + di], bypp,
> +                                ldn_unaligned_p(&s->local_mem[src_base +
> si],
> +                                                bypp));
>                  break;
>              }
>              /* If reverse blit do simple check for overlaps */
> @@ -917,7 +920,7 @@ static void sm501_2d_operation(SM501State *s)
>                  for (y = 0; y < height; y++) {
>                      i = (dst_x + (dst_y + y) * dst_pitch) * bypp;
>                      for (x = 0; x < width; x++, i += bypp) {
> -                        stn_he_p(&d[i], bypp, color);
> +                        stn_unaligned_p(&d[i], bypp, color);
>                      }
>                  }
>              }
> diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c
> index 9c9ac8b0d92..44adff10eb9 100644
> --- a/hw/remote/vfio-user-obj.c
> +++ b/hw/remote/vfio-user-obj.c
> @@ -392,7 +392,7 @@ static int vfu_object_mr_rw(MemoryRegion *mr, uint8_t
> *buf, hwaddr offset,
>          access_size = memory_access_size(mr, size, offset);
>
>          if (is_write) {
> -            val = ldn_he_p(ptr, access_size);
> +            val = ldn_unaligned_p(ptr, access_size);
>
>              result = memory_region_dispatch_write(mr, offset, val,
>                                                    size_memop(access_size),
> @@ -402,7 +402,7 @@ static int vfu_object_mr_rw(MemoryRegion *mr, uint8_t
> *buf, hwaddr offset,
>                                                   size_memop(access_size),
>                                                   MEMTXATTRS_UNSPECIFIED);
>
> -            stn_he_p(ptr, access_size, val);
> +            stn_unaligned_p(ptr, access_size, val);
>          }
>
>          if (release_lock) {
> diff --git a/hw/vmapple/virtio-blk.c b/hw/vmapple/virtio-blk.c
> index f5e8e92df75..805bcbc9467 100644
> --- a/hw/vmapple/virtio-blk.c
> +++ b/hw/vmapple/virtio-blk.c
> @@ -79,7 +79,7 @@ static void vmapple_virtio_blk_get_config(VirtIODevice
> *vdev, uint8_t *config)
>      g_assert(dev->parent_obj.config_size >= endof(struct
> virtio_blk_config, zoned));
>
>      /* Apple abuses the field for max_secure_erase_sectors as type id */
> -    stl_he_p(&blkcfg->max_secure_erase_sectors, dev->apple_type);
> +    stl_unaligned_p(&blkcfg->max_secure_erase_sectors, dev->apple_type);
>  }
>
>  static void vmapple_virtio_blk_class_init(ObjectClass *klass, const void
> *data)
> diff --git a/net/checksum.c b/net/checksum.c
> index 18be31c26e5..56314f5e76d 100644
> --- a/net/checksum.c
> +++ b/net/checksum.c
> @@ -110,7 +110,7 @@ void net_checksum_calculate(void *data, int length,
> int csum_flag)
>
>      /* Calculate IP checksum */
>      if (csum_flag & CSUM_IP) {
> -        stw_he_p(&ip->ip_sum, 0);
> +        stw_unaligned_p(&ip->ip_sum, 0);
>          csum = net_raw_checksum((uint8_t *)ip, IP_HDR_GET_LEN(ip));
>          stw_be_p(&ip->ip_sum, csum);
>      }
> @@ -142,7 +142,7 @@ void net_checksum_calculate(void *data, int length,
> int csum_flag)
>          }
>
>          /* Set csum to 0 */
> -        stw_he_p(&tcp->th_sum, 0);
> +        stw_unaligned_p(&tcp->th_sum, 0);
>
>          csum = net_checksum_tcpudp(ip_len, ip->ip_p,
>                                     (uint8_t *)&ip->ip_src,
> @@ -166,7 +166,7 @@ void net_checksum_calculate(void *data, int length,
> int csum_flag)
>          }
>
>          /* Set csum to 0 */
> -        stw_he_p(&udp->uh_sum, 0);
> +        stw_unaligned_p(&udp->uh_sum, 0);
>
>          csum = net_checksum_tcpudp(ip_len, ip->ip_p,
>                                     (uint8_t *)&ip->ip_src,
> diff --git a/system/memory.c b/system/memory.c
> index 8b84661ae36..653d46e8e79 100644
> --- a/system/memory.c
> +++ b/system/memory.c
> @@ -1365,7 +1365,7 @@ static uint64_t memory_region_ram_device_read(void
> *opaque,
>                                                hwaddr addr, unsigned size)
>  {
>      MemoryRegion *mr = opaque;
> -    uint64_t data = ldn_he_p(mr->ram_block->host + addr, size);
> +    uint64_t data = ldn_unaligned_p(mr->ram_block->host + addr, size);
>
>      trace_memory_region_ram_device_read(get_cpu_index(), mr, addr, data,
> size);
>
> @@ -1379,7 +1379,7 @@ static void memory_region_ram_device_write(void
> *opaque, hwaddr addr,
>
>      trace_memory_region_ram_device_write(get_cpu_index(), mr, addr, data,
> size);
>
> -    stn_he_p(mr->ram_block->host + addr, size, data);
> +    stn_unaligned_p(mr->ram_block->host + addr, size, data);
>  }
>
>  static const MemoryRegionOps ram_device_mem_ops = {
> diff --git a/system/physmem.c b/system/physmem.c
> index fb69cdb57d9..d62af6f2480 100644
> --- a/system/physmem.c
> +++ b/system/physmem.c
> @@ -3284,7 +3284,7 @@ static MemTxResult
> flatview_write_continue_step(MemTxAttrs attrs,
>
>          /*
>           * Assure Coverity (and ourselves) that we are not going to
> OVERRUN
> -         * the buffer by following ldn_he_p().
> +         * the buffer by following ldn_unaligned_p().
>           */
>  #ifdef QEMU_STATIC_ANALYSIS
>          assert((*l == 1 && len >= 1) ||
> @@ -3292,7 +3292,7 @@ static MemTxResult
> flatview_write_continue_step(MemTxAttrs attrs,
>                 (*l == 4 && len >= 4) ||
>                 (*l == 8 && len >= 8));
>  #endif
> -        val = ldn_he_p(buf, *l);
> +        val = ldn_unaligned_p(buf, *l);
>          result = memory_region_dispatch_write(mr, mr_addr, val,
>                                                size_memop(*l), attrs);
>          if (release_lock) {
> @@ -3379,7 +3379,7 @@ static MemTxResult
> flatview_read_continue_step(MemTxAttrs attrs, uint8_t *buf,
>
>          /*
>           * Assure Coverity (and ourselves) that we are not going to
> OVERRUN
> -         * the buffer by following stn_he_p().
> +         * the buffer by following stn_unaligned_p().
>           */
>  #ifdef QEMU_STATIC_ANALYSIS
>          assert((*l == 1 && len >= 1) ||
> @@ -3387,7 +3387,7 @@ static MemTxResult
> flatview_read_continue_step(MemTxAttrs attrs, uint8_t *buf,
>                 (*l == 4 && len >= 4) ||
>                 (*l == 8 && len >= 8));
>  #endif
> -        stn_he_p(buf, *l, val);
> +        stn_unaligned_p(buf, *l, val);
>
>          if (release_lock) {
>              bql_unlock();
> diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
> index b645aebccef..62d825dc05f 100644
> --- a/ui/vnc-enc-tight.c
> +++ b/ui/vnc-enc-tight.c
> @@ -912,7 +912,7 @@ static void tight_pack24(VncState *vs, uint8_t *buf,
> size_t count, size_t *ret)
>      }
>
>      while (count--) {
> -        pix = ldl_he_p(buf8);
> +        pix = ldl_unaligned_p(buf8);
>          *buf++ = (char)(pix >> rshift);
>          *buf++ = (char)(pix >> gshift);
>          *buf++ = (char)(pix >> bshift);
> diff --git a/util/bufferiszero.c b/util/bufferiszero.c
> index 9548dd3ad1b..d7775dc891d 100644
> --- a/util/bufferiszero.c
> +++ b/util/bufferiszero.c
> @@ -38,10 +38,10 @@ static bool buffer_is_zero_int_lt256(const void *buf,
> size_t len)
>       * the beginning and end of the buffer.
>       */
>      if (unlikely(len <= 8)) {
> -        return (ldl_he_p(buf) | ldl_he_p(buf + len - 4)) == 0;
> +        return (ldl_unaligned_p(buf) | ldl_unaligned_p(buf + len - 4)) ==
> 0;
>      }
>
> -    t = ldq_he_p(buf) | ldq_he_p(buf + len - 8);
> +    t = ldq_unaligned_p(buf) | ldq_unaligned_p(buf + len - 8);
>      p = QEMU_ALIGN_PTR_DOWN(buf + 8, 8);
>      e = QEMU_ALIGN_PTR_DOWN(buf + len - 1, 8);
>
> @@ -58,7 +58,7 @@ static bool buffer_is_zero_int_ge256(const void *buf,
> size_t len)
>       * Use unaligned memory access functions to handle
>       * the beginning and end of the buffer.
>       */
> -    uint64_t t = ldq_he_p(buf) | ldq_he_p(buf + len - 8);
> +    uint64_t t = ldq_unaligned_p(buf) | ldq_unaligned_p(buf + len - 8);
>      const uint64_t *p = QEMU_ALIGN_PTR_DOWN(buf + 8, 8);
>      const uint64_t *e = QEMU_ALIGN_PTR_DOWN(buf + len - 1, 8);
>
> diff --git a/accel/tcg/ldst_atomicity.c.inc
> b/accel/tcg/ldst_atomicity.c.inc
> index c735add2615..eeb18c716c0 100644
> --- a/accel/tcg/ldst_atomicity.c.inc
> +++ b/accel/tcg/ldst_atomicity.c.inc
> @@ -415,7 +415,7 @@ static uint16_t load_atom_2(CPUState *cpu, uintptr_t
> ra,
>      atmax = required_atomicity(cpu, pi, memop);
>      switch (atmax) {
>      case MO_8:
> -        return lduw_he_p(pv);
> +        return lduw_unaligned_p(pv);
>      case MO_16:
>          /* The only case remaining is MO_ATOM_WITHIN16. */
>          if (!HAVE_al8_fast && (pi & 3) == 1) {
> @@ -512,7 +512,7 @@ static uint64_t load_atom_8(CPUState *cpu, uintptr_t
> ra,
>      }
>      switch (atmax) {
>      case MO_8:
> -        return ldq_he_p(pv);
> +        return ldq_unaligned_p(pv);
>      case MO_16:
>          return load_atom_8_by_2(pv);
>      case MO_32:
> @@ -875,7 +875,7 @@ static void store_atom_2(CPUState *cpu, uintptr_t ra,
>
>      atmax = required_atomicity(cpu, pi, memop);
>      if (atmax == MO_8) {
> -        stw_he_p(pv, val);
> +        stw_unaligned_p(pv, val);
>          return;
>      }
>
> @@ -928,7 +928,7 @@ static void store_atom_4(CPUState *cpu, uintptr_t ra,
>      atmax = required_atomicity(cpu, pi, memop);
>      switch (atmax) {
>      case MO_8:
> -        stl_he_p(pv, val);
> +        stl_unaligned_p(pv, val);
>          return;
>      case MO_16:
>          store_atom_4_by_2(pv, val);
> @@ -996,7 +996,7 @@ static void store_atom_8(CPUState *cpu, uintptr_t ra,
>      atmax = required_atomicity(cpu, pi, memop);
>      switch (atmax) {
>      case MO_8:
> -        stq_he_p(pv, val);
> +        stq_unaligned_p(pv, val);
>          return;
>      case MO_16:
>          store_atom_8_by_2(pv, val);
> --
> 2.52.0
>
>

Reply via email to