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
71 ALIAS: PF_UNSPEC AF_UNSPEC
72 ALIAS: PF_UNIX AF_UNIX
73 ALIAS: PF_INET AF_INET
74 ALIAS: PF_INET6 AF_INET6
76 CONSTANT: IPPROTO_TCP 6
77 CONSTANT: IPPROTO_UDP 17
79 CONSTANT: AI_PASSIVE 1
87 { pw_passwd c-string }
92 { pw_shell c-string } ;
100 { d_name char[256] } ;
102 FUNCTION: int open64 ( c-string path, int flags, int prot ) ;
103 FUNCTION: dirent* readdir64 ( DIR* dirp ) ;
104 FUNCTION: int readdir64_r ( void* dirp, dirent* entry, dirent** result ) ;
141 CONSTANT: ENAMETOOLONG 36
144 CONSTANT: ENOTEMPTY 39
146 ALIAS: EWOULDBLOCK EAGAIN
150 CONSTANT: EL2NSYNC 45
163 ALIAS: EDEADLOCK EDEADLK
177 CONSTANT: EMULTIHOP 72
180 CONSTANT: EOVERFLOW 75
181 CONSTANT: ENOTUNIQ 76
188 CONSTANT: ELIBEXEC 83
190 CONSTANT: ERESTART 85
191 CONSTANT: ESTRPIPE 86
193 CONSTANT: ENOTSOCK 88
194 CONSTANT: EDESTADDRREQ 89
195 CONSTANT: EMSGSIZE 90
196 CONSTANT: EPROTOTYPE 91
197 CONSTANT: ENOPROTOOPT 92
198 CONSTANT: EPROTONOSUPPORT 93
199 CONSTANT: ESOCKTNOSUPPORT 94
200 CONSTANT: EOPNOTSUPP 95
201 CONSTANT: EPFNOSUPPORT 96
202 CONSTANT: EAFNOSUPPORT 97
203 CONSTANT: EADDRINUSE 98
204 CONSTANT: EADDRNOTAVAIL 99
205 CONSTANT: ENETDOWN 100
206 CONSTANT: ENETUNREACH 101
207 CONSTANT: ENETRESET 102
208 CONSTANT: ECONNABORTED 103
209 CONSTANT: ECONNRESET 104
210 CONSTANT: ENOBUFS 105
211 CONSTANT: EISCONN 106
212 CONSTANT: ENOTCONN 107
213 CONSTANT: ESHUTDOWN 108
214 CONSTANT: ETOOMANYREFS 109
215 CONSTANT: ETIMEDOUT 110
216 CONSTANT: ECONNREFUSED 111
217 CONSTANT: EHOSTDOWN 112
218 CONSTANT: EHOSTUNREACH 113
219 CONSTANT: EALREADY 114
220 CONSTANT: EINPROGRESS 115
222 CONSTANT: EUCLEAN 117
223 CONSTANT: ENOTNAM 118
224 CONSTANT: ENAVAIL 119
226 CONSTANT: EREMOTEIO 121
228 CONSTANT: ENOMEDIUM 123
229 CONSTANT: EMEDIUMTYPE 124
230 CONSTANT: ECANCELED 125
232 CONSTANT: EKEYEXPIRED 127
233 CONSTANT: EKEYREVOKED 128
234 CONSTANT: EKEYREJECTED 129
235 CONSTANT: EOWNERDEAD 130
236 CONSTANT: ENOTRECOVERABLE 131