13622634bSMarkus Armbruster #ifndef S390X_TARGET_SYSCALL_H
23622634bSMarkus Armbruster #define S390X_TARGET_SYSCALL_H
3460c579fSLluís Vilanova 
4460c579fSLluís Vilanova /* this typedef defines how a Program Status Word looks like */
5460c579fSLluís Vilanova typedef struct {
6460c579fSLluís Vilanova     abi_ulong mask;
7460c579fSLluís Vilanova     abi_ulong addr;
8460c579fSLluís Vilanova } __attribute__ ((aligned(8))) target_psw_t;
9460c579fSLluís Vilanova 
10460c579fSLluís Vilanova /*
11460c579fSLluís Vilanova  * The pt_regs struct defines the way the registers are stored on
12460c579fSLluís Vilanova  * the stack during a system call.
13460c579fSLluís Vilanova  */
14460c579fSLluís Vilanova 
15460c579fSLluís Vilanova #define TARGET_NUM_GPRS        16
16460c579fSLluís Vilanova 
17460c579fSLluís Vilanova struct target_pt_regs {
18460c579fSLluís Vilanova     abi_ulong args[1];
19460c579fSLluís Vilanova     target_psw_t psw;
20460c579fSLluís Vilanova     abi_ulong gprs[TARGET_NUM_GPRS];
21460c579fSLluís Vilanova     abi_ulong orig_gpr2;
22460c579fSLluís Vilanova     unsigned short ilen;
23460c579fSLluís Vilanova     unsigned short trap;
24460c579fSLluís Vilanova };
25460c579fSLluís Vilanova 
26460c579fSLluís Vilanova #define UNAME_MACHINE "s390x"
27460c579fSLluís Vilanova #define UNAME_MINIMUM_RELEASE "2.6.32"
28460c579fSLluís Vilanova 
29460c579fSLluís Vilanova #define TARGET_CLONE_BACKWARDS2
30*02e5d7d7SFilip Bozuta #define TARGET_MCL_CURRENT 1
31*02e5d7d7SFilip Bozuta #define TARGET_MCL_FUTURE  2
32*02e5d7d7SFilip Bozuta #define TARGET_MCL_ONFAULT 4
33460c579fSLluís Vilanova 
343622634bSMarkus Armbruster #endif /* S390X_TARGET_SYSCALL_H */
35