]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/linux/linux.factor
7a77dc9316788c9fddfb2d12280db62b53af4089
[factor.git] / basis / unix / linux / linux.factor
1 ! Copyright (C) 2005, 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax ;
4 IN: unix
5
6 ! Linux.
7
8 : MAXPATHLEN 1024 ; inline
9
10 : O_RDONLY   HEX: 0000 ; inline
11 : O_WRONLY   HEX: 0001 ; inline
12 : O_RDWR     HEX: 0002 ; inline
13 : O_CREAT    HEX: 0040 ; inline
14 : O_EXCL     HEX: 0080 ; inline
15 : O_NOCTTY   HEX: 0100 ; inline
16 : O_TRUNC    HEX: 0200 ; inline
17 : O_APPEND   HEX: 0400 ; inline
18 : O_NONBLOCK HEX: 0800 ; inline
19 : O_NDELAY O_NONBLOCK ; inline
20
21 : SOL_SOCKET 1 ; inline
22
23 : FD_SETSIZE 1024 ; inline
24
25 : SO_REUSEADDR 2 ; inline
26 : SO_OOBINLINE 10 ; inline
27 : SO_SNDTIMEO HEX: 15 ; inline
28 : SO_RCVTIMEO HEX: 14 ; inline
29
30 : F_SETFD 2 ; inline
31 : FD_CLOEXEC 1 ; inline
32
33 : F_SETFL 4 ; inline
34
35 C-STRUCT: addrinfo
36     { "int" "flags" }
37     { "int" "family" }
38     { "int" "socktype" }
39     { "int" "protocol" }
40     { "socklen_t" "addrlen" }
41     { "void*" "addr" }
42     { "char*" "canonname" }
43     { "addrinfo*" "next" } ;
44
45 C-STRUCT: sockaddr-in
46     { "ushort" "family" }
47     { "ushort" "port" }
48     { "in_addr_t" "addr" }
49     { "longlong" "unused" } ;
50
51 C-STRUCT: sockaddr-in6
52     { "ushort" "family" }
53     { "ushort" "port" }
54     { "uint" "flowinfo" }
55     { { "uchar" 16 } "addr" }
56     { "uint" "scopeid" } ;
57
58 : max-un-path 108 ; inline
59
60 C-STRUCT: sockaddr-un
61     { "ushort" "family" }
62     { { "char" max-un-path } "path" } ;
63
64 : SOCK_STREAM 1 ; inline
65 : SOCK_DGRAM 2 ; inline
66
67 : AF_UNSPEC 0 ; inline
68 : AF_UNIX 1 ; inline
69 : AF_INET 2 ; inline
70 : AF_INET6 10 ; inline
71
72 : PF_UNSPEC AF_UNSPEC ; inline
73 : PF_UNIX AF_UNIX ; inline
74 : PF_INET AF_INET ; inline
75 : PF_INET6 AF_INET6 ; inline
76
77 : IPPROTO_TCP 6 ; inline
78 : IPPROTO_UDP 17 ; inline
79
80 : AI_PASSIVE 1 ; inline
81
82 : SEEK_SET 0 ; inline
83 : SEEK_CUR 1 ; inline
84 : SEEK_END 2 ; inline
85
86 C-STRUCT: passwd
87     { "char*"  "pw_name" }
88     { "char*"  "pw_passwd" }
89     { "uid_t"  "pw_uid" }
90     { "gid_t"  "pw_gid" }
91     { "char*"  "pw_gecos" }
92     { "char*"  "pw_dir" }
93     { "char*"  "pw_shell" } ;
94
95 C-STRUCT: dirent
96     { "__ino_t" "d_ino" }
97     { "__off_t" "d_off" }
98     { "ushort" "d_reclen" }
99     { "uchar" "d_type" }
100     { { "char" 256 } "d_name" } ;
101
102 : EPERM 1 ; inline
103 : ENOENT 2 ; inline
104 : ESRCH 3 ; inline
105 : EINTR 4 ; inline
106 : EIO 5 ; inline
107 : ENXIO 6 ; inline
108 : E2BIG 7 ; inline
109 : ENOEXEC 8 ; inline
110 : EBADF 9 ; inline
111 : ECHILD 10 ; inline
112 : EAGAIN 11 ; inline
113 : ENOMEM 12 ; inline
114 : EACCES 13 ; inline
115 : EFAULT 14 ; inline
116 : ENOTBLK 15 ; inline
117 : EBUSY 16 ; inline
118 : EEXIST 17 ; inline
119 : EXDEV 18 ; inline
120 : ENODEV 19 ; inline
121 : ENOTDIR 20 ; inline
122 : EISDIR 21 ; inline
123 : EINVAL 22 ; inline
124 : ENFILE 23 ; inline
125 : EMFILE 24 ; inline
126 : ENOTTY 25 ; inline
127 : ETXTBSY 26 ; inline
128 : EFBIG 27 ; inline
129 : ENOSPC 28 ; inline
130 : ESPIPE 29 ; inline
131 : EROFS 30 ; inline
132 : EMLINK 31 ; inline
133 : EPIPE 32 ; inline
134 : EDOM 33 ; inline
135 : ERANGE 34 ; inline
136 : EDEADLK 35 ; inline
137 : ENAMETOOLONG 36 ; inline
138 : ENOLCK 37 ; inline
139 : ENOSYS 38 ; inline
140 : ENOTEMPTY 39 ; inline
141 : ELOOP 40 ; inline
142 : EWOULDBLOCK EAGAIN ; inline
143 : ENOMSG 42 ; inline
144 : EIDRM 43 ; inline
145 : ECHRNG 44 ; inline
146 : EL2NSYNC 45 ; inline
147 : EL3HLT 46 ; inline
148 : EL3RST 47 ; inline
149 : ELNRNG 48 ; inline
150 : EUNATCH 49 ; inline
151 : ENOCSI 50 ; inline
152 : EL2HLT 51 ; inline
153 : EBADE 52 ; inline
154 : EBADR 53 ; inline
155 : EXFULL 54 ; inline
156 : ENOANO 55 ; inline
157 : EBADRQC 56 ; inline
158 : EBADSLT 57 ; inline
159 : EDEADLOCK EDEADLK ; inline
160 : EBFONT 59 ; inline
161 : ENOSTR 60 ; inline
162 : ENODATA 61 ; inline
163 : ETIME 62 ; inline
164 : ENOSR 63 ; inline
165 : ENONET 64 ; inline
166 : ENOPKG 65 ; inline
167 : EREMOTE 66 ; inline
168 : ENOLINK 67 ; inline
169 : EADV 68 ; inline
170 : ESRMNT 69 ; inline
171 : ECOMM 70 ; inline
172 : EPROTO 71 ; inline
173 : EMULTIHOP 72 ; inline
174 : EDOTDOT 73 ; inline
175 : EBADMSG 74 ; inline
176 : EOVERFLOW 75 ; inline
177 : ENOTUNIQ 76 ; inline
178 : EBADFD 77 ; inline
179 : EREMCHG 78 ; inline
180 : ELIBACC 79 ; inline
181 : ELIBBAD 80 ; inline
182 : ELIBSCN 81 ; inline
183 : ELIBMAX 82 ; inline
184 : ELIBEXEC 83 ; inline
185 : EILSEQ 84 ; inline
186 : ERESTART 85 ; inline
187 : ESTRPIPE 86 ; inline
188 : EUSERS 87 ; inline
189 : ENOTSOCK 88 ; inline
190 : EDESTADDRREQ 89 ; inline
191 : EMSGSIZE 90 ; inline
192 : EPROTOTYPE 91 ; inline
193 : ENOPROTOOPT 92 ; inline
194 : EPROTONOSUPPORT 93 ; inline
195 : ESOCKTNOSUPPORT 94 ; inline
196 : EOPNOTSUPP 95 ; inline
197 : EPFNOSUPPORT 96 ; inline
198 : EAFNOSUPPORT 97 ; inline
199 : EADDRINUSE 98 ; inline
200 : EADDRNOTAVAIL 99 ; inline
201 : ENETDOWN 100 ; inline
202 : ENETUNREACH 101 ; inline
203 : ENETRESET 102 ; inline
204 : ECONNABORTED 103 ; inline
205 : ECONNRESET 104 ; inline
206 : ENOBUFS 105 ; inline
207 : EISCONN 106 ; inline
208 : ENOTCONN 107 ; inline
209 : ESHUTDOWN 108 ; inline
210 : ETOOMANYREFS 109 ; inline
211 : ETIMEDOUT 110 ; inline
212 : ECONNREFUSED 111 ; inline
213 : EHOSTDOWN 112 ; inline
214 : EHOSTUNREACH 113 ; inline
215 : EALREADY 114 ; inline
216 : EINPROGRESS 115 ; inline
217 : ESTALE 116 ; inline
218 : EUCLEAN 117 ; inline
219 : ENOTNAM 118 ; inline
220 : ENAVAIL 119 ; inline
221 : EISNAM 120 ; inline
222 : EREMOTEIO 121 ; inline
223 : EDQUOT 122 ; inline
224 : ENOMEDIUM 123 ; inline
225 : EMEDIUMTYPE 124 ; inline
226 : ECANCELED 125 ; inline
227 : ENOKEY 126 ; inline
228 : EKEYEXPIRED 127 ; inline
229 : EKEYREVOKED 128 ; inline
230 : EKEYREJECTED 129 ; inline
231 : EOWNERDEAD 130 ; inline
232 : ENOTRECOVERABLE 131 ; inline