xref: /qemu/linux-user/sparc/target_syscall.h (revision ee8e76141b4dd00f8e97fda274876a17f9a46bbe)
13622634bSMarkus Armbruster #ifndef SPARC_TARGET_SYSCALL_H
23622634bSMarkus Armbruster #define SPARC_TARGET_SYSCALL_H
3460c579fSLluís Vilanova 
47a3f1944Sbellard struct target_pt_regs {
5992f48a0Sblueswir1 	abi_ulong psr;
6992f48a0Sblueswir1 	abi_ulong pc;
7992f48a0Sblueswir1 	abi_ulong npc;
8992f48a0Sblueswir1 	abi_ulong y;
9992f48a0Sblueswir1 	abi_ulong u_regs[16];
107a3f1944Sbellard };
11cf720db3Sbellard 
12cf720db3Sbellard #define UNAME_MACHINE "sun4"
13cbc14e6fSRiku Voipio #define UNAME_MINIMUM_RELEASE "2.6.32"
144ce6243dSPeter Maydell 
154ce6243dSPeter Maydell /* SPARC kernels don't define this in their Kconfig, but they have the
164ce6243dSPeter Maydell  * same ABI as if they did, implemented by sparc-specific code which fishes
174ce6243dSPeter Maydell  * directly in the u_regs() struct for half the parameters in sparc_do_fork()
184ce6243dSPeter Maydell  * and copy_thread().
194ce6243dSPeter Maydell  */
204ce6243dSPeter Maydell #define TARGET_CLONE_BACKWARDS
210903c8beSTom Musta #define TARGET_MINSIGSTKSZ      4096
226f6a4032STom Musta #define TARGET_MLOCKALL_MCL_CURRENT 0x2000
236f6a4032STom Musta #define TARGET_MLOCKALL_MCL_FUTURE  0x4000
24460c579fSLluís Vilanova 
25*ee8e7614SPeter Maydell /* For SPARC SHMLBA is determined at runtime in the kernel, and
26*ee8e7614SPeter Maydell  * libc has to runtime-detect it using the hwcaps (see glibc
27*ee8e7614SPeter Maydell  * sysdeps/unix/sysv/linux/sparc/getshmlba; we follow the same
28*ee8e7614SPeter Maydell  * logic here, though we know we're not the sparc v9 64-bit case).
29*ee8e7614SPeter Maydell  */
30*ee8e7614SPeter Maydell #define TARGET_FORCE_SHMLBA
31*ee8e7614SPeter Maydell 
32*ee8e7614SPeter Maydell static inline abi_ulong target_shmlba(CPUSPARCState *env)
33*ee8e7614SPeter Maydell {
34*ee8e7614SPeter Maydell     if (!(env->def->features & CPU_FEATURE_FLUSH)) {
35*ee8e7614SPeter Maydell         return 64 * 1024;
36*ee8e7614SPeter Maydell     } else {
37*ee8e7614SPeter Maydell         return 256 * 1024;
38*ee8e7614SPeter Maydell     }
39*ee8e7614SPeter Maydell }
40*ee8e7614SPeter Maydell 
413622634bSMarkus Armbruster #endif /* SPARC_TARGET_SYSCALL_H */
42