qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

target_syscall.h (1440B)


      1 #ifndef SPARC_TARGET_SYSCALL_H
      2 #define SPARC_TARGET_SYSCALL_H
      3 
      4 #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
      5 struct target_pt_regs {
      6     abi_ulong u_regs[16];
      7     abi_ulong tstate;
      8     abi_ulong pc;
      9     abi_ulong npc;
     10     uint32_t y;
     11     uint32_t magic;
     12 };
     13 #else
     14 struct target_pt_regs {
     15     abi_ulong psr;
     16     abi_ulong pc;
     17     abi_ulong npc;
     18     abi_ulong y;
     19     abi_ulong u_regs[16];
     20 };
     21 #endif
     22 
     23 #ifdef TARGET_SPARC64
     24 # define UNAME_MACHINE "sparc64"
     25 #else
     26 # define UNAME_MACHINE "sparc"
     27 #endif
     28 #define UNAME_MINIMUM_RELEASE "2.6.32"
     29 
     30 /*
     31  * SPARC kernels don't define this in their Kconfig, but they have the
     32  * same ABI as if they did, implemented by sparc-specific code which fishes
     33  * directly in the u_regs() struct for half the parameters in sparc_do_fork()
     34  * and copy_thread().
     35  */
     36 #define TARGET_CLONE_BACKWARDS
     37 #define TARGET_MCL_CURRENT 0x2000
     38 #define TARGET_MCL_FUTURE  0x4000
     39 #define TARGET_MCL_ONFAULT 0x8000
     40 
     41 /*
     42  * For SPARC SHMLBA is determined at runtime in the kernel, and
     43  * libc has to runtime-detect it using the hwcaps.
     44  * See glibc sysdeps/unix/sysv/linux/sparc/getshmlba.
     45  */
     46 #define TARGET_FORCE_SHMLBA
     47 
     48 static inline abi_ulong target_shmlba(CPUSPARCState *env)
     49 {
     50 #ifdef TARGET_SPARC64
     51     return MAX(TARGET_PAGE_SIZE, 16 * 1024);
     52 #else
     53     if (!(env->def.features & CPU_FEATURE_FLUSH)) {
     54         return 64 * 1024;
     55     } else {
     56         return 256 * 1024;
     57     }
     58 #endif
     59 }
     60 
     61 #endif /* SPARC_TARGET_SYSCALL_H */