On 2026-08-14 15:40, Peter Xu wrote:
QEMU's 32bit host support was deprecated since 10.0 and removed in 11.0, at
least the system emulation part

  (see commit 372ec46b9f "meson: Reject 32-bit hosts")
.  Now it's safe to move ram_addr_t
completely over to uint64_t.

It should be almost the same as uintptr_t as before for !Xen, except that
on some systems (like MacOS) uintptr_t and uint64_t can be typed slightly
differently, causing unnecessary compiler warnings when use them in a
mixture way.

Hopefully, this change also makes it clear that ram_addr_t is never used as
a host pointer in any form, but only an internal QEMU integer based address
space for allocating ramblocks.

[1] 
https://lore.kernel.org/r/[email protected]

With the commit sha no need to link to that thread IMO.


Cc: Paolo Bonzini <[email protected]>
Cc: Philippe Mathieu-Daudé <[email protected]>
Suggested-by: Richard Henderson <[email protected]>
Signed-off-by: Peter Xu <[email protected]>
---
  include/system/ram_addr.h | 6 ------
  1 file changed, 6 deletions(-)

diff --git a/include/system/ram_addr.h b/include/system/ram_addr.h
index 129f6b8757..06caca1506 100644
--- a/include/system/ram_addr.h
+++ b/include/system/ram_addr.h
@@ -15,15 +15,9 @@
  #define RAM_ADDR_H
/* address in the RAM (different from a physical address) */

While here we could describe a bit more:

/*
* ram_addr_t - Offset in QEMU's internal RAM address space (not a guest physical address).
 */

-#if defined(CONFIG_XEN_BACKEND)
  typedef uint64_t ram_addr_t;
  #  define RAM_ADDR_MAX UINT64_MAX
  #  define RAM_ADDR_FMT "%" PRIx64
-#else
-typedef uintptr_t ram_addr_t;
-#  define RAM_ADDR_MAX UINTPTR_MAX
-#  define RAM_ADDR_FMT "%" PRIxPTR
-#endif
#define DIRTY_MEMORY_VGA 0
  #define DIRTY_MEMORY_CODE      1

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>

Thanks!

Reply via email to