1 ! Copyright (C) 2010 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax classes.struct unix.types ;
6 CONSTANT: MAXPATHLEN 1024
8 CONSTANT: O_RDONLY HEX: 0000
9 CONSTANT: O_WRONLY HEX: 0001
10 CONSTANT: O_RDWR HEX: 0002
11 CONSTANT: O_CREAT HEX: 0040
12 CONSTANT: O_EXCL HEX: 0080
13 CONSTANT: O_NOCTTY HEX: 0100
14 CONSTANT: O_TRUNC HEX: 0200
15 CONSTANT: O_APPEND HEX: 0400
16 CONSTANT: O_NONBLOCK HEX: 0800
18 ALIAS: O_NDELAY O_NONBLOCK
20 CONSTANT: SOL_SOCKET 1
22 CONSTANT: FD_SETSIZE 1024
24 CONSTANT: SO_REUSEADDR 2
25 CONSTANT: SO_OOBINLINE 10
26 CONSTANT: SO_SNDTIMEO HEX: 15
27 CONSTANT: SO_RCVTIMEO HEX: 14
30 CONSTANT: FD_CLOEXEC 1
41 { canonname c-string }
57 CONSTANT: max-un-path 108
61 { path { char max-un-path } } ;
63 CONSTANT: SOCK_STREAM 1
64 CONSTANT: SOCK_DGRAM 2
72 ALIAS: PF_UNSPEC AF_UNSPEC
73 ALIAS: PF_UNIX AF_UNIX
74 ALIAS: PF_INET AF_INET
75 ALIAS: PF_INET6 AF_INET6
77 CONSTANT: IPPROTO_TCP 6
78 CONSTANT: IPPROTO_UDP 17
80 CONSTANT: AI_PASSIVE 1
88 { pw_passwd c-string }
93 { pw_shell c-string } ;
101 { d_name char[256] } ;
103 FUNCTION: int open64 ( c-string path, int flags, int prot ) ;
104 FUNCTION: dirent* readdir64 ( DIR* dirp ) ;
105 FUNCTION: int readdir64_r ( void* dirp, dirent* entry, dirent** result ) ;
142 CONSTANT: ENAMETOOLONG 36
145 CONSTANT: ENOTEMPTY 39
147 ALIAS: EWOULDBLOCK EAGAIN
151 CONSTANT: EL2NSYNC 45
164 ALIAS: EDEADLOCK EDEADLK
178 CONSTANT: EMULTIHOP 72
181 CONSTANT: EOVERFLOW 75
182 CONSTANT: ENOTUNIQ 76
189 CONSTANT: ELIBEXEC 83
191 CONSTANT: ERESTART 85
192 CONSTANT: ESTRPIPE 86
194 CONSTANT: ENOTSOCK 88
195 CONSTANT: EDESTADDRREQ 89
196 CONSTANT: EMSGSIZE 90
197 CONSTANT: EPROTOTYPE 91
198 CONSTANT: ENOPROTOOPT 92
199 CONSTANT: EPROTONOSUPPORT 93
200 CONSTANT: ESOCKTNOSUPPORT 94
201 CONSTANT: EOPNOTSUPP 95
202 CONSTANT: EPFNOSUPPORT 96
203 CONSTANT: EAFNOSUPPORT 97
204 CONSTANT: EADDRINUSE 98
205 CONSTANT: EADDRNOTAVAIL 99
206 CONSTANT: ENETDOWN 100
207 CONSTANT: ENETUNREACH 101
208 CONSTANT: ENETRESET 102
209 CONSTANT: ECONNABORTED 103
210 CONSTANT: ECONNRESET 104
211 CONSTANT: ENOBUFS 105
212 CONSTANT: EISCONN 106
213 CONSTANT: ENOTCONN 107
214 CONSTANT: ESHUTDOWN 108
215 CONSTANT: ETOOMANYREFS 109
216 CONSTANT: ETIMEDOUT 110
217 CONSTANT: ECONNREFUSED 111
218 CONSTANT: EHOSTDOWN 112
219 CONSTANT: EHOSTUNREACH 113
220 CONSTANT: EALREADY 114
221 CONSTANT: EINPROGRESS 115
223 CONSTANT: EUCLEAN 117
224 CONSTANT: ENOTNAM 118
225 CONSTANT: ENAVAIL 119
227 CONSTANT: EREMOTEIO 121
229 CONSTANT: ENOMEDIUM 123
230 CONSTANT: EMEDIUMTYPE 124
231 CONSTANT: ECANCELED 125
233 CONSTANT: EKEYEXPIRED 127
234 CONSTANT: EKEYREVOKED 128
235 CONSTANT: EKEYREJECTED 129
236 CONSTANT: EOWNERDEAD 130
237 CONSTANT: ENOTRECOVERABLE 131