linux_errnos/linux/
generic.rs

1//! Generic error numbers.
2
3#![allow(dead_code)]
4
5// This file automatically generate. Do not edit.
6
7crate::macros::def_errno!();
8
9impl Errno {
10    /// Operation not permitted
11    pub const EPERM: Self = Self(1);
12    /// No such file or directory
13    pub const ENOENT: Self = Self(2);
14    /// No such process
15    pub const ESRCH: Self = Self(3);
16    /// Interrupted system call
17    pub const EINTR: Self = Self(4);
18    /// I/O error
19    pub const EIO: Self = Self(5);
20    /// No such device or address
21    pub const ENXIO: Self = Self(6);
22    /// Argument list too long
23    pub const E2BIG: Self = Self(7);
24    /// Exec format error
25    pub const ENOEXEC: Self = Self(8);
26    /// Bad file number
27    pub const EBADF: Self = Self(9);
28    /// No child processes
29    pub const ECHILD: Self = Self(10);
30    /// Try again
31    pub const EAGAIN: Self = Self(11);
32    /// Out of memory
33    pub const ENOMEM: Self = Self(12);
34    /// Permission denied
35    pub const EACCES: Self = Self(13);
36    /// Bad address
37    pub const EFAULT: Self = Self(14);
38    /// Block device required
39    pub const ENOTBLK: Self = Self(15);
40    /// Device or resource busy
41    pub const EBUSY: Self = Self(16);
42    /// File exists
43    pub const EEXIST: Self = Self(17);
44    /// Cross-device link
45    pub const EXDEV: Self = Self(18);
46    /// No such device
47    pub const ENODEV: Self = Self(19);
48    /// Not a directory
49    pub const ENOTDIR: Self = Self(20);
50    /// Is a directory
51    pub const EISDIR: Self = Self(21);
52    /// Invalid argument
53    pub const EINVAL: Self = Self(22);
54    /// File table overflow
55    pub const ENFILE: Self = Self(23);
56    /// Too many open files
57    pub const EMFILE: Self = Self(24);
58    /// Not a typewriter
59    pub const ENOTTY: Self = Self(25);
60    /// Text file busy
61    pub const ETXTBSY: Self = Self(26);
62    /// File too large
63    pub const EFBIG: Self = Self(27);
64    /// No space left on device
65    pub const ENOSPC: Self = Self(28);
66    /// Illegal seek
67    pub const ESPIPE: Self = Self(29);
68    /// Read-only file system
69    pub const EROFS: Self = Self(30);
70    /// Too many links
71    pub const EMLINK: Self = Self(31);
72    /// Broken pipe
73    pub const EPIPE: Self = Self(32);
74    /// Math argument out of domain of func
75    pub const EDOM: Self = Self(33);
76    /// Math result not representable
77    pub const ERANGE: Self = Self(34);
78    /// Resource deadlock would occur
79    pub const EDEADLK: Self = Self(35);
80    /// File name too long
81    pub const ENAMETOOLONG: Self = Self(36);
82    /// No record locks available
83    pub const ENOLCK: Self = Self(37);
84    /// Invalid system call number
85    pub const ENOSYS: Self = Self(38);
86    /// Directory not empty
87    pub const ENOTEMPTY: Self = Self(39);
88    /// Too many symbolic links encountered
89    pub const ELOOP: Self = Self(40);
90    /// No message of desired type
91    pub const ENOMSG: Self = Self(42);
92    /// Identifier removed
93    pub const EIDRM: Self = Self(43);
94    /// Channel number out of range
95    pub const ECHRNG: Self = Self(44);
96    /// Level 2 not synchronized
97    pub const EL2NSYNC: Self = Self(45);
98    /// Level 3 halted
99    pub const EL3HLT: Self = Self(46);
100    /// Level 3 reset
101    pub const EL3RST: Self = Self(47);
102    /// Link number out of range
103    pub const ELNRNG: Self = Self(48);
104    /// Protocol driver not attached
105    pub const EUNATCH: Self = Self(49);
106    /// No CSI structure available
107    pub const ENOCSI: Self = Self(50);
108    /// Level 2 halted
109    pub const EL2HLT: Self = Self(51);
110    /// Invalid exchange
111    pub const EBADE: Self = Self(52);
112    /// Invalid request descriptor
113    pub const EBADR: Self = Self(53);
114    /// Exchange full
115    pub const EXFULL: Self = Self(54);
116    /// No anode
117    pub const ENOANO: Self = Self(55);
118    /// Invalid request code
119    pub const EBADRQC: Self = Self(56);
120    /// Invalid slot
121    pub const EBADSLT: Self = Self(57);
122    /// Bad font file format
123    pub const EBFONT: Self = Self(59);
124    /// Device not a stream
125    pub const ENOSTR: Self = Self(60);
126    /// No data available
127    pub const ENODATA: Self = Self(61);
128    /// Timer expired
129    pub const ETIME: Self = Self(62);
130    /// Out of streams resources
131    pub const ENOSR: Self = Self(63);
132    /// Machine is not on the network
133    pub const ENONET: Self = Self(64);
134    /// Package not installed
135    pub const ENOPKG: Self = Self(65);
136    /// Object is remote
137    pub const EREMOTE: Self = Self(66);
138    /// Link has been severed
139    pub const ENOLINK: Self = Self(67);
140    /// Advertise error
141    pub const EADV: Self = Self(68);
142    /// Srmount error
143    pub const ESRMNT: Self = Self(69);
144    /// Communication error on send
145    pub const ECOMM: Self = Self(70);
146    /// Protocol error
147    pub const EPROTO: Self = Self(71);
148    /// Multihop attempted
149    pub const EMULTIHOP: Self = Self(72);
150    /// RFS specific error
151    pub const EDOTDOT: Self = Self(73);
152    /// Not a data message
153    pub const EBADMSG: Self = Self(74);
154    /// Value too large for defined data type
155    pub const EOVERFLOW: Self = Self(75);
156    /// Name not unique on network
157    pub const ENOTUNIQ: Self = Self(76);
158    /// File descriptor in bad state
159    pub const EBADFD: Self = Self(77);
160    /// Remote address changed
161    pub const EREMCHG: Self = Self(78);
162    /// Can not access a needed shared library
163    pub const ELIBACC: Self = Self(79);
164    /// Accessing a corrupted shared library
165    pub const ELIBBAD: Self = Self(80);
166    /// .lib section in a.out corrupted
167    pub const ELIBSCN: Self = Self(81);
168    /// Attempting to link in too many shared libraries
169    pub const ELIBMAX: Self = Self(82);
170    /// Cannot exec a shared library directly
171    pub const ELIBEXEC: Self = Self(83);
172    /// Illegal byte sequence
173    pub const EILSEQ: Self = Self(84);
174    /// Interrupted system call should be restarted
175    pub const ERESTART: Self = Self(85);
176    /// Streams pipe error
177    pub const ESTRPIPE: Self = Self(86);
178    /// Too many users
179    pub const EUSERS: Self = Self(87);
180    /// Socket operation on non-socket
181    pub const ENOTSOCK: Self = Self(88);
182    /// Destination address required
183    pub const EDESTADDRREQ: Self = Self(89);
184    /// Message too long
185    pub const EMSGSIZE: Self = Self(90);
186    /// Protocol wrong type for socket
187    pub const EPROTOTYPE: Self = Self(91);
188    /// Protocol not available
189    pub const ENOPROTOOPT: Self = Self(92);
190    /// Protocol not supported
191    pub const EPROTONOSUPPORT: Self = Self(93);
192    /// Socket type not supported
193    pub const ESOCKTNOSUPPORT: Self = Self(94);
194    /// Operation not supported on transport endpoint
195    pub const EOPNOTSUPP: Self = Self(95);
196    /// Protocol family not supported
197    pub const EPFNOSUPPORT: Self = Self(96);
198    /// Address family not supported by protocol
199    pub const EAFNOSUPPORT: Self = Self(97);
200    /// Address already in use
201    pub const EADDRINUSE: Self = Self(98);
202    /// Cannot assign requested address
203    pub const EADDRNOTAVAIL: Self = Self(99);
204    /// Network is down
205    pub const ENETDOWN: Self = Self(100);
206    /// Network is unreachable
207    pub const ENETUNREACH: Self = Self(101);
208    /// Network dropped connection because of reset
209    pub const ENETRESET: Self = Self(102);
210    /// Software caused connection abort
211    pub const ECONNABORTED: Self = Self(103);
212    /// Connection reset by peer
213    pub const ECONNRESET: Self = Self(104);
214    /// No buffer space available
215    pub const ENOBUFS: Self = Self(105);
216    /// Transport endpoint is already connected
217    pub const EISCONN: Self = Self(106);
218    /// Transport endpoint is not connected
219    pub const ENOTCONN: Self = Self(107);
220    /// Cannot send after transport endpoint shutdown
221    pub const ESHUTDOWN: Self = Self(108);
222    /// Too many references: cannot splice
223    pub const ETOOMANYREFS: Self = Self(109);
224    /// Connection timed out
225    pub const ETIMEDOUT: Self = Self(110);
226    /// Connection refused
227    pub const ECONNREFUSED: Self = Self(111);
228    /// Host is down
229    pub const EHOSTDOWN: Self = Self(112);
230    /// No route to host
231    pub const EHOSTUNREACH: Self = Self(113);
232    /// Operation already in progress
233    pub const EALREADY: Self = Self(114);
234    /// Operation now in progress
235    pub const EINPROGRESS: Self = Self(115);
236    /// Stale file handle
237    pub const ESTALE: Self = Self(116);
238    /// Structure needs cleaning
239    pub const EUCLEAN: Self = Self(117);
240    /// Not a XENIX named type file
241    pub const ENOTNAM: Self = Self(118);
242    /// No XENIX semaphores available
243    pub const ENAVAIL: Self = Self(119);
244    /// Is a named type file
245    pub const EISNAM: Self = Self(120);
246    /// Remote I/O error
247    pub const EREMOTEIO: Self = Self(121);
248    /// Quota exceeded
249    pub const EDQUOT: Self = Self(122);
250    /// No medium found
251    pub const ENOMEDIUM: Self = Self(123);
252    /// Wrong medium type
253    pub const EMEDIUMTYPE: Self = Self(124);
254    /// Operation Canceled
255    pub const ECANCELED: Self = Self(125);
256    /// Required key not available
257    pub const ENOKEY: Self = Self(126);
258    /// Key has expired
259    pub const EKEYEXPIRED: Self = Self(127);
260    /// Key has been revoked
261    pub const EKEYREVOKED: Self = Self(128);
262    /// Key was rejected by service
263    pub const EKEYREJECTED: Self = Self(129);
264    /// Owner died
265    pub const EOWNERDEAD: Self = Self(130);
266    /// State not recoverable
267    pub const ENOTRECOVERABLE: Self = Self(131);
268    /// Operation not possible due to RF-kill
269    pub const ERFKILL: Self = Self(132);
270    /// Memory page has hardware error
271    pub const EHWPOISON: Self = Self(133);
272    /// Restart syscall
273    pub const ERESTARTSYS: Self = Self(512);
274    /// Restart if no interrupt
275    pub const ERESTARTNOINTR: Self = Self(513);
276    /// restart if no handler..
277    pub const ERESTARTNOHAND: Self = Self(514);
278    /// No ioctl command
279    pub const ENOIOCTLCMD: Self = Self(515);
280    /// restart by calling sys_restart_syscall
281    pub const ERESTART_RESTARTBLOCK: Self = Self(516);
282    /// Driver requests probe retry
283    pub const EPROBE_DEFER: Self = Self(517);
284    /// open found a stale dentry
285    pub const EOPENSTALE: Self = Self(518);
286    /// Parameter not supported
287    pub const ENOPARAM: Self = Self(519);
288    /// Illegal NFS file handle
289    pub const EBADHANDLE: Self = Self(521);
290    /// Update synchronization mismatch
291    pub const ENOTSYNC: Self = Self(522);
292    /// Cookie is stale
293    pub const EBADCOOKIE: Self = Self(523);
294    /// Operation is not supported
295    pub const ENOTSUPP: Self = Self(524);
296    /// Buffer or request is too small
297    pub const ETOOSMALL: Self = Self(525);
298    /// An untranslatable error occurred
299    pub const ESERVERFAULT: Self = Self(526);
300    /// Type not supported by server
301    pub const EBADTYPE: Self = Self(527);
302    /// Request initiated, but will not complete before timeout
303    pub const EJUKEBOX: Self = Self(528);
304    /// iocb queued, will get completion event
305    pub const EIOCBQUEUED: Self = Self(529);
306    /// conflict with recalled state
307    pub const ERECALLCONFLICT: Self = Self(530);
308    /// NFS file lock reclaim refused
309    pub const ENOGRACE: Self = Self(531);
310    /// Alias for [Self::EDEADLK]
311    pub const EDEADLOCK: Self = Self::EDEADLK;
312    /// Alias for [Self::EAGAIN]
313    pub const EWOULDBLOCK: Self = Self::EAGAIN;
314
315    pub const MIN: i32 = 1;
316    pub const MAX: i32 = 531;
317
318    #[cfg(feature = "iter")]
319    const ALL: [i32; 150] = [
320        1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
321        26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49,
322        50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
323        74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
324        97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
325        116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
326        512, 513, 514, 515, 516, 517, 518, 519, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
327        531,
328    ];
329
330    pub(crate) fn name_and_description(&self) -> Option<(&'static str, &'static str)> {
331        match self.0 {
332            1 => Some(("EPERM", "Operation not permitted")),
333            2 => Some(("ENOENT", "No such file or directory")),
334            3 => Some(("ESRCH", "No such process")),
335            4 => Some(("EINTR", "Interrupted system call")),
336            5 => Some(("EIO", "I/O error")),
337            6 => Some(("ENXIO", "No such device or address")),
338            7 => Some(("E2BIG", "Argument list too long")),
339            8 => Some(("ENOEXEC", "Exec format error")),
340            9 => Some(("EBADF", "Bad file number")),
341            10 => Some(("ECHILD", "No child processes")),
342            11 => Some(("EAGAIN", "Try again")),
343            12 => Some(("ENOMEM", "Out of memory")),
344            13 => Some(("EACCES", "Permission denied")),
345            14 => Some(("EFAULT", "Bad address")),
346            15 => Some(("ENOTBLK", "Block device required")),
347            16 => Some(("EBUSY", "Device or resource busy")),
348            17 => Some(("EEXIST", "File exists")),
349            18 => Some(("EXDEV", "Cross-device link")),
350            19 => Some(("ENODEV", "No such device")),
351            20 => Some(("ENOTDIR", "Not a directory")),
352            21 => Some(("EISDIR", "Is a directory")),
353            22 => Some(("EINVAL", "Invalid argument")),
354            23 => Some(("ENFILE", "File table overflow")),
355            24 => Some(("EMFILE", "Too many open files")),
356            25 => Some(("ENOTTY", "Not a typewriter")),
357            26 => Some(("ETXTBSY", "Text file busy")),
358            27 => Some(("EFBIG", "File too large")),
359            28 => Some(("ENOSPC", "No space left on device")),
360            29 => Some(("ESPIPE", "Illegal seek")),
361            30 => Some(("EROFS", "Read-only file system")),
362            31 => Some(("EMLINK", "Too many links")),
363            32 => Some(("EPIPE", "Broken pipe")),
364            33 => Some(("EDOM", "Math argument out of domain of func")),
365            34 => Some(("ERANGE", "Math result not representable")),
366            35 => Some(("EDEADLK", "Resource deadlock would occur")),
367            36 => Some(("ENAMETOOLONG", "File name too long")),
368            37 => Some(("ENOLCK", "No record locks available")),
369            38 => Some(("ENOSYS", "Invalid system call number")),
370            39 => Some(("ENOTEMPTY", "Directory not empty")),
371            40 => Some(("ELOOP", "Too many symbolic links encountered")),
372            42 => Some(("ENOMSG", "No message of desired type")),
373            43 => Some(("EIDRM", "Identifier removed")),
374            44 => Some(("ECHRNG", "Channel number out of range")),
375            45 => Some(("EL2NSYNC", "Level 2 not synchronized")),
376            46 => Some(("EL3HLT", "Level 3 halted")),
377            47 => Some(("EL3RST", "Level 3 reset")),
378            48 => Some(("ELNRNG", "Link number out of range")),
379            49 => Some(("EUNATCH", "Protocol driver not attached")),
380            50 => Some(("ENOCSI", "No CSI structure available")),
381            51 => Some(("EL2HLT", "Level 2 halted")),
382            52 => Some(("EBADE", "Invalid exchange")),
383            53 => Some(("EBADR", "Invalid request descriptor")),
384            54 => Some(("EXFULL", "Exchange full")),
385            55 => Some(("ENOANO", "No anode")),
386            56 => Some(("EBADRQC", "Invalid request code")),
387            57 => Some(("EBADSLT", "Invalid slot")),
388            59 => Some(("EBFONT", "Bad font file format")),
389            60 => Some(("ENOSTR", "Device not a stream")),
390            61 => Some(("ENODATA", "No data available")),
391            62 => Some(("ETIME", "Timer expired")),
392            63 => Some(("ENOSR", "Out of streams resources")),
393            64 => Some(("ENONET", "Machine is not on the network")),
394            65 => Some(("ENOPKG", "Package not installed")),
395            66 => Some(("EREMOTE", "Object is remote")),
396            67 => Some(("ENOLINK", "Link has been severed")),
397            68 => Some(("EADV", "Advertise error")),
398            69 => Some(("ESRMNT", "Srmount error")),
399            70 => Some(("ECOMM", "Communication error on send")),
400            71 => Some(("EPROTO", "Protocol error")),
401            72 => Some(("EMULTIHOP", "Multihop attempted")),
402            73 => Some(("EDOTDOT", "RFS specific error")),
403            74 => Some(("EBADMSG", "Not a data message")),
404            75 => Some(("EOVERFLOW", "Value too large for defined data type")),
405            76 => Some(("ENOTUNIQ", "Name not unique on network")),
406            77 => Some(("EBADFD", "File descriptor in bad state")),
407            78 => Some(("EREMCHG", "Remote address changed")),
408            79 => Some(("ELIBACC", "Can not access a needed shared library")),
409            80 => Some(("ELIBBAD", "Accessing a corrupted shared library")),
410            81 => Some(("ELIBSCN", ".lib section in a.out corrupted")),
411            82 => Some(("ELIBMAX", "Attempting to link in too many shared libraries")),
412            83 => Some(("ELIBEXEC", "Cannot exec a shared library directly")),
413            84 => Some(("EILSEQ", "Illegal byte sequence")),
414            85 => Some(("ERESTART", "Interrupted system call should be restarted")),
415            86 => Some(("ESTRPIPE", "Streams pipe error")),
416            87 => Some(("EUSERS", "Too many users")),
417            88 => Some(("ENOTSOCK", "Socket operation on non-socket")),
418            89 => Some(("EDESTADDRREQ", "Destination address required")),
419            90 => Some(("EMSGSIZE", "Message too long")),
420            91 => Some(("EPROTOTYPE", "Protocol wrong type for socket")),
421            92 => Some(("ENOPROTOOPT", "Protocol not available")),
422            93 => Some(("EPROTONOSUPPORT", "Protocol not supported")),
423            94 => Some(("ESOCKTNOSUPPORT", "Socket type not supported")),
424            95 => Some((
425                "EOPNOTSUPP",
426                "Operation not supported on transport endpoint",
427            )),
428            96 => Some(("EPFNOSUPPORT", "Protocol family not supported")),
429            97 => Some(("EAFNOSUPPORT", "Address family not supported by protocol")),
430            98 => Some(("EADDRINUSE", "Address already in use")),
431            99 => Some(("EADDRNOTAVAIL", "Cannot assign requested address")),
432            100 => Some(("ENETDOWN", "Network is down")),
433            101 => Some(("ENETUNREACH", "Network is unreachable")),
434            102 => Some(("ENETRESET", "Network dropped connection because of reset")),
435            103 => Some(("ECONNABORTED", "Software caused connection abort")),
436            104 => Some(("ECONNRESET", "Connection reset by peer")),
437            105 => Some(("ENOBUFS", "No buffer space available")),
438            106 => Some(("EISCONN", "Transport endpoint is already connected")),
439            107 => Some(("ENOTCONN", "Transport endpoint is not connected")),
440            108 => Some(("ESHUTDOWN", "Cannot send after transport endpoint shutdown")),
441            109 => Some(("ETOOMANYREFS", "Too many references: cannot splice")),
442            110 => Some(("ETIMEDOUT", "Connection timed out")),
443            111 => Some(("ECONNREFUSED", "Connection refused")),
444            112 => Some(("EHOSTDOWN", "Host is down")),
445            113 => Some(("EHOSTUNREACH", "No route to host")),
446            114 => Some(("EALREADY", "Operation already in progress")),
447            115 => Some(("EINPROGRESS", "Operation now in progress")),
448            116 => Some(("ESTALE", "Stale file handle")),
449            117 => Some(("EUCLEAN", "Structure needs cleaning")),
450            118 => Some(("ENOTNAM", "Not a XENIX named type file")),
451            119 => Some(("ENAVAIL", "No XENIX semaphores available")),
452            120 => Some(("EISNAM", "Is a named type file")),
453            121 => Some(("EREMOTEIO", "Remote I/O error")),
454            122 => Some(("EDQUOT", "Quota exceeded")),
455            123 => Some(("ENOMEDIUM", "No medium found")),
456            124 => Some(("EMEDIUMTYPE", "Wrong medium type")),
457            125 => Some(("ECANCELED", "Operation Canceled")),
458            126 => Some(("ENOKEY", "Required key not available")),
459            127 => Some(("EKEYEXPIRED", "Key has expired")),
460            128 => Some(("EKEYREVOKED", "Key has been revoked")),
461            129 => Some(("EKEYREJECTED", "Key was rejected by service")),
462            130 => Some(("EOWNERDEAD", "Owner died")),
463            131 => Some(("ENOTRECOVERABLE", "State not recoverable")),
464            132 => Some(("ERFKILL", "Operation not possible due to RF-kill")),
465            133 => Some(("EHWPOISON", "Memory page has hardware error")),
466            512 => Some(("ERESTARTSYS", "Restart syscall")),
467            513 => Some(("ERESTARTNOINTR", "Restart if no interrupt")),
468            514 => Some(("ERESTARTNOHAND", "restart if no handler..")),
469            515 => Some(("ENOIOCTLCMD", "No ioctl command")),
470            516 => Some((
471                "ERESTART_RESTARTBLOCK",
472                "restart by calling sys_restart_syscall",
473            )),
474            517 => Some(("EPROBE_DEFER", "Driver requests probe retry")),
475            518 => Some(("EOPENSTALE", "open found a stale dentry")),
476            519 => Some(("ENOPARAM", "Parameter not supported")),
477            521 => Some(("EBADHANDLE", "Illegal NFS file handle")),
478            522 => Some(("ENOTSYNC", "Update synchronization mismatch")),
479            523 => Some(("EBADCOOKIE", "Cookie is stale")),
480            524 => Some(("ENOTSUPP", "Operation is not supported")),
481            525 => Some(("ETOOSMALL", "Buffer or request is too small")),
482            526 => Some(("ESERVERFAULT", "An untranslatable error occurred")),
483            527 => Some(("EBADTYPE", "Type not supported by server")),
484            528 => Some((
485                "EJUKEBOX",
486                "Request initiated, but will not complete before timeout",
487            )),
488            529 => Some(("EIOCBQUEUED", "iocb queued, will get completion event")),
489            530 => Some(("ERECALLCONFLICT", "conflict with recalled state")),
490            531 => Some(("ENOGRACE", "NFS file lock reclaim refused")),
491            _ => None,
492        }
493    }
494}