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