Anthony Liguori | c227f09 | 2009-10-01 16:12:16 -0500 | [diff] [blame] | 1 | /* Define target_phys_addr_t if it exists. */ |
Paul Brook | 1ad2134 | 2009-05-19 16:17:58 +0100 | [diff] [blame] | 2 | |
| 3 | #ifndef TARGPHYS_H |
| 4 | #define TARGPHYS_H |
| 5 | |
| 6 | #ifdef TARGET_PHYS_ADDR_BITS |
Anthony Liguori | c227f09 | 2009-10-01 16:12:16 -0500 | [diff] [blame] | 7 | /* target_phys_addr_t is the type of a physical address (its size can |
Paul Brook | 1ad2134 | 2009-05-19 16:17:58 +0100 | [diff] [blame] | 8 | be different from 'target_ulong'). We have sizeof(target_phys_addr) |
| 9 | = max(sizeof(unsigned long), |
| 10 | sizeof(size_of_target_physical_address)) because we must pass a |
| 11 | host pointer to memory operations in some cases */ |
| 12 | |
| 13 | #if TARGET_PHYS_ADDR_BITS == 32 |
Anthony Liguori | c227f09 | 2009-10-01 16:12:16 -0500 | [diff] [blame] | 14 | typedef uint32_t target_phys_addr_t; |
Jan Kiszka | 9fa0638 | 2009-05-22 23:51:45 +0200 | [diff] [blame] | 15 | #define TARGET_PHYS_ADDR_MAX UINT32_MAX |
Paul Brook | 1ad2134 | 2009-05-19 16:17:58 +0100 | [diff] [blame] | 16 | #define TARGET_FMT_plx "%08x" |
| 17 | #elif TARGET_PHYS_ADDR_BITS == 64 |
Anthony Liguori | c227f09 | 2009-10-01 16:12:16 -0500 | [diff] [blame] | 18 | typedef uint64_t target_phys_addr_t; |
Jan Kiszka | 9fa0638 | 2009-05-22 23:51:45 +0200 | [diff] [blame] | 19 | #define TARGET_PHYS_ADDR_MAX UINT64_MAX |
Paul Brook | 1ad2134 | 2009-05-19 16:17:58 +0100 | [diff] [blame] | 20 | #define TARGET_FMT_plx "%016" PRIx64 |
| 21 | #endif |
| 22 | #endif |
| 23 | |
| 24 | #endif |