qemu/linux-user/sparc/target_syscall.h
<<
>>
Prefs
   1#ifndef SPARC_TARGET_SYSCALL_H
   2#define SPARC_TARGET_SYSCALL_H
   3
   4#include "target_errno.h"
   5
   6struct target_pt_regs {
   7        abi_ulong psr;
   8        abi_ulong pc;
   9        abi_ulong npc;
  10        abi_ulong y;
  11        abi_ulong u_regs[16];
  12};
  13
  14#define UNAME_MACHINE "sparc"
  15#define UNAME_MINIMUM_RELEASE "2.6.32"
  16
  17/* SPARC kernels don't define this in their Kconfig, but they have the
  18 * same ABI as if they did, implemented by sparc-specific code which fishes
  19 * directly in the u_regs() struct for half the parameters in sparc_do_fork()
  20 * and copy_thread().
  21 */
  22#define TARGET_CLONE_BACKWARDS
  23#define TARGET_MINSIGSTKSZ      4096
  24#define TARGET_MLOCKALL_MCL_CURRENT 0x2000
  25#define TARGET_MLOCKALL_MCL_FUTURE  0x4000
  26
  27/* For SPARC SHMLBA is determined at runtime in the kernel, and
  28 * libc has to runtime-detect it using the hwcaps (see glibc
  29 * sysdeps/unix/sysv/linux/sparc/getshmlba; we follow the same
  30 * logic here, though we know we're not the sparc v9 64-bit case).
  31 */
  32#define TARGET_FORCE_SHMLBA
  33
  34static inline abi_ulong target_shmlba(CPUSPARCState *env)
  35{
  36    if (!(env->def.features & CPU_FEATURE_FLUSH)) {
  37        return 64 * 1024;
  38    } else {
  39        return 256 * 1024;
  40    }
  41}
  42
  43#endif /* SPARC_TARGET_SYSCALL_H */
  44