blob: bd4938fc02dabcacbbb1a6ca40810b8103cd58d8 [file] [log] [blame]
Anthony Liguoric227f092009-10-01 16:12:16 -05001/* Define target_phys_addr_t if it exists. */
Paul Brook1ad21342009-05-19 16:17:58 +01002
3#ifndef TARGPHYS_H
4#define TARGPHYS_H
5
6#ifdef TARGET_PHYS_ADDR_BITS
Anthony Liguoric227f092009-10-01 16:12:16 -05007/* target_phys_addr_t is the type of a physical address (its size can
Paul Brook355b1942010-04-05 00:28:53 +01008 be different from 'target_ulong'). */
Paul Brook1ad21342009-05-19 16:17:58 +01009
10#if TARGET_PHYS_ADDR_BITS == 32
Anthony Liguoric227f092009-10-01 16:12:16 -050011typedef uint32_t target_phys_addr_t;
Jan Kiszka9fa06382009-05-22 23:51:45 +020012#define TARGET_PHYS_ADDR_MAX UINT32_MAX
Paul Brook1ad21342009-05-19 16:17:58 +010013#define TARGET_FMT_plx "%08x"
Peter Maydell1e9be4b2012-06-25 16:52:21 +010014/* Format strings for printing target_phys_addr_t types.
15 * These are recommended over the less flexible TARGET_FMT_plx,
16 * which is retained for the benefit of existing code.
17 */
18#define TARGET_PRIdPHYS PRId32
19#define TARGET_PRIiPHYS PRIi32
20#define TARGET_PRIoPHYS PRIo32
21#define TARGET_PRIuPHYS PRIu32
22#define TARGET_PRIxPHYS PRIx32
23#define TARGET_PRIXPHYS PRIX32
Paul Brook1ad21342009-05-19 16:17:58 +010024#elif TARGET_PHYS_ADDR_BITS == 64
Anthony Liguoric227f092009-10-01 16:12:16 -050025typedef uint64_t target_phys_addr_t;
Jan Kiszka9fa06382009-05-22 23:51:45 +020026#define TARGET_PHYS_ADDR_MAX UINT64_MAX
Paul Brook1ad21342009-05-19 16:17:58 +010027#define TARGET_FMT_plx "%016" PRIx64
Peter Maydell1e9be4b2012-06-25 16:52:21 +010028#define TARGET_PRIdPHYS PRId64
29#define TARGET_PRIiPHYS PRIi64
30#define TARGET_PRIoPHYS PRIo64
31#define TARGET_PRIuPHYS PRIu64
32#define TARGET_PRIxPHYS PRIx64
33#define TARGET_PRIXPHYS PRIX64
Paul Brook1ad21342009-05-19 16:17:58 +010034#endif
35#endif
36
37#endif