blob: 4ab638cb94c7adc5570c342ff4398d40b899907d [file] [log] [blame]
khenaidoo5fc5cea2021-08-11 17:39:16 -04001// Copyright 2020 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:build zos && s390x
6// +build zos,s390x
7
8// Hand edited based on ztypes_linux_s390x.go
9// TODO: auto-generate.
10
11package unix
12
13const (
14 SizeofPtr = 0x8
15 SizeofShort = 0x2
16 SizeofInt = 0x4
17 SizeofLong = 0x8
18 SizeofLongLong = 0x8
19 PathMax = 0x1000
20)
21
22const (
23 SizeofSockaddrAny = 128
24 SizeofCmsghdr = 12
25 SizeofIPMreq = 8
26 SizeofIPv6Mreq = 20
27 SizeofICMPv6Filter = 32
28 SizeofIPv6MTUInfo = 32
29 SizeofLinger = 8
30 SizeofSockaddrInet4 = 16
31 SizeofSockaddrInet6 = 28
32 SizeofTCPInfo = 0x68
33)
34
35type (
36 _C_short int16
37 _C_int int32
38 _C_long int64
39 _C_long_long int64
40)
41
42type Timespec struct {
43 Sec int64
44 Nsec int64
45}
46
47type Timeval struct {
48 Sec int64
49 Usec int64
50}
51
52type timeval_zos struct { //correct (with padding and all)
53 Sec int64
54 _ [4]byte // pad
55 Usec int32
56}
57
58type Tms struct { //clock_t is 4-byte unsigned int in zos
59 Utime uint32
60 Stime uint32
61 Cutime uint32
62 Cstime uint32
63}
64
65type Time_t int64
66
67type Utimbuf struct {
68 Actime int64
69 Modtime int64
70}
71
72type Utsname struct {
73 Sysname [65]byte
74 Nodename [65]byte
75 Release [65]byte
76 Version [65]byte
77 Machine [65]byte
78 Domainname [65]byte
79}
80
81type RawSockaddrInet4 struct {
82 Len uint8
83 Family uint8
84 Port uint16
85 Addr [4]byte /* in_addr */
86 Zero [8]uint8
87}
88
89type RawSockaddrInet6 struct {
90 Len uint8
91 Family uint8
92 Port uint16
93 Flowinfo uint32
94 Addr [16]byte /* in6_addr */
95 Scope_id uint32
96}
97
98type RawSockaddrUnix struct {
99 Len uint8
100 Family uint8
101 Path [108]int8
102}
103
104type RawSockaddr struct {
105 Len uint8
106 Family uint8
107 Data [14]uint8
108}
109
110type RawSockaddrAny struct {
111 Addr RawSockaddr
112 _ [112]uint8 // pad
113}
114
115type _Socklen uint32
116
117type Linger struct {
118 Onoff int32
119 Linger int32
120}
121
122type Iovec struct {
123 Base *byte
124 Len uint64
125}
126
127type IPMreq struct {
128 Multiaddr [4]byte /* in_addr */
129 Interface [4]byte /* in_addr */
130}
131
132type IPv6Mreq struct {
133 Multiaddr [16]byte /* in6_addr */
134 Interface uint32
135}
136
137type Msghdr struct {
138 Name *byte
139 Iov *Iovec
140 Control *byte
141 Flags int32
142 Namelen int32
143 Iovlen int32
144 Controllen int32
145}
146
147type Cmsghdr struct {
148 Len int32
149 Level int32
150 Type int32
151}
152
153type Inet4Pktinfo struct {
154 Addr [4]byte /* in_addr */
155 Ifindex uint32
156}
157
158type Inet6Pktinfo struct {
159 Addr [16]byte /* in6_addr */
160 Ifindex uint32
161}
162
163type IPv6MTUInfo struct {
164 Addr RawSockaddrInet6
165 Mtu uint32
166}
167
168type ICMPv6Filter struct {
169 Data [8]uint32
170}
171
172type TCPInfo struct {
173 State uint8
174 Ca_state uint8
175 Retransmits uint8
176 Probes uint8
177 Backoff uint8
178 Options uint8
179 Rto uint32
180 Ato uint32
181 Snd_mss uint32
182 Rcv_mss uint32
183 Unacked uint32
184 Sacked uint32
185 Lost uint32
186 Retrans uint32
187 Fackets uint32
188 Last_data_sent uint32
189 Last_ack_sent uint32
190 Last_data_recv uint32
191 Last_ack_recv uint32
192 Pmtu uint32
193 Rcv_ssthresh uint32
194 Rtt uint32
195 Rttvar uint32
196 Snd_ssthresh uint32
197 Snd_cwnd uint32
198 Advmss uint32
199 Reordering uint32
200 Rcv_rtt uint32
201 Rcv_space uint32
202 Total_retrans uint32
203}
204
205type _Gid_t uint32
206
207type rusage_zos struct {
208 Utime timeval_zos
209 Stime timeval_zos
210}
211
212type Rusage struct {
213 Utime Timeval
214 Stime Timeval
215 Maxrss int64
216 Ixrss int64
217 Idrss int64
218 Isrss int64
219 Minflt int64
220 Majflt int64
221 Nswap int64
222 Inblock int64
223 Oublock int64
224 Msgsnd int64
225 Msgrcv int64
226 Nsignals int64
227 Nvcsw int64
228 Nivcsw int64
229}
230
231type Rlimit struct {
232 Cur uint64
233 Max uint64
234}
235
236// { int, short, short } in poll.h
237type PollFd struct {
238 Fd int32
239 Events int16
240 Revents int16
241}
242
243type Stat_t struct { //Linux Definition
244 Dev uint64
245 Ino uint64
246 Nlink uint64
247 Mode uint32
248 Uid uint32
249 Gid uint32
250 _ int32
251 Rdev uint64
252 Size int64
253 Atim Timespec
254 Mtim Timespec
255 Ctim Timespec
256 Blksize int64
257 Blocks int64
258 _ [3]int64
259}
260
261type Stat_LE_t struct {
262 _ [4]byte // eye catcher
263 Length uint16
264 Version uint16
265 Mode int32
266 Ino uint32
267 Dev uint32
268 Nlink int32
269 Uid int32
270 Gid int32
271 Size int64
272 Atim31 [4]byte
273 Mtim31 [4]byte
274 Ctim31 [4]byte
275 Rdev uint32
276 Auditoraudit uint32
277 Useraudit uint32
278 Blksize int32
279 Creatim31 [4]byte
280 AuditID [16]byte
281 _ [4]byte // rsrvd1
282 File_tag struct {
283 Ccsid uint16
284 Txtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14
285 }
286 CharsetID [8]byte
287 Blocks int64
288 Genvalue uint32
289 Reftim31 [4]byte
290 Fid [8]byte
291 Filefmt byte
292 Fspflag2 byte
293 _ [2]byte // rsrvd2
294 Ctimemsec int32
295 Seclabel [8]byte
296 _ [4]byte // rsrvd3
297 _ [4]byte // rsrvd4
298 Atim Time_t
299 Mtim Time_t
300 Ctim Time_t
301 Creatim Time_t
302 Reftim Time_t
303 _ [24]byte // rsrvd5
304}
305
306type Statvfs_t struct {
307 ID [4]byte
308 Len int32
309 Bsize uint64
310 Blocks uint64
311 Usedspace uint64
312 Bavail uint64
313 Flag uint64
314 Maxfilesize int64
315 _ [16]byte
316 Frsize uint64
317 Bfree uint64
318 Files uint32
319 Ffree uint32
320 Favail uint32
321 Namemax31 uint32
322 Invarsec uint32
323 _ [4]byte
324 Fsid uint64
325 Namemax uint64
326}
327
328type Statfs_t struct {
329 Type uint32
330 Bsize uint64
331 Blocks uint64
332 Bfree uint64
333 Bavail uint64
334 Files uint32
335 Ffree uint32
336 Fsid uint64
337 Namelen uint64
338 Frsize uint64
339 Flags uint64
340}
341
342type Dirent struct {
343 Reclen uint16
344 Namlen uint16
345 Ino uint32
346 Extra uintptr
347 Name [256]byte
348}
349
350type FdSet struct {
351 Bits [64]int32
352}
353
354// This struct is packed on z/OS so it can't be used directly.
355type Flock_t struct {
356 Type int16
357 Whence int16
358 Start int64
359 Len int64
360 Pid int32
361}
362
363type Termios struct {
364 Cflag uint32
365 Iflag uint32
366 Lflag uint32
367 Oflag uint32
368 Cc [11]uint8
369}
370
371type Winsize struct {
372 Row uint16
373 Col uint16
374 Xpixel uint16
375 Ypixel uint16
376}
377
378type W_Mnth struct {
379 Hid [4]byte
380 Size int32
381 Cur1 int32 //32bit pointer
382 Cur2 int32 //^
383 Devno uint32
384 _ [4]byte
385}
386
387type W_Mntent struct {
388 Fstype uint32
389 Mode uint32
390 Dev uint32
391 Parentdev uint32
392 Rootino uint32
393 Status byte
394 Ddname [9]byte
395 Fstname [9]byte
396 Fsname [45]byte
397 Pathlen uint32
398 Mountpoint [1024]byte
399 Jobname [8]byte
400 PID int32
401 Parmoffset int32
402 Parmlen int16
403 Owner [8]byte
404 Quiesceowner [8]byte
405 _ [38]byte
406}