![Paul Brook](/assets/img/avatar_default.png)
The only target dependency for most hardware is sizeof(target_phys_addr_t). Build these files into a convenience library, and use that instead of building for every target. Remove and poison various target specific macros to avoid bogus target dependencies creeping back in. Big/Little endian is not handled because devices should not know or care about this to start with. Signed-off-by: Paul Brook <paul@codesourcery.com>
23 lines
640 B
C
23 lines
640 B
C
/* 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'). 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
|
|
typedef uint32_t target_phys_addr_t;
|
|
#define TARGET_FMT_plx "%08x"
|
|
#elif TARGET_PHYS_ADDR_BITS == 64
|
|
typedef uint64_t target_phys_addr_t;
|
|
#define TARGET_FMT_plx "%016" PRIx64
|
|
#endif
|
|
#endif
|
|
|
|
#endif
|