targphys.h: Define TARGET_PRI*PHYS format specifier macros

Define a set of TARGET_PRI*PHYS format specifier macros for working
with target_phys_addr_t types. These follow the standard pattern
for such macros, and are more flexible than TARGET_FMT_plx, which
does not allow specification of field widths.

Suggested-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
Peter Maydell 2012-06-25 16:52:21 +01:00 committed by Blue Swirl
parent 636bd28939
commit 1e9be4b4fe
1 changed files with 16 additions and 0 deletions

View File

@ -11,10 +11,26 @@
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