/* Define target_phys_addr_t if it exists. */ #ifndef TARGPHYS_H #define TARGPHYS_H #ifdef TARGET_PHYS_ADDR_BITS /* target_phys_addr_t is the type of a physical address (its size can be different from 'target_ulong'). */ #if TARGET_PHYS_ADDR_BITS == 32 typedef uint32_t target_phys_addr_t; #define TARGET_PHYS_ADDR_MAX UINT32_MAX #define TARGET_FMT_plx "%08x" /* Format strings for printing target_phys_addr_t types. * These are recommended over the less flexible TARGET_FMT_plx, * which is retained for the benefit of existing code. */ #define TARGET_PRIdPHYS PRId32 #define TARGET_PRIiPHYS PRIi32 #define TARGET_PRIoPHYS PRIo32 #define TARGET_PRIuPHYS PRIu32 #define TARGET_PRIxPHYS PRIx32 #define TARGET_PRIXPHYS PRIX32 #elif TARGET_PHYS_ADDR_BITS == 64 typedef uint64_t target_phys_addr_t; #define TARGET_PHYS_ADDR_MAX UINT64_MAX #define TARGET_FMT_plx "%016" PRIx64 #define TARGET_PRIdPHYS PRId64 #define TARGET_PRIiPHYS PRIi64 #define TARGET_PRIoPHYS PRIo64 #define TARGET_PRIuPHYS PRIu64 #define TARGET_PRIxPHYS PRIx64 #define TARGET_PRIXPHYS PRIX64 #endif #endif #endif