| 1 | /* |
| 2 | * QEMU abi_ptr type definitions |
| 3 | * |
| 4 | * SPDX-License-Identifier: LGPL-2.1-or-later |
| 5 | */ |
| 6 | #ifndef EXEC_ABI_PTR_H |
| 7 | #define EXEC_ABI_PTR_H |
| 8 | |
| 9 | #include "cpu-param.h" |
| 10 | |
| 11 | #if defined(CONFIG_USER_ONLY) |
| 12 | /* |
| 13 | * sparc32plus has 64bit long but 32bit space address |
| 14 | * this can make bad result with g2h() and h2g() |
| 15 | */ |
| 16 | #if TARGET_VIRT_ADDR_SPACE_BITS <= 32 |
| 17 | typedef uint32_t abi_ptr; |
| 18 | #define TARGET_ABI_FMT_ptr "%x" |
| 19 | #else |
| 20 | typedef uint64_t abi_ptr; |
| 21 | #define TARGET_ABI_FMT_ptr "%"PRIx64 |
| 22 | #endif |
| 23 | |
| 24 | #else /* !CONFIG_USER_ONLY */ |
| 25 | |
| 26 | #include "exec/target_long.h" |
| 27 | |
| 28 | typedef target_ulong abi_ptr; |
| 29 | #define TARGET_ABI_FMT_ptr TARGET_FMT_lx |
| 30 | |
| 31 | #endif /* !CONFIG_USER_ONLY */ |
| 32 | |
| 33 | #endif |