The #defines of ARM_cpsr and friends in linux-user/arm/target-syscall.h can clash with versions in the system headers if building on an ARM or AArch64 build (though this seems to be dependent on the version of the system headers). The QEMU defines are not very useful (it's not clear that they're intended for use with the target_pt_regs struct rather than (say) the CPUARMState structure) and we only use them in one function in elfload.c anyway. So just remove the #defines and directly access regs->uregs[]. Reported-by: Christopher Covington <cov@codeaurora.org> Tested-by: Christopher Covington <cov@codeaurora.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
37 lines
905 B
C
37 lines
905 B
C
#ifndef TARGET_SYSCALL_H
|
|
#define TARGET_SYSCALL_H
|
|
|
|
/* this struct defines the way the registers are stored on the
|
|
stack during a system call. */
|
|
|
|
/* uregs[0..15] are r0 to r15; uregs[16] is CPSR; uregs[17] is ORIG_r0 */
|
|
struct target_pt_regs {
|
|
abi_long uregs[18];
|
|
};
|
|
|
|
#define ARM_SYSCALL_BASE 0x900000
|
|
#define ARM_THUMB_SYSCALL 0
|
|
|
|
#define ARM_NR_BASE 0xf0000
|
|
#define ARM_NR_breakpoint (ARM_NR_BASE + 1)
|
|
#define ARM_NR_cacheflush (ARM_NR_BASE + 2)
|
|
#define ARM_NR_set_tls (ARM_NR_BASE + 5)
|
|
|
|
#define ARM_NR_semihosting 0x123456
|
|
#define ARM_NR_thumb_semihosting 0xAB
|
|
|
|
#if defined(TARGET_WORDS_BIGENDIAN)
|
|
#define UNAME_MACHINE "armv5teb"
|
|
#else
|
|
#define UNAME_MACHINE "armv5tel"
|
|
#endif
|
|
#define UNAME_MINIMUM_RELEASE "2.6.32"
|
|
|
|
#define TARGET_CLONE_BACKWARDS
|
|
|
|
#define TARGET_MINSIGSTKSZ 2048
|
|
#define TARGET_MLOCKALL_MCL_CURRENT 1
|
|
#define TARGET_MLOCKALL_MCL_FUTURE 2
|
|
|
|
#endif /* TARGET_SYSCALL_H */
|