xref: /qemu/linux-user/sparc/target_syscall.h (revision 9a93c152fcdb4ab2cd85094487b33578fd693915)
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 
14*9a93c152SLaurent 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
246f6a4032STom Musta #define TARGET_MLOCKALL_MCL_CURRENT 0x2000
256f6a4032STom Musta #define TARGET_MLOCKALL_MCL_FUTURE  0x4000
26460c579fSLluís Vilanova 
27ee8e7614SPeter Maydell /* For SPARC SHMLBA is determined at runtime in the kernel, and
28ee8e7614SPeter Maydell  * libc has to runtime-detect it using the hwcaps (see glibc
29ee8e7614SPeter Maydell  * sysdeps/unix/sysv/linux/sparc/getshmlba; we follow the same
30ee8e7614SPeter Maydell  * logic here, though we know we're not the sparc v9 64-bit case).
31ee8e7614SPeter Maydell  */
32ee8e7614SPeter Maydell #define TARGET_FORCE_SHMLBA
33ee8e7614SPeter Maydell 
34ee8e7614SPeter Maydell static inline abi_ulong target_shmlba(CPUSPARCState *env)
35ee8e7614SPeter Maydell {
36576e1c4cSIgor Mammedov     if (!(env->def.features & CPU_FEATURE_FLUSH)) {
37ee8e7614SPeter Maydell         return 64 * 1024;
38ee8e7614SPeter Maydell     } else {
39ee8e7614SPeter Maydell         return 256 * 1024;
40ee8e7614SPeter Maydell     }
41ee8e7614SPeter Maydell }
42ee8e7614SPeter Maydell 
433622634bSMarkus Armbruster #endif /* SPARC_TARGET_SYSCALL_H */
44