Skip to content

Commit 1509494

Browse files
Bobby Binghamrichfelker
authored andcommitted
add s390x port
1 parent 5448289 commit 1509494

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1393
-0
lines changed

arch/s390x/atomic_arch.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#define a_cas a_cas
2+
static inline int a_cas(volatile int *p, int t, int s)
3+
{
4+
__asm__ __volatile__ (
5+
"cs %0, %2, %1"
6+
: "+d"(t), "+Q"(*p) : "d"(s) : "memory", "cc");
7+
return t;
8+
}
9+
10+
#define a_cas_p a_cas_p
11+
static inline void *a_cas_p(volatile void *p, void *t, void *s)
12+
{
13+
__asm__ __volatile__ (
14+
"csg %0, %2, %1"
15+
: "+d"(t), "+Q"(*(void *volatile *)p) : "d"(s)
16+
: "memory", "cc");
17+
return t;
18+
}
19+
20+
#define a_barrier a_barrier
21+
static inline void a_barrier()
22+
{
23+
__asm__ __volatile__ ("bcr 15,0" : : : "memory");
24+
}
25+
26+
#define a_crash a_crash
27+
static inline void a_crash()
28+
{
29+
__asm__ __volatile__ (".insn e,0");
30+
}

arch/s390x/bits/alltypes.h.in

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#define _Addr long
2+
#define _Int64 long
3+
#define _Reg long
4+
5+
TYPEDEF __builtin_va_list va_list;
6+
TYPEDEF __builtin_va_list __isoc_va_list;
7+
8+
#ifndef __cplusplus
9+
TYPEDEF int wchar_t;
10+
#endif
11+
12+
TYPEDEF double float_t;
13+
TYPEDEF double double_t;
14+
15+
TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
16+
17+
TYPEDEF long time_t;
18+
TYPEDEF long suseconds_t;
19+
20+
TYPEDEF struct { union { int __i[14]; volatile int __vi[14]; unsigned long __s[7]; } __u; } pthread_attr_t;
21+
TYPEDEF struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } pthread_mutex_t;
22+
TYPEDEF struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } mtx_t;
23+
TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } pthread_cond_t;
24+
TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } cnd_t;
25+
TYPEDEF struct { union { int __i[14]; volatile int __vi[14]; void *__p[7]; } __u; } pthread_rwlock_t;
26+
TYPEDEF struct { union { int __i[8]; volatile int __vi[8]; void *__p[4]; } __u; } pthread_barrier_t;

arch/s390x/bits/endian.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#define __BYTE_ORDER __BIG_ENDIAN

arch/s390x/bits/fcntl.h

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#define O_CREAT 0100
2+
#define O_EXCL 0200
3+
#define O_NOCTTY 0400
4+
#define O_TRUNC 01000
5+
#define O_APPEND 02000
6+
#define O_NONBLOCK 04000
7+
#define O_DSYNC 010000
8+
#define O_SYNC 04010000
9+
#define O_RSYNC 04010000
10+
#define O_DIRECTORY 0200000
11+
#define O_NOFOLLOW 0400000
12+
#define O_CLOEXEC 02000000
13+
14+
#define O_ASYNC 020000
15+
#define O_DIRECT 040000
16+
#define O_LARGEFILE 0100000
17+
#define O_NOATIME 01000000
18+
#define O_PATH 010000000
19+
#define O_TMPFILE 020200000
20+
#define O_NDELAY O_NONBLOCK
21+
22+
#define F_DUPFD 0
23+
#define F_GETFD 1
24+
#define F_SETFD 2
25+
#define F_GETFL 3
26+
#define F_SETFL 4
27+
28+
#define F_GETLK 5
29+
#define F_SETLK 6
30+
#define F_SETLKW 7
31+
32+
#define F_SETOWN 8
33+
#define F_GETOWN 9
34+
#define F_SETSIG 10
35+
#define F_GETSIG 11
36+
37+
#define F_SETOWN_EX 15
38+
#define F_GETOWN_EX 16
39+
40+
#define F_GETOWNER_UIDS 17

arch/s390x/bits/fenv.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#define FE_TONEAREST 0
2+
#define FE_TOWARDZERO 1
3+
#define FE_UPWARD 2
4+
#define FE_DOWNWARD 3
5+
6+
#define FE_INEXACT 0x00080000
7+
#define FE_UNDERFLOW 0x00100000
8+
#define FE_OVERFLOW 0x00200000
9+
#define FE_DIVBYZERO 0x00400000
10+
#define FE_INVALID 0x00800000
11+
12+
#define FE_ALL_EXCEPT 0x00f80000
13+
14+
typedef unsigned fexcept_t;
15+
typedef unsigned fenv_t;
16+
17+
#define FE_DFL_ENV ((const fenv_t *)-1)

arch/s390x/bits/float.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#define FLT_EVAL_METHOD 1
2+
3+
#define LDBL_TRUE_MIN 6.47517511943802511092443895822764655e-4966L
4+
#define LDBL_MIN 3.36210314311209350626267781732175260e-4932L
5+
#define LDBL_MAX 1.18973149535723176508575932662800702e+4932L
6+
#define LDBL_EPSILON 1.92592994438723585305597794258492732e-34L
7+
8+
#define LDBL_MANT_DIG 113
9+
#define LDBL_MIN_EXP (-16381)
10+
#define LDBL_MAX_EXP 16384
11+
12+
#define LDBL_DIG 33
13+
#define LDBL_MIN_10_EXP (-4931)
14+
#define LDBL_MAX_10_EXP 4932
15+
16+
#define DECIMAL_DIG 36

arch/s390x/bits/ioctl.h

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
2+
#define _IOC_NONE 0U
3+
#define _IOC_WRITE 1U
4+
#define _IOC_READ 2U
5+
6+
#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
7+
#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
8+
#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
9+
#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
10+
11+
#define TCGETS 0x5401
12+
#define TCSETS 0x5402
13+
#define TCSETSW 0x5403
14+
#define TCSETSF 0x5404
15+
#define TCGETA 0x5405
16+
#define TCSETA 0x5406
17+
#define TCSETAW 0x5407
18+
#define TCSETAF 0x5408
19+
#define TCSBRK 0x5409
20+
#define TCXONC 0x540A
21+
#define TCFLSH 0x540B
22+
#define TIOCEXCL 0x540C
23+
#define TIOCNXCL 0x540D
24+
#define TIOCSCTTY 0x540E
25+
#define TIOCGPGRP 0x540F
26+
#define TIOCSPGRP 0x5410
27+
#define TIOCOUTQ 0x5411
28+
#define TIOCSTI 0x5412
29+
#define TIOCGWINSZ 0x5413
30+
#define TIOCSWINSZ 0x5414
31+
#define TIOCMGET 0x5415
32+
#define TIOCMBIS 0x5416
33+
#define TIOCMBIC 0x5417
34+
#define TIOCMSET 0x5418
35+
#define TIOCGSOFTCAR 0x5419
36+
#define TIOCSSOFTCAR 0x541A
37+
#define FIONREAD 0x541B
38+
#define TIOCINQ FIONREAD
39+
#define TIOCLINUX 0x541C
40+
#define TIOCCONS 0x541D
41+
#define TIOCGSERIAL 0x541E
42+
#define TIOCSSERIAL 0x541F
43+
#define TIOCPKT 0x5420
44+
#define FIONBIO 0x5421
45+
#define TIOCNOTTY 0x5422
46+
#define TIOCSETD 0x5423
47+
#define TIOCGETD 0x5424
48+
#define TCSBRKP 0x5425
49+
#define TIOCTTYGSTRUCT 0x5426
50+
#define TIOCSBRK 0x5427
51+
#define TIOCCBRK 0x5428
52+
#define TIOCGSID 0x5429
53+
#define TIOCGPTN 0x80045430
54+
#define TIOCSPTLCK 0x40045431
55+
#define TCGETX 0x5432
56+
#define TCSETX 0x5433
57+
#define TCSETXF 0x5434
58+
#define TCSETXW 0x5435
59+
60+
#define FIONCLEX 0x5450
61+
#define FIOCLEX 0x5451
62+
#define FIOASYNC 0x5452
63+
#define TIOCSERCONFIG 0x5453
64+
#define TIOCSERGWILD 0x5454
65+
#define TIOCSERSWILD 0x5455
66+
#define TIOCGLCKTRMIOS 0x5456
67+
#define TIOCSLCKTRMIOS 0x5457
68+
#define TIOCSERGSTRUCT 0x5458
69+
#define TIOCSERGETLSR 0x5459
70+
#define TIOCSERGETMULTI 0x545A
71+
#define TIOCSERSETMULTI 0x545B
72+
73+
#define TIOCMIWAIT 0x545C
74+
#define TIOCGICOUNT 0x545D
75+
#define FIOQSIZE 0x545E
76+
77+
#define TIOCPKT_DATA 0
78+
#define TIOCPKT_FLUSHREAD 1
79+
#define TIOCPKT_FLUSHWRITE 2
80+
#define TIOCPKT_STOP 4
81+
#define TIOCPKT_START 8
82+
#define TIOCPKT_NOSTOP 16
83+
#define TIOCPKT_DOSTOP 32
84+
#define TIOCPKT_IOCTL 64
85+
86+
#define TIOCSER_TEMT 0x01
87+
88+
struct winsize {
89+
unsigned short ws_row;
90+
unsigned short ws_col;
91+
unsigned short ws_xpixel;
92+
unsigned short ws_ypixel;
93+
};
94+
95+
#define TIOCM_LE 0x001
96+
#define TIOCM_DTR 0x002
97+
#define TIOCM_RTS 0x004
98+
#define TIOCM_ST 0x008
99+
#define TIOCM_SR 0x010
100+
#define TIOCM_CTS 0x020
101+
#define TIOCM_CAR 0x040
102+
#define TIOCM_RNG 0x080
103+
#define TIOCM_DSR 0x100
104+
#define TIOCM_CD TIOCM_CAR
105+
#define TIOCM_RI TIOCM_RNG
106+
#define TIOCM_OUT1 0x2000
107+
#define TIOCM_OUT2 0x4000
108+
#define TIOCM_LOOP 0x8000
109+
#define TIOCM_MODEM_BITS TIOCM_OUT2
110+
111+
#define N_TTY 0
112+
#define N_SLIP 1
113+
#define N_MOUSE 2
114+
#define N_PPP 3
115+
#define N_STRIP 4
116+
#define N_AX25 5
117+
#define N_X25 6
118+
#define N_6PACK 7
119+
#define N_MASC 8
120+
#define N_R3964 9
121+
#define N_PROFIBUS_FDL 10
122+
#define N_IRDA 11
123+
#define N_SMSBLOCK 12
124+
#define N_HDLC 13
125+
#define N_SYNC_PPP 14
126+
#define N_HCI 15
127+
128+
#define FIOSETOWN 0x8901
129+
#define SIOCSPGRP 0x8902
130+
#define FIOGETOWN 0x8903
131+
#define SIOCGPGRP 0x8904
132+
#define SIOCATMARK 0x8905
133+
#define SIOCGSTAMP 0x8906
134+
135+
#define SIOCADDRT 0x890B
136+
#define SIOCDELRT 0x890C
137+
#define SIOCRTMSG 0x890D
138+
139+
#define SIOCGIFNAME 0x8910
140+
#define SIOCSIFLINK 0x8911
141+
#define SIOCGIFCONF 0x8912
142+
#define SIOCGIFFLAGS 0x8913
143+
#define SIOCSIFFLAGS 0x8914
144+
#define SIOCGIFADDR 0x8915
145+
#define SIOCSIFADDR 0x8916
146+
#define SIOCGIFDSTADDR 0x8917
147+
#define SIOCSIFDSTADDR 0x8918
148+
#define SIOCGIFBRDADDR 0x8919
149+
#define SIOCSIFBRDADDR 0x891a
150+
#define SIOCGIFNETMASK 0x891b
151+
#define SIOCSIFNETMASK 0x891c
152+
#define SIOCGIFMETRIC 0x891d
153+
#define SIOCSIFMETRIC 0x891e
154+
#define SIOCGIFMEM 0x891f
155+
#define SIOCSIFMEM 0x8920
156+
#define SIOCGIFMTU 0x8921
157+
#define SIOCSIFMTU 0x8922
158+
#define SIOCSIFHWADDR 0x8924
159+
#define SIOCGIFENCAP 0x8925
160+
#define SIOCSIFENCAP 0x8926
161+
#define SIOCGIFHWADDR 0x8927
162+
#define SIOCGIFSLAVE 0x8929
163+
#define SIOCSIFSLAVE 0x8930
164+
#define SIOCADDMULTI 0x8931
165+
#define SIOCDELMULTI 0x8932
166+
#define SIOCGIFINDEX 0x8933
167+
#define SIOGIFINDEX SIOCGIFINDEX
168+
#define SIOCSIFPFLAGS 0x8934
169+
#define SIOCGIFPFLAGS 0x8935
170+
#define SIOCDIFADDR 0x8936
171+
#define SIOCSIFHWBROADCAST 0x8937
172+
#define SIOCGIFCOUNT 0x8938
173+
174+
#define SIOCGIFBR 0x8940
175+
#define SIOCSIFBR 0x8941
176+
177+
#define SIOCGIFTXQLEN 0x8942
178+
#define SIOCSIFTXQLEN 0x8943
179+
180+
#define SIOCDARP 0x8953
181+
#define SIOCGARP 0x8954
182+
#define SIOCSARP 0x8955
183+
184+
#define SIOCDRARP 0x8960
185+
#define SIOCGRARP 0x8961
186+
#define SIOCSRARP 0x8962
187+
188+
#define SIOCGIFMAP 0x8970
189+
#define SIOCSIFMAP 0x8971
190+
191+
#define SIOCADDDLCI 0x8980
192+
#define SIOCDELDLCI 0x8981
193+
194+
#define SIOCDEVPRIVATE 0x89F0
195+
#define SIOCPROTOPRIVATE 0x89E0

arch/s390x/bits/ipc.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
struct ipc_perm {
2+
key_t __ipc_perm_key;
3+
uid_t uid;
4+
gid_t gid;
5+
uid_t cuid;
6+
gid_t cgid;
7+
mode_t mode;
8+
unsigned short __pad1;
9+
unsigned short __ipc_perm_seq;
10+
unsigned long __pad2;
11+
unsigned long __pad3;
12+
};
13+
14+
#define IPC_64 0x100

arch/s390x/bits/limits.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
2+
|| defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
3+
#define PAGE_SIZE 4096
4+
#define LONG_BIT 64
5+
#endif
6+
7+
#define LONG_MAX 0x7fffffffffffffffL
8+
#define LLONG_MAX 0x7fffffffffffffffLL

arch/s390x/bits/link.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
typedef uint64_t Elf_Symndx;

0 commit comments

Comments
 (0)