2009-10-02 02:20:47 +08:00
|
|
|
/* Define a_target_phys_addr if it exists. */
|
2009-05-19 23:17:58 +08:00
|
|
|
|
|
|
|
#ifndef TARGPHYS_H
|
|
|
|
#define TARGPHYS_H
|
|
|
|
|
|
|
|
#ifdef TARGET_PHYS_ADDR_BITS
|
2009-10-02 02:20:47 +08:00
|
|
|
/* a_target_phys_addr is the type of a physical address (its size can
|
2009-05-19 23:17:58 +08:00
|
|
|
be different from 'target_ulong'). We have sizeof(target_phys_addr)
|
|
|
|
= max(sizeof(unsigned long),
|
|
|
|
sizeof(size_of_target_physical_address)) because we must pass a
|
|
|
|
host pointer to memory operations in some cases */
|
|
|
|
|
|
|
|
#if TARGET_PHYS_ADDR_BITS == 32
|
2009-10-02 02:20:47 +08:00
|
|
|
typedef uint32_t a_target_phys_addr;
|
2009-05-23 05:51:45 +08:00
|
|
|
#define TARGET_PHYS_ADDR_MAX UINT32_MAX
|
2009-05-19 23:17:58 +08:00
|
|
|
#define TARGET_FMT_plx "%08x"
|
|
|
|
#elif TARGET_PHYS_ADDR_BITS == 64
|
2009-10-02 02:20:47 +08:00
|
|
|
typedef uint64_t a_target_phys_addr;
|
2009-05-23 05:51:45 +08:00
|
|
|
#define TARGET_PHYS_ADDR_MAX UINT64_MAX
|
2009-05-19 23:17:58 +08:00
|
|
|
#define TARGET_FMT_plx "%016" PRIx64
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|