xref: /qemu/linux-user/sparc/target_syscall.h (revision 02e5d7d78e423bf8b3ebb66ab36bdaa7e962312a)
13622634bSMarkus Armbruster #ifndef SPARC_TARGET_SYSCALL_H
23622634bSMarkus Armbruster #define SPARC_TARGET_SYSCALL_H
3460c579fSLluís Vilanova 
405623849SLaurent Vivier #include "target_errno.h"
505623849SLaurent Vivier 
67a3f1944Sbellard struct target_pt_regs {
7992f48a0Sblueswir1 	abi_ulong psr;
8992f48a0Sblueswir1 	abi_ulong pc;
9992f48a0Sblueswir1 	abi_ulong npc;
10992f48a0Sblueswir1 	abi_ulong y;
11992f48a0Sblueswir1 	abi_ulong u_regs[16];
127a3f1944Sbellard };
13cf720db3Sbellard 
149a93c152SLaurent Vivier #define UNAME_MACHINE "sparc"
15cbc14e6fSRiku Voipio #define UNAME_MINIMUM_RELEASE "2.6.32"
164ce6243dSPeter Maydell 
174ce6243dSPeter Maydell /* SPARC kernels don't define this in their Kconfig, but they have the
184ce6243dSPeter Maydell  * same ABI as if they did, implemented by sparc-specific code which fishes
194ce6243dSPeter Maydell  * directly in the u_regs() struct for half the parameters in sparc_do_fork()
204ce6243dSPeter Maydell  * and copy_thread().
214ce6243dSPeter Maydell  */
224ce6243dSPeter Maydell #define TARGET_CLONE_BACKWARDS
230903c8beSTom Musta #define TARGET_MINSIGSTKSZ      4096
24*02e5d7d7SFilip Bozuta #define TARGET_MCL_CURRENT 0x2000
25*02e5d7d7SFilip Bozuta #define TARGET_MCL_FUTURE  0x4000
26*02e5d7d7SFilip Bozuta #define TARGET_MCL_ONFAULT 0x8000
27460c579fSLluís Vilanova 
28ee8e7614SPeter Maydell /* For SPARC SHMLBA is determined at runtime in the kernel, and
29ee8e7614SPeter Maydell  * libc has to runtime-detect it using the hwcaps (see glibc
30ee8e7614SPeter Maydell  * sysdeps/unix/sysv/linux/sparc/getshmlba; we follow the same
31ee8e7614SPeter Maydell  * logic here, though we know we're not the sparc v9 64-bit case).
32ee8e7614SPeter Maydell  */
33ee8e7614SPeter Maydell #define TARGET_FORCE_SHMLBA
34ee8e7614SPeter Maydell 
35ee8e7614SPeter Maydell static inline abi_ulong target_shmlba(CPUSPARCState *env)
36ee8e7614SPeter Maydell {
37576e1c4cSIgor Mammedov     if (!(env->def.features & CPU_FEATURE_FLUSH)) {
38ee8e7614SPeter Maydell         return 64 * 1024;
39ee8e7614SPeter Maydell     } else {
40ee8e7614SPeter Maydell         return 256 * 1024;
41ee8e7614SPeter Maydell     }
42ee8e7614SPeter Maydell }
43ee8e7614SPeter Maydell 
443622634bSMarkus Armbruster #endif /* SPARC_TARGET_SYSCALL_H */
45