1// 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
7// Hand edited based on zerrors_linux_s390x.go
8// TODO: auto-generate.
9
10package unix
11
12const (
13	BRKINT                   = 0x0001
14	CLOCAL                   = 0x1
15	CLOCK_MONOTONIC          = 0x1
16	CLOCK_PROCESS_CPUTIME_ID = 0x2
17	CLOCK_REALTIME           = 0x0
18	CLOCK_THREAD_CPUTIME_ID  = 0x3
19	CLONE_NEWIPC             = 0x08000000
20	CLONE_NEWNET             = 0x40000000
21	CLONE_NEWNS              = 0x00020000
22	CLONE_NEWPID             = 0x20000000
23	CLONE_NEWUTS             = 0x04000000
24	CLONE_PARENT             = 0x00008000
25	CS8                      = 0x0030
26	CSIZE                    = 0x0030
27	ECHO                     = 0x00000008
28	ECHONL                   = 0x00000001
29	EFD_SEMAPHORE            = 0x00002000
30	EFD_CLOEXEC              = 0x00001000
31	EFD_NONBLOCK             = 0x00000004
32	EPOLL_CLOEXEC            = 0x00001000
33	EPOLL_CTL_ADD            = 0
34	EPOLL_CTL_MOD            = 1
35	EPOLL_CTL_DEL            = 2
36	EPOLLRDNORM              = 0x0001
37	EPOLLRDBAND              = 0x0002
38	EPOLLIN                  = 0x0003
39	EPOLLOUT                 = 0x0004
40	EPOLLWRBAND              = 0x0008
41	EPOLLPRI                 = 0x0010
42	EPOLLERR                 = 0x0020
43	EPOLLHUP                 = 0x0040
44	EPOLLEXCLUSIVE           = 0x20000000
45	EPOLLONESHOT             = 0x40000000
46	FD_CLOEXEC               = 0x01
47	FD_CLOFORK               = 0x02
48	FD_SETSIZE               = 0x800
49	FNDELAY                  = 0x04
50	F_CLOSFD                 = 9
51	F_CONTROL_CVT            = 13
52	F_DUPFD                  = 0
53	F_DUPFD2                 = 8
54	F_GETFD                  = 1
55	F_GETFL                  = 259
56	F_GETLK                  = 5
57	F_GETOWN                 = 10
58	F_OK                     = 0x0
59	F_RDLCK                  = 1
60	F_SETFD                  = 2
61	F_SETFL                  = 4
62	F_SETLK                  = 6
63	F_SETLKW                 = 7
64	F_SETOWN                 = 11
65	F_SETTAG                 = 12
66	F_UNLCK                  = 3
67	F_WRLCK                  = 2
68	FSTYPE_ZFS               = 0xe9 //"Z"
69	FSTYPE_HFS               = 0xc8 //"H"
70	FSTYPE_NFS               = 0xd5 //"N"
71	FSTYPE_TFS               = 0xe3 //"T"
72	FSTYPE_AUTOMOUNT         = 0xc1 //"A"
73	GRND_NONBLOCK            = 1
74	GRND_RANDOM              = 2
75	HUPCL                    = 0x0100 // Hang up on last close
76	IN_CLOEXEC               = 0x00001000
77	IN_NONBLOCK              = 0x00000004
78	IN_ACCESS                = 0x00000001
79	IN_MODIFY                = 0x00000002
80	IN_ATTRIB                = 0x00000004
81	IN_CLOSE_WRITE           = 0x00000008
82	IN_CLOSE_NOWRITE         = 0x00000010
83	IN_OPEN                  = 0x00000020
84	IN_MOVED_FROM            = 0x00000040
85	IN_MOVED_TO              = 0x00000080
86	IN_CREATE                = 0x00000100
87	IN_DELETE                = 0x00000200
88	IN_DELETE_SELF           = 0x00000400
89	IN_MOVE_SELF             = 0x00000800
90	IN_UNMOUNT               = 0x00002000
91	IN_Q_OVERFLOW            = 0x00004000
92	IN_IGNORED               = 0x00008000
93	IN_CLOSE                 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
94	IN_MOVE                  = (IN_MOVED_FROM | IN_MOVED_TO)
95	IN_ALL_EVENTS            = (IN_ACCESS | IN_MODIFY | IN_ATTRIB |
96		IN_CLOSE | IN_OPEN | IN_MOVE |
97		IN_CREATE | IN_DELETE | IN_DELETE_SELF |
98		IN_MOVE_SELF)
99	IN_ONLYDIR                      = 0x01000000
100	IN_DONT_FOLLOW                  = 0x02000000
101	IN_EXCL_UNLINK                  = 0x04000000
102	IN_MASK_CREATE                  = 0x10000000
103	IN_MASK_ADD                     = 0x20000000
104	IN_ISDIR                        = 0x40000000
105	IN_ONESHOT                      = 0x80000000
106	IP6F_MORE_FRAG                  = 0x0001
107	IP6F_OFF_MASK                   = 0xfff8
108	IP6F_RESERVED_MASK              = 0x0006
109	IP6OPT_JUMBO                    = 0xc2
110	IP6OPT_JUMBO_LEN                = 6
111	IP6OPT_MUTABLE                  = 0x20
112	IP6OPT_NSAP_ADDR                = 0xc3
113	IP6OPT_PAD1                     = 0x00
114	IP6OPT_PADN                     = 0x01
115	IP6OPT_ROUTER_ALERT             = 0x05
116	IP6OPT_TUNNEL_LIMIT             = 0x04
117	IP6OPT_TYPE_DISCARD             = 0x40
118	IP6OPT_TYPE_FORCEICMP           = 0x80
119	IP6OPT_TYPE_ICMP                = 0xc0
120	IP6OPT_TYPE_SKIP                = 0x00
121	IP6_ALERT_AN                    = 0x0002
122	IP6_ALERT_MLD                   = 0x0000
123	IP6_ALERT_RSVP                  = 0x0001
124	IPPORT_RESERVED                 = 1024
125	IPPORT_USERRESERVED             = 5000
126	IPPROTO_AH                      = 51
127	SOL_AH                          = 51
128	IPPROTO_DSTOPTS                 = 60
129	SOL_DSTOPTS                     = 60
130	IPPROTO_EGP                     = 8
131	SOL_EGP                         = 8
132	IPPROTO_ESP                     = 50
133	SOL_ESP                         = 50
134	IPPROTO_FRAGMENT                = 44
135	SOL_FRAGMENT                    = 44
136	IPPROTO_GGP                     = 2
137	SOL_GGP                         = 2
138	IPPROTO_HOPOPTS                 = 0
139	SOL_HOPOPTS                     = 0
140	IPPROTO_ICMP                    = 1
141	SOL_ICMP                        = 1
142	IPPROTO_ICMPV6                  = 58
143	SOL_ICMPV6                      = 58
144	IPPROTO_IDP                     = 22
145	SOL_IDP                         = 22
146	IPPROTO_IP                      = 0
147	SOL_IP                          = 0
148	IPPROTO_IPV6                    = 41
149	SOL_IPV6                        = 41
150	IPPROTO_MAX                     = 256
151	SOL_MAX                         = 256
152	IPPROTO_NONE                    = 59
153	SOL_NONE                        = 59
154	IPPROTO_PUP                     = 12
155	SOL_PUP                         = 12
156	IPPROTO_RAW                     = 255
157	SOL_RAW                         = 255
158	IPPROTO_ROUTING                 = 43
159	SOL_ROUTING                     = 43
160	IPPROTO_TCP                     = 6
161	SOL_TCP                         = 6
162	IPPROTO_UDP                     = 17
163	SOL_UDP                         = 17
164	IPV6_ADDR_PREFERENCES           = 32
165	IPV6_CHECKSUM                   = 19
166	IPV6_DONTFRAG                   = 29
167	IPV6_DSTOPTS                    = 23
168	IPV6_HOPLIMIT                   = 11
169	IPV6_HOPOPTS                    = 22
170	IPV6_JOIN_GROUP                 = 5
171	IPV6_LEAVE_GROUP                = 6
172	IPV6_MULTICAST_HOPS             = 9
173	IPV6_MULTICAST_IF               = 7
174	IPV6_MULTICAST_LOOP             = 4
175	IPV6_NEXTHOP                    = 20
176	IPV6_PATHMTU                    = 12
177	IPV6_PKTINFO                    = 13
178	IPV6_PREFER_SRC_CGA             = 0x10
179	IPV6_PREFER_SRC_COA             = 0x02
180	IPV6_PREFER_SRC_HOME            = 0x01
181	IPV6_PREFER_SRC_NONCGA          = 0x20
182	IPV6_PREFER_SRC_PUBLIC          = 0x08
183	IPV6_PREFER_SRC_TMP             = 0x04
184	IPV6_RECVDSTOPTS                = 28
185	IPV6_RECVHOPLIMIT               = 14
186	IPV6_RECVHOPOPTS                = 26
187	IPV6_RECVPATHMTU                = 16
188	IPV6_RECVPKTINFO                = 15
189	IPV6_RECVRTHDR                  = 25
190	IPV6_RECVTCLASS                 = 31
191	IPV6_RTHDR                      = 21
192	IPV6_RTHDRDSTOPTS               = 24
193	IPV6_RTHDR_TYPE_0               = 0
194	IPV6_TCLASS                     = 30
195	IPV6_UNICAST_HOPS               = 3
196	IPV6_USE_MIN_MTU                = 18
197	IPV6_V6ONLY                     = 10
198	IP_ADD_MEMBERSHIP               = 5
199	IP_ADD_SOURCE_MEMBERSHIP        = 12
200	IP_BLOCK_SOURCE                 = 10
201	IP_DEFAULT_MULTICAST_LOOP       = 1
202	IP_DEFAULT_MULTICAST_TTL        = 1
203	IP_DROP_MEMBERSHIP              = 6
204	IP_DROP_SOURCE_MEMBERSHIP       = 13
205	IP_MAX_MEMBERSHIPS              = 20
206	IP_MULTICAST_IF                 = 7
207	IP_MULTICAST_LOOP               = 4
208	IP_MULTICAST_TTL                = 3
209	IP_OPTIONS                      = 1
210	IP_PKTINFO                      = 101
211	IP_RECVPKTINFO                  = 102
212	IP_TOS                          = 2
213	IP_TTL                          = 14
214	IP_UNBLOCK_SOURCE               = 11
215	ICMP6_FILTER                    = 1
216	MCAST_INCLUDE                   = 0
217	MCAST_EXCLUDE                   = 1
218	MCAST_JOIN_GROUP                = 40
219	MCAST_LEAVE_GROUP               = 41
220	MCAST_JOIN_SOURCE_GROUP         = 42
221	MCAST_LEAVE_SOURCE_GROUP        = 43
222	MCAST_BLOCK_SOURCE              = 44
223	MCAST_UNBLOCK_SOURCE            = 46
224	ICANON                          = 0x0010
225	ICRNL                           = 0x0002
226	IEXTEN                          = 0x0020
227	IGNBRK                          = 0x0004
228	IGNCR                           = 0x0008
229	INLCR                           = 0x0020
230	ISIG                            = 0x0040
231	ISTRIP                          = 0x0080
232	IXON                            = 0x0200
233	IXOFF                           = 0x0100
234	LOCK_SH                         = 0x1
235	LOCK_EX                         = 0x2
236	LOCK_NB                         = 0x4
237	LOCK_UN                         = 0x8
238	POLLIN                          = 0x0003
239	POLLOUT                         = 0x0004
240	POLLPRI                         = 0x0010
241	POLLERR                         = 0x0020
242	POLLHUP                         = 0x0040
243	POLLNVAL                        = 0x0080
244	PROT_READ                       = 0x1 // mmap - page can be read
245	PROT_WRITE                      = 0x2 // page can be written
246	PROT_NONE                       = 0x4 // can't be accessed
247	PROT_EXEC                       = 0x8 // can be executed
248	MAP_PRIVATE                     = 0x1 // changes are private
249	MAP_SHARED                      = 0x2 // changes are shared
250	MAP_FIXED                       = 0x4 // place exactly
251	__MAP_MEGA                      = 0x8
252	__MAP_64                        = 0x10
253	MAP_ANON                        = 0x20
254	MAP_ANONYMOUS                   = 0x20
255	MS_SYNC                         = 0x1 // msync - synchronous writes
256	MS_ASYNC                        = 0x2 // asynchronous writes
257	MS_INVALIDATE                   = 0x4 // invalidate mappings
258	MS_BIND                         = 0x00001000
259	MS_MOVE                         = 0x00002000
260	MS_NOSUID                       = 0x00000002
261	MS_PRIVATE                      = 0x00040000
262	MS_REC                          = 0x00004000
263	MS_REMOUNT                      = 0x00008000
264	MS_RDONLY                       = 0x00000001
265	MS_UNBINDABLE                   = 0x00020000
266	MNT_DETACH                      = 0x00000004
267	ZOSDSFS_SUPER_MAGIC             = 0x44534653 // zOS DSFS
268	NFS_SUPER_MAGIC                 = 0x6969     // NFS
269	NSFS_MAGIC                      = 0x6e736673 // PROCNS
270	PROC_SUPER_MAGIC                = 0x9fa0     // proc FS
271	ZOSTFS_SUPER_MAGIC              = 0x544653   // zOS TFS
272	ZOSUFS_SUPER_MAGIC              = 0x554653   // zOS UFS
273	ZOSZFS_SUPER_MAGIC              = 0x5A4653   // zOS ZFS
274	MTM_RDONLY                      = 0x80000000
275	MTM_RDWR                        = 0x40000000
276	MTM_UMOUNT                      = 0x10000000
277	MTM_IMMED                       = 0x08000000
278	MTM_FORCE                       = 0x04000000
279	MTM_DRAIN                       = 0x02000000
280	MTM_RESET                       = 0x01000000
281	MTM_SAMEMODE                    = 0x00100000
282	MTM_UNQSEFORCE                  = 0x00040000
283	MTM_NOSUID                      = 0x00000400
284	MTM_SYNCHONLY                   = 0x00000200
285	MTM_REMOUNT                     = 0x00000100
286	MTM_NOSECURITY                  = 0x00000080
287	NFDBITS                         = 0x20
288	ONLRET                          = 0x0020 // NL performs CR function
289	O_ACCMODE                       = 0x03
290	O_APPEND                        = 0x08
291	O_ASYNCSIG                      = 0x0200
292	O_CREAT                         = 0x80
293	O_DIRECT                        = 0x00002000
294	O_NOFOLLOW                      = 0x00004000
295	O_DIRECTORY                     = 0x00008000
296	O_PATH                          = 0x00080000
297	O_CLOEXEC                       = 0x00001000
298	O_EXCL                          = 0x40
299	O_GETFL                         = 0x0F
300	O_LARGEFILE                     = 0x0400
301	O_NDELAY                        = 0x4
302	O_NONBLOCK                      = 0x04
303	O_RDONLY                        = 0x02
304	O_RDWR                          = 0x03
305	O_SYNC                          = 0x0100
306	O_TRUNC                         = 0x10
307	O_WRONLY                        = 0x01
308	O_NOCTTY                        = 0x20
309	OPOST                           = 0x0001
310	ONLCR                           = 0x0004
311	PARENB                          = 0x0200
312	PARMRK                          = 0x0400
313	QUERYCVT                        = 3
314	RUSAGE_CHILDREN                 = -0x1
315	RUSAGE_SELF                     = 0x0 // RUSAGE_THREAD unsupported on z/OS
316	SEEK_CUR                        = 1
317	SEEK_END                        = 2
318	SEEK_SET                        = 0
319	SETAUTOCVTALL                   = 5
320	SETAUTOCVTON                    = 2
321	SETCVTALL                       = 4
322	SETCVTOFF                       = 0
323	SETCVTON                        = 1
324	AF_APPLETALK                    = 16
325	AF_CCITT                        = 10
326	AF_CHAOS                        = 5
327	AF_DATAKIT                      = 9
328	AF_DLI                          = 13
329	AF_ECMA                         = 8
330	AF_HYLINK                       = 15
331	AF_IMPLINK                      = 3
332	AF_INET                         = 2
333	AF_INET6                        = 19
334	AF_INTF                         = 20
335	AF_IUCV                         = 17
336	AF_LAT                          = 14
337	AF_LINK                         = 18
338	AF_LOCAL                        = AF_UNIX // AF_LOCAL is an alias for AF_UNIX
339	AF_MAX                          = 30
340	AF_NBS                          = 7
341	AF_NDD                          = 23
342	AF_NETWARE                      = 22
343	AF_NS                           = 6
344	AF_PUP                          = 4
345	AF_RIF                          = 21
346	AF_ROUTE                        = 20
347	AF_SNA                          = 11
348	AF_UNIX                         = 1
349	AF_UNSPEC                       = 0
350	IBMTCP_IMAGE                    = 1
351	MSG_ACK_EXPECTED                = 0x10
352	MSG_ACK_GEN                     = 0x40
353	MSG_ACK_TIMEOUT                 = 0x20
354	MSG_CONNTERM                    = 0x80
355	MSG_CTRUNC                      = 0x20
356	MSG_DONTROUTE                   = 0x4
357	MSG_EOF                         = 0x8000
358	MSG_EOR                         = 0x8
359	MSG_MAXIOVLEN                   = 16
360	MSG_NONBLOCK                    = 0x4000
361	MSG_OOB                         = 0x1
362	MSG_PEEK                        = 0x2
363	MSG_TRUNC                       = 0x10
364	MSG_WAITALL                     = 0x40
365	PRIO_PROCESS                    = 1
366	PRIO_PGRP                       = 2
367	PRIO_USER                       = 3
368	RLIMIT_CPU                      = 0
369	RLIMIT_FSIZE                    = 1
370	RLIMIT_DATA                     = 2
371	RLIMIT_STACK                    = 3
372	RLIMIT_CORE                     = 4
373	RLIMIT_AS                       = 5
374	RLIMIT_NOFILE                   = 6
375	RLIMIT_MEMLIMIT                 = 7
376	RLIMIT_MEMLOCK                  = 0x8
377	RLIM_INFINITY                   = 2147483647
378	SCHED_FIFO                      = 0x2
379	SCM_CREDENTIALS                 = 0x2
380	SCM_RIGHTS                      = 0x01
381	SF_CLOSE                        = 0x00000002
382	SF_REUSE                        = 0x00000001
383	SHM_RND                         = 0x2
384	SHM_RDONLY                      = 0x1
385	SHMLBA                          = 0x1000
386	IPC_STAT                        = 0x3
387	IPC_SET                         = 0x2
388	IPC_RMID                        = 0x1
389	IPC_PRIVATE                     = 0x0
390	IPC_CREAT                       = 0x1000000
391	__IPC_MEGA                      = 0x4000000
392	__IPC_SHAREAS                   = 0x20000000
393	__IPC_BELOWBAR                  = 0x10000000
394	IPC_EXCL                        = 0x2000000
395	__IPC_GIGA                      = 0x8000000
396	SHUT_RD                         = 0
397	SHUT_RDWR                       = 2
398	SHUT_WR                         = 1
399	SOCK_CLOEXEC                    = 0x00001000
400	SOCK_CONN_DGRAM                 = 6
401	SOCK_DGRAM                      = 2
402	SOCK_NONBLOCK                   = 0x800
403	SOCK_RAW                        = 3
404	SOCK_RDM                        = 4
405	SOCK_SEQPACKET                  = 5
406	SOCK_STREAM                     = 1
407	SOL_SOCKET                      = 0xffff
408	SOMAXCONN                       = 10
409	SO_ACCEPTCONN                   = 0x0002
410	SO_ACCEPTECONNABORTED           = 0x0006
411	SO_ACKNOW                       = 0x7700
412	SO_BROADCAST                    = 0x0020
413	SO_BULKMODE                     = 0x8000
414	SO_CKSUMRECV                    = 0x0800
415	SO_CLOSE                        = 0x01
416	SO_CLUSTERCONNTYPE              = 0x00004001
417	SO_CLUSTERCONNTYPE_INTERNAL     = 8
418	SO_CLUSTERCONNTYPE_NOCONN       = 0
419	SO_CLUSTERCONNTYPE_NONE         = 1
420	SO_CLUSTERCONNTYPE_SAME_CLUSTER = 2
421	SO_CLUSTERCONNTYPE_SAME_IMAGE   = 4
422	SO_DEBUG                        = 0x0001
423	SO_DONTROUTE                    = 0x0010
424	SO_ERROR                        = 0x1007
425	SO_IGNOREINCOMINGPUSH           = 0x1
426	SO_IGNORESOURCEVIPA             = 0x0002
427	SO_KEEPALIVE                    = 0x0008
428	SO_LINGER                       = 0x0080
429	SO_NONBLOCKLOCAL                = 0x8001
430	SO_NOREUSEADDR                  = 0x1000
431	SO_OOBINLINE                    = 0x0100
432	SO_OPTACK                       = 0x8004
433	SO_OPTMSS                       = 0x8003
434	SO_RCVBUF                       = 0x1002
435	SO_RCVLOWAT                     = 0x1004
436	SO_RCVTIMEO                     = 0x1006
437	SO_REUSEADDR                    = 0x0004
438	SO_REUSEPORT                    = 0x0200
439	SO_SECINFO                      = 0x00004002
440	SO_SET                          = 0x0200
441	SO_SNDBUF                       = 0x1001
442	SO_SNDLOWAT                     = 0x1003
443	SO_SNDTIMEO                     = 0x1005
444	SO_TYPE                         = 0x1008
445	SO_UNSET                        = 0x0400
446	SO_USELOOPBACK                  = 0x0040
447	SO_USE_IFBUFS                   = 0x0400
448	S_ISUID                         = 0x0800
449	S_ISGID                         = 0x0400
450	S_ISVTX                         = 0x0200
451	S_IRUSR                         = 0x0100
452	S_IWUSR                         = 0x0080
453	S_IXUSR                         = 0x0040
454	S_IRWXU                         = 0x01C0
455	S_IRGRP                         = 0x0020
456	S_IWGRP                         = 0x0010
457	S_IXGRP                         = 0x0008
458	S_IRWXG                         = 0x0038
459	S_IROTH                         = 0x0004
460	S_IWOTH                         = 0x0002
461	S_IXOTH                         = 0x0001
462	S_IRWXO                         = 0x0007
463	S_IREAD                         = S_IRUSR
464	S_IWRITE                        = S_IWUSR
465	S_IEXEC                         = S_IXUSR
466	S_IFDIR                         = 0x01000000
467	S_IFCHR                         = 0x02000000
468	S_IFREG                         = 0x03000000
469	S_IFFIFO                        = 0x04000000
470	S_IFIFO                         = 0x04000000
471	S_IFLNK                         = 0x05000000
472	S_IFBLK                         = 0x06000000
473	S_IFSOCK                        = 0x07000000
474	S_IFVMEXTL                      = 0xFE000000
475	S_IFVMEXTL_EXEC                 = 0x00010000
476	S_IFVMEXTL_DATA                 = 0x00020000
477	S_IFVMEXTL_MEL                  = 0x00030000
478	S_IFEXTL                        = 0x00000001
479	S_IFPROGCTL                     = 0x00000002
480	S_IFAPFCTL                      = 0x00000004
481	S_IFNOSHARE                     = 0x00000008
482	S_IFSHARELIB                    = 0x00000010
483	S_IFMT                          = 0xFF000000
484	S_IFMST                         = 0x00FF0000
485	TCP_KEEPALIVE                   = 0x8
486	TCP_NODELAY                     = 0x1
487	TIOCGWINSZ                      = 0x4008a368
488	TIOCSWINSZ                      = 0x8008a367
489	TIOCSBRK                        = 0x2000a77b
490	TIOCCBRK                        = 0x2000a77a
491	TIOCSTI                         = 0x8001a772
492	TIOCGPGRP                       = 0x4004a777 // _IOR(167, 119, int)
493	TCSANOW                         = 0
494	TCSETS                          = 0 // equivalent to TCSANOW for tcsetattr
495	TCSADRAIN                       = 1
496	TCSETSW                         = 1 // equivalent to TCSADRAIN for tcsetattr
497	TCSAFLUSH                       = 2
498	TCSETSF                         = 2 // equivalent to TCSAFLUSH for tcsetattr
499	TCGETS                          = 3 // not defined in ioctl.h -- zos golang only
500	TCIFLUSH                        = 0
501	TCOFLUSH                        = 1
502	TCIOFLUSH                       = 2
503	TCOOFF                          = 0
504	TCOON                           = 1
505	TCIOFF                          = 2
506	TCION                           = 3
507	TIOCSPGRP                       = 0x8004a776
508	TIOCNOTTY                       = 0x2000a771
509	TIOCEXCL                        = 0x2000a70d
510	TIOCNXCL                        = 0x2000a70e
511	TIOCGETD                        = 0x4004a700
512	TIOCSETD                        = 0x8004a701
513	TIOCPKT                         = 0x8004a770
514	TIOCSTOP                        = 0x2000a76f
515	TIOCSTART                       = 0x2000a76e
516	TIOCUCNTL                       = 0x8004a766
517	TIOCREMOTE                      = 0x8004a769
518	TIOCMGET                        = 0x4004a76a
519	TIOCMSET                        = 0x8004a76d
520	TIOCMBIC                        = 0x8004a76b
521	TIOCMBIS                        = 0x8004a76c
522	VINTR                           = 0
523	VQUIT                           = 1
524	VERASE                          = 2
525	VKILL                           = 3
526	VEOF                            = 4
527	VEOL                            = 5
528	VMIN                            = 6
529	VSTART                          = 7
530	VSTOP                           = 8
531	VSUSP                           = 9
532	VTIME                           = 10
533	WCONTINUED                      = 0x4
534	WEXITED                         = 0x8
535	WNOHANG                         = 0x1
536	WNOWAIT                         = 0x20
537	WSTOPPED                        = 0x10
538	WUNTRACED                       = 0x2
539	_BPX_SWAP                       = 1
540	_BPX_NONSWAP                    = 2
541	MCL_CURRENT                     = 1  // for Linux compatibility -- no zos semantics
542	MCL_FUTURE                      = 2  // for Linux compatibility -- no zos semantics
543	MCL_ONFAULT                     = 3  // for Linux compatibility -- no zos semantics
544	MADV_NORMAL                     = 0  // for Linux compatibility -- no zos semantics
545	MADV_RANDOM                     = 1  // for Linux compatibility -- no zos semantics
546	MADV_SEQUENTIAL                 = 2  // for Linux compatibility -- no zos semantics
547	MADV_WILLNEED                   = 3  // for Linux compatibility -- no zos semantics
548	MADV_REMOVE                     = 4  // for Linux compatibility -- no zos semantics
549	MADV_DONTFORK                   = 5  // for Linux compatibility -- no zos semantics
550	MADV_DOFORK                     = 6  // for Linux compatibility -- no zos semantics
551	MADV_HWPOISON                   = 7  // for Linux compatibility -- no zos semantics
552	MADV_MERGEABLE                  = 8  // for Linux compatibility -- no zos semantics
553	MADV_UNMERGEABLE                = 9  // for Linux compatibility -- no zos semantics
554	MADV_SOFT_OFFLINE               = 10 // for Linux compatibility -- no zos semantics
555	MADV_HUGEPAGE                   = 11 // for Linux compatibility -- no zos semantics
556	MADV_NOHUGEPAGE                 = 12 // for Linux compatibility -- no zos semantics
557	MADV_DONTDUMP                   = 13 // for Linux compatibility -- no zos semantics
558	MADV_DODUMP                     = 14 // for Linux compatibility -- no zos semantics
559	MADV_FREE                       = 15 // for Linux compatibility -- no zos semantics
560	MADV_WIPEONFORK                 = 16 // for Linux compatibility -- no zos semantics
561	MADV_KEEPONFORK                 = 17 // for Linux compatibility -- no zos semantics
562	AT_SYMLINK_FOLLOW               = 0x400
563	AT_SYMLINK_NOFOLLOW             = 0x100
564	XATTR_CREATE                    = 0x1
565	XATTR_REPLACE                   = 0x2
566	P_PID                           = 0
567	P_PGID                          = 1
568	P_ALL                           = 2
569	PR_SET_NAME                     = 15
570	PR_GET_NAME                     = 16
571	PR_SET_NO_NEW_PRIVS             = 38
572	PR_GET_NO_NEW_PRIVS             = 39
573	PR_SET_DUMPABLE                 = 4
574	PR_GET_DUMPABLE                 = 3
575	PR_SET_PDEATHSIG                = 1
576	PR_GET_PDEATHSIG                = 2
577	PR_SET_CHILD_SUBREAPER          = 36
578	PR_GET_CHILD_SUBREAPER          = 37
579	AT_FDCWD                        = -100
580	AT_EACCESS                      = 0x200
581	AT_EMPTY_PATH                   = 0x1000
582	AT_REMOVEDIR                    = 0x200
583	RENAME_NOREPLACE                = 1 << 0
584)
585
586const (
587	EDOM               = Errno(1)
588	ERANGE             = Errno(2)
589	EACCES             = Errno(111)
590	EAGAIN             = Errno(112)
591	EBADF              = Errno(113)
592	EBUSY              = Errno(114)
593	ECHILD             = Errno(115)
594	EDEADLK            = Errno(116)
595	EEXIST             = Errno(117)
596	EFAULT             = Errno(118)
597	EFBIG              = Errno(119)
598	EINTR              = Errno(120)
599	EINVAL             = Errno(121)
600	EIO                = Errno(122)
601	EISDIR             = Errno(123)
602	EMFILE             = Errno(124)
603	EMLINK             = Errno(125)
604	ENAMETOOLONG       = Errno(126)
605	ENFILE             = Errno(127)
606	ENOATTR            = Errno(265)
607	ENODEV             = Errno(128)
608	ENOENT             = Errno(129)
609	ENOEXEC            = Errno(130)
610	ENOLCK             = Errno(131)
611	ENOMEM             = Errno(132)
612	ENOSPC             = Errno(133)
613	ENOSYS             = Errno(134)
614	ENOTDIR            = Errno(135)
615	ENOTEMPTY          = Errno(136)
616	ENOTTY             = Errno(137)
617	ENXIO              = Errno(138)
618	EPERM              = Errno(139)
619	EPIPE              = Errno(140)
620	EROFS              = Errno(141)
621	ESPIPE             = Errno(142)
622	ESRCH              = Errno(143)
623	EXDEV              = Errno(144)
624	E2BIG              = Errno(145)
625	ELOOP              = Errno(146)
626	EILSEQ             = Errno(147)
627	ENODATA            = Errno(148)
628	EOVERFLOW          = Errno(149)
629	EMVSNOTUP          = Errno(150)
630	ECMSSTORAGE        = Errno(151)
631	EMVSDYNALC         = Errno(151)
632	EMVSCVAF           = Errno(152)
633	EMVSCATLG          = Errno(153)
634	ECMSINITIAL        = Errno(156)
635	EMVSINITIAL        = Errno(156)
636	ECMSERR            = Errno(157)
637	EMVSERR            = Errno(157)
638	EMVSPARM           = Errno(158)
639	ECMSPFSFILE        = Errno(159)
640	EMVSPFSFILE        = Errno(159)
641	EMVSBADCHAR        = Errno(160)
642	ECMSPFSPERM        = Errno(162)
643	EMVSPFSPERM        = Errno(162)
644	EMVSSAFEXTRERR     = Errno(163)
645	EMVSSAF2ERR        = Errno(164)
646	EMVSTODNOTSET      = Errno(165)
647	EMVSPATHOPTS       = Errno(166)
648	EMVSNORTL          = Errno(167)
649	EMVSEXPIRE         = Errno(168)
650	EMVSPASSWORD       = Errno(169)
651	EMVSWLMERROR       = Errno(170)
652	EMVSCPLERROR       = Errno(171)
653	EMVSARMERROR       = Errno(172)
654	ELENOFORK          = Errno(200)
655	ELEMSGERR          = Errno(201)
656	EFPMASKINV         = Errno(202)
657	EFPMODEINV         = Errno(203)
658	EBUFLEN            = Errno(227)
659	EEXTLINK           = Errno(228)
660	ENODD              = Errno(229)
661	ECMSESMERR         = Errno(230)
662	ECPERR             = Errno(231)
663	ELEMULTITHREAD     = Errno(232)
664	ELEFENCE           = Errno(244)
665	EBADDATA           = Errno(245)
666	EUNKNOWN           = Errno(246)
667	ENOTSUP            = Errno(247)
668	EBADNAME           = Errno(248)
669	ENOTSAFE           = Errno(249)
670	ELEMULTITHREADFORK = Errno(257)
671	ECUNNOENV          = Errno(258)
672	ECUNNOCONV         = Errno(259)
673	ECUNNOTALIGNED     = Errno(260)
674	ECUNERR            = Errno(262)
675	EIBMBADCALL        = Errno(1000)
676	EIBMBADPARM        = Errno(1001)
677	EIBMSOCKOUTOFRANGE = Errno(1002)
678	EIBMSOCKINUSE      = Errno(1003)
679	EIBMIUCVERR        = Errno(1004)
680	EOFFLOADboxERROR   = Errno(1005)
681	EOFFLOADboxRESTART = Errno(1006)
682	EOFFLOADboxDOWN    = Errno(1007)
683	EIBMCONFLICT       = Errno(1008)
684	EIBMCANCELLED      = Errno(1009)
685	EIBMBADTCPNAME     = Errno(1011)
686	ENOTBLK            = Errno(1100)
687	ETXTBSY            = Errno(1101)
688	EWOULDBLOCK        = Errno(1102)
689	EINPROGRESS        = Errno(1103)
690	EALREADY           = Errno(1104)
691	ENOTSOCK           = Errno(1105)
692	EDESTADDRREQ       = Errno(1106)
693	EMSGSIZE           = Errno(1107)
694	EPROTOTYPE         = Errno(1108)
695	ENOPROTOOPT        = Errno(1109)
696	EPROTONOSUPPORT    = Errno(1110)
697	ESOCKTNOSUPPORT    = Errno(1111)
698	EOPNOTSUPP         = Errno(1112)
699	EPFNOSUPPORT       = Errno(1113)
700	EAFNOSUPPORT       = Errno(1114)
701	EADDRINUSE         = Errno(1115)
702	EADDRNOTAVAIL      = Errno(1116)
703	ENETDOWN           = Errno(1117)
704	ENETUNREACH        = Errno(1118)
705	ENETRESET          = Errno(1119)
706	ECONNABORTED       = Errno(1120)
707	ECONNRESET         = Errno(1121)
708	ENOBUFS            = Errno(1122)
709	EISCONN            = Errno(1123)
710	ENOTCONN           = Errno(1124)
711	ESHUTDOWN          = Errno(1125)
712	ETOOMANYREFS       = Errno(1126)
713	ETIMEDOUT          = Errno(1127)
714	ECONNREFUSED       = Errno(1128)
715	EHOSTDOWN          = Errno(1129)
716	EHOSTUNREACH       = Errno(1130)
717	EPROCLIM           = Errno(1131)
718	EUSERS             = Errno(1132)
719	EDQUOT             = Errno(1133)
720	ESTALE             = Errno(1134)
721	EREMOTE            = Errno(1135)
722	ENOSTR             = Errno(1136)
723	ETIME              = Errno(1137)
724	ENOSR              = Errno(1138)
725	ENOMSG             = Errno(1139)
726	EBADMSG            = Errno(1140)
727	EIDRM              = Errno(1141)
728	ENONET             = Errno(1142)
729	ERREMOTE           = Errno(1143)
730	ENOLINK            = Errno(1144)
731	EADV               = Errno(1145)
732	ESRMNT             = Errno(1146)
733	ECOMM              = Errno(1147)
734	EPROTO             = Errno(1148)
735	EMULTIHOP          = Errno(1149)
736	EDOTDOT            = Errno(1150)
737	EREMCHG            = Errno(1151)
738	ECANCELED          = Errno(1152)
739	EINTRNODATA        = Errno(1159)
740	ENOREUSE           = Errno(1160)
741	ENOMOVE            = Errno(1161)
742)
743
744// Signals
745const (
746	SIGHUP    = Signal(1)
747	SIGINT    = Signal(2)
748	SIGABRT   = Signal(3)
749	SIGILL    = Signal(4)
750	SIGPOLL   = Signal(5)
751	SIGURG    = Signal(6)
752	SIGSTOP   = Signal(7)
753	SIGFPE    = Signal(8)
754	SIGKILL   = Signal(9)
755	SIGBUS    = Signal(10)
756	SIGSEGV   = Signal(11)
757	SIGSYS    = Signal(12)
758	SIGPIPE   = Signal(13)
759	SIGALRM   = Signal(14)
760	SIGTERM   = Signal(15)
761	SIGUSR1   = Signal(16)
762	SIGUSR2   = Signal(17)
763	SIGABND   = Signal(18)
764	SIGCONT   = Signal(19)
765	SIGCHLD   = Signal(20)
766	SIGTTIN   = Signal(21)
767	SIGTTOU   = Signal(22)
768	SIGIO     = Signal(23)
769	SIGQUIT   = Signal(24)
770	SIGTSTP   = Signal(25)
771	SIGTRAP   = Signal(26)
772	SIGIOERR  = Signal(27)
773	SIGWINCH  = Signal(28)
774	SIGXCPU   = Signal(29)
775	SIGXFSZ   = Signal(30)
776	SIGVTALRM = Signal(31)
777	SIGPROF   = Signal(32)
778	SIGDANGER = Signal(33)
779	SIGTHSTOP = Signal(34)
780	SIGTHCONT = Signal(35)
781	SIGTRACE  = Signal(37)
782	SIGDCE    = Signal(38)
783	SIGDUMP   = Signal(39)
784)
785
786// Error table
787var errorList = [...]struct {
788	num  Errno
789	name string
790	desc string
791}{
792	{1, "EDC5001I", "A domain error occurred."},
793	{2, "EDC5002I", "A range error occurred."},
794	{111, "EDC5111I", "Permission denied."},
795	{112, "EDC5112I", "Resource temporarily unavailable."},
796	{113, "EDC5113I", "Bad file descriptor."},
797	{114, "EDC5114I", "Resource busy."},
798	{115, "EDC5115I", "No child processes."},
799	{116, "EDC5116I", "Resource deadlock avoided."},
800	{117, "EDC5117I", "File exists."},
801	{118, "EDC5118I", "Incorrect address."},
802	{119, "EDC5119I", "File too large."},
803	{120, "EDC5120I", "Interrupted function call."},
804	{121, "EDC5121I", "Invalid argument."},
805	{122, "EDC5122I", "Input/output error."},
806	{123, "EDC5123I", "Is a directory."},
807	{124, "EDC5124I", "Too many open files."},
808	{125, "EDC5125I", "Too many links."},
809	{126, "EDC5126I", "Filename too long."},
810	{127, "EDC5127I", "Too many open files in system."},
811	{128, "EDC5128I", "No such device."},
812	{129, "EDC5129I", "No such file or directory."},
813	{130, "EDC5130I", "Exec format error."},
814	{131, "EDC5131I", "No locks available."},
815	{132, "EDC5132I", "Not enough memory."},
816	{133, "EDC5133I", "No space left on device."},
817	{134, "EDC5134I", "Function not implemented."},
818	{135, "EDC5135I", "Not a directory."},
819	{136, "EDC5136I", "Directory not empty."},
820	{137, "EDC5137I", "Inappropriate I/O control operation."},
821	{138, "EDC5138I", "No such device or address."},
822	{139, "EDC5139I", "Operation not permitted."},
823	{140, "EDC5140I", "Broken pipe."},
824	{141, "EDC5141I", "Read-only file system."},
825	{142, "EDC5142I", "Invalid seek."},
826	{143, "EDC5143I", "No such process."},
827	{144, "EDC5144I", "Improper link."},
828	{145, "EDC5145I", "The parameter list is too long, or the message to receive was too large for the buffer."},
829	{146, "EDC5146I", "Too many levels of symbolic links."},
830	{147, "EDC5147I", "Illegal byte sequence."},
831	{148, "EDC5148I", "The named attribute or data not available."},
832	{149, "EDC5149I", "Value Overflow Error."},
833	{150, "EDC5150I", "UNIX System Services is not active."},
834	{151, "EDC5151I", "Dynamic allocation error."},
835	{152, "EDC5152I", "Common VTOC access facility (CVAF) error."},
836	{153, "EDC5153I", "Catalog obtain error."},
837	{156, "EDC5156I", "Process initialization error."},
838	{157, "EDC5157I", "An internal error has occurred."},
839	{158, "EDC5158I", "Bad parameters were passed to the service."},
840	{159, "EDC5159I", "The Physical File System encountered a permanent file error."},
841	{160, "EDC5160I", "Bad character in environment variable name."},
842	{162, "EDC5162I", "The Physical File System encountered a system error."},
843	{163, "EDC5163I", "SAF/RACF extract error."},
844	{164, "EDC5164I", "SAF/RACF error."},
845	{165, "EDC5165I", "System TOD clock not set."},
846	{166, "EDC5166I", "Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement."},
847	{167, "EDC5167I", "Access to the UNIX System Services version of the C RTL is denied."},
848	{168, "EDC5168I", "Password has expired."},
849	{169, "EDC5169I", "Password is invalid."},
850	{170, "EDC5170I", "An error was encountered with WLM."},
851	{171, "EDC5171I", "An error was encountered with CPL."},
852	{172, "EDC5172I", "An error was encountered with Application Response Measurement (ARM) component."},
853	{200, "EDC5200I", "The application contains a Language Environment member language that cannot tolerate a fork()."},
854	{201, "EDC5201I", "The Language Environment message file was not found in the hierarchical file system."},
855	{202, "EDC5202E", "DLL facilities are not supported under SPC environment."},
856	{203, "EDC5203E", "DLL facilities are not supported under POSIX environment."},
857	{227, "EDC5227I", "Buffer is not long enough to contain a path definition"},
858	{228, "EDC5228I", "The file referred to is an external link"},
859	{229, "EDC5229I", "No path definition for ddname in effect"},
860	{230, "EDC5230I", "ESM error."},
861	{231, "EDC5231I", "CP or the external security manager had an error"},
862	{232, "EDC5232I", "The function failed because it was invoked from a multithread environment."},
863	{244, "EDC5244I", "The program, module or DLL is not supported in this environment."},
864	{245, "EDC5245I", "Data is not valid."},
865	{246, "EDC5246I", "Unknown system state."},
866	{247, "EDC5247I", "Operation not supported."},
867	{248, "EDC5248I", "The object name specified is not correct."},
868	{249, "EDC5249I", "The function is not allowed."},
869	{257, "EDC5257I", "Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called."},
870	{258, "EDC5258I", "A CUN_RS_NO_UNI_ENV error was issued by Unicode Services."},
871	{259, "EDC5259I", "A CUN_RS_NO_CONVERSION error was issued by Unicode Services."},
872	{260, "EDC5260I", "A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services."},
873	{262, "EDC5262I", "An iconv() function encountered an unexpected error while using Unicode Services."},
874	{265, "EDC5265I", "The named attribute not available."},
875	{1000, "EDC8000I", "A bad socket-call constant was found in the IUCV header."},
876	{1001, "EDC8001I", "An error was found in the IUCV header."},
877	{1002, "EDC8002I", "A socket descriptor is out of range."},
878	{1003, "EDC8003I", "A socket descriptor is in use."},
879	{1004, "EDC8004I", "Request failed because of an IUCV error."},
880	{1005, "EDC8005I", "Offload box error."},
881	{1006, "EDC8006I", "Offload box restarted."},
882	{1007, "EDC8007I", "Offload box down."},
883	{1008, "EDC8008I", "Already a conflicting call outstanding on socket."},
884	{1009, "EDC8009I", "Request cancelled using a SOCKcallCANCEL request."},
885	{1011, "EDC8011I", "A name of a PFS was specified that either is not configured or is not a Sockets PFS."},
886	{1100, "EDC8100I", "Block device required."},
887	{1101, "EDC8101I", "Text file busy."},
888	{1102, "EDC8102I", "Operation would block."},
889	{1103, "EDC8103I", "Operation now in progress."},
890	{1104, "EDC8104I", "Connection already in progress."},
891	{1105, "EDC8105I", "Socket operation on non-socket."},
892	{1106, "EDC8106I", "Destination address required."},
893	{1107, "EDC8107I", "Message too long."},
894	{1108, "EDC8108I", "Protocol wrong type for socket."},
895	{1109, "EDC8109I", "Protocol not available."},
896	{1110, "EDC8110I", "Protocol not supported."},
897	{1111, "EDC8111I", "Socket type not supported."},
898	{1112, "EDC8112I", "Operation not supported on socket."},
899	{1113, "EDC8113I", "Protocol family not supported."},
900	{1114, "EDC8114I", "Address family not supported."},
901	{1115, "EDC8115I", "Address already in use."},
902	{1116, "EDC8116I", "Address not available."},
903	{1117, "EDC8117I", "Network is down."},
904	{1118, "EDC8118I", "Network is unreachable."},
905	{1119, "EDC8119I", "Network dropped connection on reset."},
906	{1120, "EDC8120I", "Connection ended abnormally."},
907	{1121, "EDC8121I", "Connection reset."},
908	{1122, "EDC8122I", "No buffer space available."},
909	{1123, "EDC8123I", "Socket already connected."},
910	{1124, "EDC8124I", "Socket not connected."},
911	{1125, "EDC8125I", "Can't send after socket shutdown."},
912	{1126, "EDC8126I", "Too many references; can't splice."},
913	{1127, "EDC8127I", "Connection timed out."},
914	{1128, "EDC8128I", "Connection refused."},
915	{1129, "EDC8129I", "Host is not available."},
916	{1130, "EDC8130I", "Host cannot be reached."},
917	{1131, "EDC8131I", "Too many processes."},
918	{1132, "EDC8132I", "Too many users."},
919	{1133, "EDC8133I", "Disk quota exceeded."},
920	{1134, "EDC8134I", "Stale file handle."},
921	{1135, "", ""},
922	{1136, "EDC8136I", "File is not a STREAM."},
923	{1137, "EDC8137I", "STREAMS ioctl() timeout."},
924	{1138, "EDC8138I", "No STREAMS resources."},
925	{1139, "EDC8139I", "The message identified by set_id and msg_id is not in the message catalog."},
926	{1140, "EDC8140I", "Bad message."},
927	{1141, "EDC8141I", "Identifier removed."},
928	{1142, "", ""},
929	{1143, "", ""},
930	{1144, "EDC8144I", "The link has been severed."},
931	{1145, "", ""},
932	{1146, "", ""},
933	{1147, "", ""},
934	{1148, "EDC8148I", "Protocol error."},
935	{1149, "EDC8149I", "Multihop not allowed."},
936	{1150, "", ""},
937	{1151, "", ""},
938	{1152, "EDC8152I", "The asynchronous I/O request has been canceled."},
939	{1159, "EDC8159I", "Function call was interrupted before any data was received."},
940	{1160, "EDC8160I", "Socket reuse is not supported."},
941	{1161, "EDC8161I", "The file system cannot currently be moved."},
942}
943
944// Signal table
945var signalList = [...]struct {
946	num  Signal
947	name string
948	desc string
949}{
950	{1, "SIGHUP", "hangup"},
951	{2, "SIGINT", "interrupt"},
952	{3, "SIGABT", "aborted"},
953	{4, "SIGILL", "illegal instruction"},
954	{5, "SIGPOLL", "pollable event"},
955	{6, "SIGURG", "urgent I/O condition"},
956	{7, "SIGSTOP", "stop process"},
957	{8, "SIGFPE", "floating point exception"},
958	{9, "SIGKILL", "killed"},
959	{10, "SIGBUS", "bus error"},
960	{11, "SIGSEGV", "segmentation fault"},
961	{12, "SIGSYS", "bad argument to routine"},
962	{13, "SIGPIPE", "broken pipe"},
963	{14, "SIGALRM", "alarm clock"},
964	{15, "SIGTERM", "terminated"},
965	{16, "SIGUSR1", "user defined signal 1"},
966	{17, "SIGUSR2", "user defined signal 2"},
967	{18, "SIGABND", "abend"},
968	{19, "SIGCONT", "continued"},
969	{20, "SIGCHLD", "child exited"},
970	{21, "SIGTTIN", "stopped (tty input)"},
971	{22, "SIGTTOU", "stopped (tty output)"},
972	{23, "SIGIO", "I/O possible"},
973	{24, "SIGQUIT", "quit"},
974	{25, "SIGTSTP", "stopped"},
975	{26, "SIGTRAP", "trace/breakpoint trap"},
976	{27, "SIGIOER", "I/O error"},
977	{28, "SIGWINCH", "window changed"},
978	{29, "SIGXCPU", "CPU time limit exceeded"},
979	{30, "SIGXFSZ", "file size limit exceeded"},
980	{31, "SIGVTALRM", "virtual timer expired"},
981	{32, "SIGPROF", "profiling timer expired"},
982	{33, "SIGDANGER", "danger"},
983	{34, "SIGTHSTOP", "stop thread"},
984	{35, "SIGTHCONT", "continue thread"},
985	{37, "SIGTRACE", "trace"},
986	{38, "", "DCE"},
987	{39, "SIGDUMP", "dump"},
988}
989