]> git.llucax.com Git - software/druntime.git/blob - import/stdc/errno.d
Fixed a few build script issues on posix, including a bug in looking for some of...
[software/druntime.git] / import / stdc / errno.d
1 /**
2  * D header file for C99.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: ISO/IEC 9899:1999 (E)
8  */
9 module stdc.errno;
10
11 private
12 {
13     extern (C) int getErrno();
14     extern (C) int setErrno(int);
15 }
16
17 int errno()          { return getErrno();      }
18 int errno( int val ) { return setErrno( val ); }
19
20 extern (C):
21
22 version( Windows )
23 {
24     const EPERM             = 1;        // Operation not permitted
25     const ENOENT            = 2;        // No such file or directory
26     const ESRCH             = 3;        // No such process
27     const EINTR             = 4;        // Interrupted system call
28     const EIO               = 5;        // I/O error
29     const ENXIO             = 6;        // No such device or address
30     const E2BIG             = 7;        // Argument list too long
31     const ENOEXEC           = 8;        // Exec format error
32     const EBADF             = 9;        // Bad file number
33     const ECHILD            = 10;       // No child processes
34     const EAGAIN            = 11;       // Try again
35     const ENOMEM            = 12;       // Out of memory
36     const EACCES            = 13;       // Permission denied
37     const EFAULT            = 14;       // Bad address
38     const EBUSY             = 16;       // Device or resource busy
39     const EEXIST            = 17;       // File exists
40     const EXDEV             = 18;       // Cross-device link
41     const ENODEV            = 19;       // No such device
42     const ENOTDIR           = 20;       // Not a directory
43     const EISDIR            = 21;       // Is a directory
44     const EINVAL            = 22;       // Invalid argument
45     const ENFILE            = 23;       // File table overflow
46     const EMFILE            = 24;       // Too many open files
47     const ENOTTY            = 25;       // Not a typewriter
48     const EFBIG             = 27;       // File too large
49     const ENOSPC            = 28;       // No space left on device
50     const ESPIPE            = 29;       // Illegal seek
51     const EROFS             = 30;       // Read-only file system
52     const EMLINK            = 31;       // Too many links
53     const EPIPE             = 32;       // Broken pipe
54     const EDOM              = 33;       // Math argument out of domain of func
55     const ERANGE            = 34;       // Math result not representable
56     const EDEADLK           = 36;       // Resource deadlock would occur
57     const ENAMETOOLONG      = 38;       // File name too long
58     const ENOLCK            = 39;       // No record locks available
59     const ENOSYS            = 40;       // Function not implemented
60     const ENOTEMPTY         = 41;       // Directory not empty
61     const EILSEQ            = 42;       // Illegal byte sequence
62     const EDEADLOCK         = EDEADLK;
63 }
64 else version( linux )
65 {
66     const EPERM             = 1;        // Operation not permitted
67     const ENOENT            = 2;        // No such file or directory
68     const ESRCH             = 3;        // No such process
69     const EINTR             = 4;        // Interrupted system call
70     const EIO               = 5;        // I/O error
71     const ENXIO             = 6;        // No such device or address
72     const E2BIG             = 7;        // Argument list too long
73     const ENOEXEC           = 8;        // Exec format error
74     const EBADF             = 9;        // Bad file number
75     const ECHILD            = 10;       // No child processes
76     const EAGAIN            = 11;       // Try again
77     const ENOMEM            = 12;       // Out of memory
78     const EACCES            = 13;       // Permission denied
79     const EFAULT            = 14;       // Bad address
80     const ENOTBLK           = 15;       // Block device required
81     const EBUSY             = 16;       // Device or resource busy
82     const EEXIST            = 17;       // File exists
83     const EXDEV             = 18;       // Cross-device link
84     const ENODEV            = 19;       // No such device
85     const ENOTDIR           = 20;       // Not a directory
86     const EISDIR            = 21;       // Is a directory
87     const EINVAL            = 22;       // Invalid argument
88     const ENFILE            = 23;       // File table overflow
89     const EMFILE            = 24;       // Too many open files
90     const ENOTTY            = 25;       // Not a typewriter
91     const ETXTBSY           = 26;       // Text file busy
92     const EFBIG             = 27;       // File too large
93     const ENOSPC            = 28;       // No space left on device
94     const ESPIPE            = 29;       // Illegal seek
95     const EROFS             = 30;       // Read-only file system
96     const EMLINK            = 31;       // Too many links
97     const EPIPE             = 32;       // Broken pipe
98     const EDOM              = 33;       // Math argument out of domain of func
99     const ERANGE            = 34;       // Math result not representable
100     const EDEADLK           = 35;       // Resource deadlock would occur
101     const ENAMETOOLONG      = 36;       // File name too long
102     const ENOLCK            = 37;       // No record locks available
103     const ENOSYS            = 38;       // Function not implemented
104     const ENOTEMPTY         = 39;       // Directory not empty
105     const ELOOP             = 40;       // Too many symbolic links encountered
106     const EWOULDBLOCK       = EAGAIN;   // Operation would block
107     const ENOMSG            = 42;       // No message of desired type
108     const EIDRM             = 43;       // Identifier removed
109     const ECHRNG            = 44;       // Channel number out of range
110     const EL2NSYNC          = 45;       // Level 2 not synchronized
111     const EL3HLT            = 46;       // Level 3 halted
112     const EL3RST            = 47;       // Level 3 reset
113     const ELNRNG            = 48;       // Link number out of range
114     const EUNATCH           = 49;       // Protocol driver not attached
115     const ENOCSI            = 50;       // No CSI structure available
116     const EL2HLT            = 51;       // Level 2 halted
117     const EBADE             = 52;       // Invalid exchange
118     const EBADR             = 53;       // Invalid request descriptor
119     const EXFULL            = 54;       // Exchange full
120     const ENOANO            = 55;       // No anode
121     const EBADRQC           = 56;       // Invalid request code
122     const EBADSLT           = 57;       // Invalid slot
123     const EDEADLOCK         = EDEADLK;
124     const EBFONT            = 59;       // Bad font file format
125     const ENOSTR            = 60;       // Device not a stream
126     const ENODATA           = 61;       // No data available
127     const ETIME             = 62;       // Timer expired
128     const ENOSR             = 63;       // Out of streams resources
129     const ENONET            = 64;       // Machine is not on the network
130     const ENOPKG            = 65;       // Package not installed
131     const EREMOTE           = 66;       // Object is remote
132     const ENOLINK           = 67;       // Link has been severed
133     const EADV              = 68;       // Advertise error
134     const ESRMNT            = 69;       // Srmount error
135     const ECOMM             = 70;       // Communication error on send
136     const EPROTO            = 71;       // Protocol error
137     const EMULTIHOP         = 72;       // Multihop attempted
138     const EDOTDOT           = 73;       // RFS specific error
139     const EBADMSG           = 74;       // Not a data message
140     const EOVERFLOW         = 75;       // Value too large for defined data type
141     const ENOTUNIQ          = 76;       // Name not unique on network
142     const EBADFD            = 77;       // File descriptor in bad state
143     const EREMCHG           = 78;       // Remote address changed
144     const ELIBACC           = 79;       // Can not access a needed shared library
145     const ELIBBAD           = 80;       // Accessing a corrupted shared library
146     const ELIBSCN           = 81;       // .lib section in a.out corrupted
147     const ELIBMAX           = 82;       // Attempting to link in too many shared libraries
148     const ELIBEXEC          = 83;       // Cannot exec a shared library directly
149     const EILSEQ            = 84;       // Illegal byte sequence
150     const ERESTART          = 85;       // Interrupted system call should be restarted
151     const ESTRPIPE          = 86;       // Streams pipe error
152     const EUSERS            = 87;       // Too many users
153     const ENOTSOCK          = 88;       // Socket operation on non-socket
154     const EDESTADDRREQ      = 89;       // Destination address required
155     const EMSGSIZE          = 90;       // Message too long
156     const EPROTOTYPE        = 91;       // Protocol wrong type for socket
157     const ENOPROTOOPT       = 92;       // Protocol not available
158     const EPROTONOSUPPORT   = 93;       // Protocol not supported
159     const ESOCKTNOSUPPORT   = 94;       // Socket type not supported
160     const EOPNOTSUPP        = 95;       // Operation not supported on transport endpoint
161     const EPFNOSUPPORT      = 96;       // Protocol family not supported
162     const EAFNOSUPPORT      = 97;       // Address family not supported by protocol
163     const EADDRINUSE        = 98;       // Address already in use
164     const EADDRNOTAVAIL     = 99;       // Cannot assign requested address
165     const ENETDOWN          = 100;      // Network is down
166     const ENETUNREACH       = 101;      // Network is unreachable
167     const ENETRESET         = 102;      // Network dropped connection because of reset
168     const ECONNABORTED      = 103;      // Software caused connection abort
169     const ECONNRESET        = 104;      // Connection reset by peer
170     const ENOBUFS           = 105;      // No buffer space available
171     const EISCONN           = 106;      // Transport endpoint is already connected
172     const ENOTCONN          = 107;      // Transport endpoint is not connected
173     const ESHUTDOWN         = 108;      // Cannot send after transport endpoint shutdown
174     const ETOOMANYREFS      = 109;      // Too many references: cannot splice
175     const ETIMEDOUT         = 110;      // Connection timed out
176     const ECONNREFUSED      = 111;      // Connection refused
177     const EHOSTDOWN         = 112;      // Host is down
178     const EHOSTUNREACH      = 113;      // No route to host
179     const EALREADY          = 114;      // Operation already in progress
180     const EINPROGRESS       = 115;      // Operation now in progress
181     const ESTALE            = 116;      // Stale NFS file handle
182     const EUCLEAN           = 117;      // Structure needs cleaning
183     const ENOTNAM           = 118;      // Not a XENIX named type file
184     const ENAVAIL           = 119;      // No XENIX semaphores available
185     const EISNAM            = 120;      // Is a named type file
186     const EREMOTEIO         = 121;      // Remote I/O error
187     const EDQUOT            = 122;      // Quota exceeded
188     const ENOMEDIUM         = 123;      // No medium found
189     const EMEDIUMTYPE       = 124;      // Wrong medium type
190     const ECANCELED         = 125;      // Operation Canceled
191     const ENOKEY            = 126;      // Required key not available
192     const EKEYEXPIRED       = 127;      // Key has expired
193     const EKEYREVOKED       = 128;      // Key has been revoked
194     const EKEYREJECTED      = 129;      // Key was rejected by service
195     const EOWNERDEAD        = 130;      // Owner died
196     const ENOTRECOVERABLE   = 131;      // State not recoverable
197 }
198 else version( darwin )
199 {
200     const EPERM             = 1;        // Operation not permitted
201     const ENOENT            = 2;        // No such file or directory
202     const ESRCH             = 3;        // No such process
203     const EINTR             = 4;        // Interrupted system call
204     const EIO               = 5;        // Input/output error
205     const ENXIO             = 6;        // Device not configured
206     const E2BIG             = 7;        // Argument list too long
207     const ENOEXEC           = 8;        // Exec format error
208     const EBADF             = 9;        // Bad file descriptor
209     const ECHILD            = 10;       // No child processes
210     const EDEADLK           = 11;       // Resource deadlock avoided
211     const ENOMEM            = 12;       // Cannot allocate memory
212     const EACCES            = 13;       // Permission denied
213     const EFAULT            = 14;       // Bad address
214     const EBUSY             = 16;       // Device busy
215     const EEXIST            = 17;       // File exists
216     const EXDEV             = 18;       // Cross-device link
217     const ENODEV            = 19;       // Operation not supported by device
218     const ENOTDIR           = 20;       // Not a directory
219     const EISDIR            = 21;       // Is a directory
220     const EINVAL            = 22;       // Invalid argument
221     const ENFILE            = 23;       // Too many open files in system
222     const EMFILE            = 24;       // Too many open files
223     const ENOTTY            = 25;       // Inappropriate ioctl for device
224     const ETXTBSY           = 26;       // Text file busy
225     const EFBIG             = 27;       // File too large
226     const ENOSPC            = 28;       // No space left on device
227     const ESPIPE            = 29;       // Illegal seek
228     const EROFS             = 30;       // Read-only file system
229     const EMLINK            = 31;       // Too many links
230     const EPIPE             = 32;       // Broken pipe
231     const EDOM              = 33;       // Numerical argument out of domain
232     const ERANGE            = 34;       // Result too large
233     const EAGAIN            = 35;       // Resource temporarily unavailable
234     const EWOULDBLOCK       = EAGAIN;   // Operation would block
235     const EINPROGRESS       = 36;       // Operation now in progress
236     const EALREADY          = 37;       // Operation already in progress
237     const ENOTSOCK          = 38;       // Socket operation on non-socket
238     const EDESTADDRREQ      = 39;       // Destination address required
239     const EMSGSIZE          = 40;       // Message too long
240     const EPROTOTYPE        = 41;       // Protocol wrong type for socket
241     const ENOPROTOOPT       = 42;       // Protocol not available
242     const EPROTONOSUPPORT   = 43;       // Protocol not supported
243     const ENOTSUP           = 45;       // Operation not supported
244     const EOPNOTSUPP        = ENOTSUP;  // Operation not supported on socket
245     const EAFNOSUPPORT      = 47;       // Address family not supported by protocol family
246     const EADDRINUSE        = 48;       // Address already in use
247     const EADDRNOTAVAIL     = 49;       // Can't assign requested address
248     const ENETDOWN          = 50;       // Network is down
249     const ENETUNREACH       = 51;       // Network is unreachable
250     const ENETRESET         = 52;       // Network dropped connection on reset
251     const ECONNABORTED      = 53;       // Software caused connection abort
252     const ECONNRESET        = 54;       // Connection reset by peer
253     const ENOBUFS           = 55;       // No buffer space available
254     const EISCONN           = 56;       // Socket is already connected
255     const ENOTCONN          = 57;       // Socket is not connected
256     const ETIMEDOUT         = 60;       // Operation timed out
257     const ECONNREFUSED      = 61;       // Connection refused
258     const ELOOP             = 62;       // Too many levels of symbolic links
259     const ENAMETOOLONG      = 63;       // File name too long
260     const EHOSTUNREACH      = 65;       // No route to host
261     const ENOTEMPTY         = 66;       // Directory not empty
262     const EDQUOT            = 69;       // Disc quota exceeded
263     const ESTALE            = 70;       // Stale NFS file handle
264     const ENOLCK            = 77;       // No locks available
265     const ENOSYS            = 78;       // Function not implemented
266     const EOVERFLOW         = 84;       // Value too large to be stored in data type
267     const ECANCELED         = 89;       // Operation canceled
268     const EIDRM             = 90;       // Identifier removed
269     const ENOMSG            = 91;       // No message of desired type
270     const EILSEQ            = 92;       // Illegal byte sequence
271     const EBADMSG           = 94;       // Bad message
272     const EMULTIHOP         = 95;       // Reserved
273     const ENODATA           = 96;       // No message available on STREAM
274     const ENOLINK           = 97;       // Reserved
275     const ENOSR             = 98;       // No STREAM resources
276     const ENOSTR            = 99;       // Not a STREAM
277     const EPROTO            = 100;      // Protocol error
278     const ETIME             = 101;      // STREAM ioctl timeout
279     const ELAST             = 101;      // Must be equal largest errno
280 }
281 else version( freebsd )
282 {
283     const EPERM             = 1;        // Operation not permitted
284     const ENOENT            = 2;        // No such file or directory
285     const ESRCH             = 3;        // No such process
286     const EINTR             = 4;        // Interrupted system call
287     const EIO               = 5;        // Input/output error
288     const ENXIO             = 6;        // Device not configured
289     const E2BIG             = 7;        // Argument list too long
290     const ENOEXEC           = 8;        // Exec format error
291     const EBADF             = 9;        // Bad file descriptor
292     const ECHILD            = 10;       // No child processes
293     const EDEADLK           = 11;       // Resource deadlock avoided
294     const ENOMEM            = 12;       // Cannot allocate memory
295     const EACCES            = 13;       // Permission denied
296     const EFAULT            = 14;       // Bad address
297     const ENOTBLK           = 15;       // Block device required
298     const EBUSY             = 16;       // Device busy
299     const EEXIST            = 17;       // File exists
300     const EXDEV             = 18;       // Cross-device link
301     const ENODEV            = 19;       // Operation not supported by device
302     const ENOTDIR           = 20;       // Not a directory
303     const EISDIR            = 21;       // Is a directory
304     const EINVAL            = 22;       // Invalid argument
305     const ENFILE            = 23;       // Too many open files in system
306     const EMFILE            = 24;       // Too many open files
307     const ENOTTY            = 25;       // Inappropriate ioctl for device
308     const ETXTBSY           = 26;       // Text file busy
309     const EFBIG             = 27;       // File too large
310     const ENOSPC            = 28;       // No space left on device
311     const ESPIPE            = 29;       // Illegal seek
312     const EROFS             = 30;       // Read-only file system
313     const EMLINK            = 31;       // Too many links
314     const EPIPE             = 32;       // Broken pipe
315     const EDOM              = 33;       // Numerical argument out of domain
316     const ERANGE            = 34;       // Result too large
317     const EAGAIN            = 35;       // Resource temporarily unavailable
318     const EWOULDBLOCK       = EAGAIN;   // Operation would block
319     const EINPROGRESS       = 36;       // Operation now in progress
320     const EALREADY          = 37;       // Operation already in progress
321     const ENOTSOCK          = 38;       // Socket operation on non-socket
322     const EDESTADDRREQ      = 39;       // Destination address required
323     const EMSGSIZE          = 40;       // Message too long
324     const EPROTOTYPE        = 41;       // Protocol wrong type for socket
325     const ENOPROTOOPT       = 42;       // Protocol not available
326     const EPROTONOSUPPORT   = 43;       // Protocol not supported
327     const ENOTSUP           = 45;       // Operation not supported
328     const EOPNOTSUPP        = ENOTSUP;  // Operation not supported on socket
329     const EAFNOSUPPORT      = 47;       // Address family not supported by protocol family
330     const EADDRINUSE        = 48;       // Address already in use
331     const EADDRNOTAVAIL     = 49;       // Can't assign requested address
332     const ENETDOWN          = 50;       // Network is down
333     const ENETUNREACH       = 51;       // Network is unreachable
334     const ENETRESET         = 52;       // Network dropped connection on reset
335     const ECONNABORTED      = 53;       // Software caused connection abort
336     const ECONNRESET        = 54;       // Connection reset by peer
337     const ENOBUFS           = 55;       // No buffer space available
338     const EISCONN           = 56;       // Socket is already connected
339     const ENOTCONN          = 57;       // Socket is not connected
340     const ESHUTDOWN         = 58;       // Can't send after socket shutdown
341     const ETOOMANYREFS      = 59;       // Too many refrences; can't splice
342     const ETIMEDOUT         = 60;       // Operation timed out
343     const ECONNREFUSED      = 61;       // Connection refused
344     const ELOOP             = 62;       // Too many levels of symbolic links
345     const ENAMETOOLONG      = 63;       // File name too long
346     const EHOSTUNREACH      = 65;       // No route to host
347     const ENOTEMPTY         = 66;       // Directory not empty
348     const EPROCLIM          = 67;       // Too many processes
349     const EUSERS            = 68;       // Too many users
350     const EDQUOT            = 69;       // Disc quota exceeded
351     const ESTALE            = 70;       // Stale NFS file handle
352     const EREMOTE           = 71;       // Too many levels of remote in path
353     const EBADRPC           = 72;       // RPC struct is bad
354     const ERPCMISMATCH      = 73;       // RPC version wrong
355     const EPROGUNAVAIL      = 74;       // RPC prog. not avail
356     const EPROGMISMATCH     = 75;       // Program version wrong
357     const EPROCUNAVAIL      = 76;       // Bad procedure for program
358     const ENOLCK            = 77;       // No locks available
359     const ENOSYS            = 78;       // Function not implemented
360     const EFTYPE            = 79;       // Inappropriate file type or format
361     const EAUTH             = 80;       // Authentication error
362     const ENEEDAUTH         = 81;       // Need authenticator
363     const EIDRM             = 82;       // Itendifier removed
364     const ENOMSG            = 83;       // No message of desired type
365     const EOVERFLOW         = 84;       // Value too large to be stored in data type
366     const ECANCELED         = 85;       // Operation canceled
367     const EILSEQ            = 86;       // Illegal byte sequence
368     const ENOATTR           = 87;       // Attribute not found
369     const EDOOFUS           = 88;       // Programming error
370     const EBADMSG           = 89;       // Bad message
371     const EMULTIHOP         = 90;       // Multihop attempted
372     const ENOLINK           = 91;       // Link has been severed
373     const EPROTO            = 92;       // Protocol error
374     const ELAST             = 92;       // Must be equal largest errno
375 }