kernel/abi/linux/riscv64/
errno.rs1pub const SUCCESS: usize = 0;
8
9pub const EPERM: usize = 1;
11
12pub const ENOENT: usize = 2;
14
15pub const ESRCH: usize = 3;
17
18pub const EINTR: usize = 4;
20
21pub const EIO: usize = 5;
23
24pub const ENXIO: usize = 6;
26
27pub const E2BIG: usize = 7;
29
30pub const ENOEXEC: usize = 8;
32
33pub const EBADF: usize = 9;
35
36pub const ECHILD: usize = 10;
38
39pub const EAGAIN: usize = 11;
41
42pub const ENOMEM: usize = 12;
44
45pub const EACCES: usize = 13;
47
48pub const EFAULT: usize = 14;
50
51pub const ENOTBLK: usize = 15;
53
54pub const EBUSY: usize = 16;
56
57pub const EEXIST: usize = 17;
59
60pub const EXDEV: usize = 18;
62
63pub const ENODEV: usize = 19;
65
66pub const ENOTDIR: usize = 20;
68
69pub const EISDIR: usize = 21;
71
72pub const EINVAL: usize = 22;
74
75pub const ENFILE: usize = 23;
77
78pub const EMFILE: usize = 24;
80
81pub const ENOTTY: usize = 25;
83
84pub const ETXTBSY: usize = 26;
86
87pub const EFBIG: usize = 27;
89
90pub const ENOSPC: usize = 28;
92
93pub const ESPIPE: usize = 29;
95
96pub const EROFS: usize = 30;
98
99pub const EMLINK: usize = 31;
101
102pub const EPIPE: usize = 32;
104
105pub const EDOM: usize = 33;
107
108pub const ERANGE: usize = 34;
110
111pub const EDEADLK: usize = 35;
113
114pub const ENAMETOOLONG: usize = 36;
116
117pub const ENOLCK: usize = 37;
119
120pub const ENOSYS: usize = 38;
122
123pub const ENOTEMPTY: usize = 39;
125
126pub const ELOOP: usize = 40;
128
129pub const EWOULDBLOCK: usize = EAGAIN;
131
132pub const ENOMSG: usize = 42;
134
135pub const EIDRM: usize = 43;
137
138pub const ECHRNG: usize = 44;
140
141pub const EL2NSYNC: usize = 45;
143
144pub const EL3HLT: usize = 46;
146
147pub const EL3RST: usize = 47;
149
150pub const ELNRNG: usize = 48;
152
153pub const EUNATCH: usize = 49;
155
156pub const ENOCSI: usize = 50;
158
159pub const EL2HLT: usize = 51;
161
162pub const EBADE: usize = 52;
164
165pub const EBADR: usize = 53;
167
168pub const EXFULL: usize = 54;
170
171pub const ENOANO: usize = 55;
173
174pub const EBADRQC: usize = 56;
176
177pub const EBADSLT: usize = 57;
179
180pub const EDEADLOCK: usize = EDEADLK;
182
183pub const EBFONT: usize = 59;
185
186pub const ENOSTR: usize = 60;
188
189pub const ENODATA: usize = 61;
191
192pub const ETIME: usize = 62;
194
195pub const ENOSR: usize = 63;
197
198pub const ENONET: usize = 64;
200
201pub const ENOPKG: usize = 65;
203
204pub const EREMOTE: usize = 66;
206
207pub const ENOLINK: usize = 67;
209
210pub const EADV: usize = 68;
212
213pub const ESRMNT: usize = 69;
215
216pub const ECOMM: usize = 70;
218
219pub const EPROTO: usize = 71;
221
222pub const EMULTIHOP: usize = 72;
224
225pub const EDOTDOT: usize = 73;
227
228pub const EBADMSG: usize = 74;
230
231pub const EOVERFLOW: usize = 75;
233
234pub const ENOTUNIQ: usize = 76;
236
237pub const EBADFD: usize = 77;
239
240pub const EREMCHG: usize = 78;
242
243pub const ELIBACC: usize = 79;
245
246pub const ELIBBAD: usize = 80;
248
249pub const ELIBSCN: usize = 81;
251
252pub const ELIBMAX: usize = 82;
254
255pub const ELIBEXEC: usize = 83;
257
258pub const EILSEQ: usize = 84;
260
261pub const ERESTART: usize = 85;
263
264pub const ESTRPIPE: usize = 86;
266
267pub const EUSERS: usize = 87;
269
270pub const ENOTSOCK: usize = 88;
272
273pub const EDESTADDRREQ: usize = 89;
275
276pub const EMSGSIZE: usize = 90;
278
279pub const EPROTOTYPE: usize = 91;
281
282pub const ENOPROTOOPT: usize = 92;
284
285pub const EPROTONOSUPPORT: usize = 93;
287
288pub const ESOCKTNOSUPPORT: usize = 94;
290
291pub const EOPNOTSUPP: usize = 95;
293
294pub const EPFNOSUPPORT: usize = 96;
296
297pub const EAFNOSUPPORT: usize = 97;
299
300pub const EADDRINUSE: usize = 98;
302
303pub const EADDRNOTAVAIL: usize = 99;
305
306pub const ENETDOWN: usize = 100;
308
309pub const ENETUNREACH: usize = 101;
311
312pub const ENETRESET: usize = 102;
314
315pub const ECONNABORTED: usize = 103;
317
318pub const ECONNRESET: usize = 104;
320
321pub const ENOBUFS: usize = 105;
323
324pub const EISCONN: usize = 106;
326
327pub const ENOTCONN: usize = 107;
329
330pub const ESHUTDOWN: usize = 108;
332
333pub const ETOOMANYREFS: usize = 109;
335
336pub const ETIMEDOUT: usize = 110;
338
339pub const ECONNREFUSED: usize = 111;
341
342pub const EHOSTDOWN: usize = 112;
344
345pub const EHOSTUNREACH: usize = 113;
347
348pub const EALREADY: usize = 114;
350
351pub const EINPROGRESS: usize = 115;
353
354pub const ESTALE: usize = 116;
356
357pub const EUCLEAN: usize = 117;
359
360pub const ENOTNAM: usize = 118;
362
363pub const ENAVAIL: usize = 119;
365
366pub const EISNAM: usize = 120;
368
369pub const EREMOTEIO: usize = 121;
371
372pub const EDQUOT: usize = 122;
374
375pub const ENOMEDIUM: usize = 123;
377
378pub const EMEDIUMTYPE: usize = 124;
380
381pub const ECANCELED: usize = 125;
383
384pub const ENOKEY: usize = 126;
386
387pub const EKEYEXPIRED: usize = 127;
389
390pub const EKEYREVOKED: usize = 128;
392
393pub const EKEYREJECTED: usize = 129;
395
396pub const EOWNERDEAD: usize = 130;
398
399pub const ENOTRECOVERABLE: usize = 131;
401
402pub const ERFKILL: usize = 132;
404
405pub const EHWPOISON: usize = 133;
407
408pub fn from_fs_error(error: &crate::fs::FileSystemError) -> usize {
410 use crate::fs::FileSystemErrorKind;
411
412 match error.kind {
413 FileSystemErrorKind::NotFound => ENOENT,
414 FileSystemErrorKind::PermissionDenied => EACCES,
415 FileSystemErrorKind::FileExists => EEXIST,
416 FileSystemErrorKind::AlreadyExists => EEXIST,
417 FileSystemErrorKind::NotADirectory => ENOTDIR,
418 FileSystemErrorKind::IsADirectory => EISDIR,
419 FileSystemErrorKind::NotAFile => EISDIR,
420 FileSystemErrorKind::DirectoryNotEmpty => ENOTEMPTY,
421 FileSystemErrorKind::InvalidPath => EINVAL,
422 FileSystemErrorKind::InvalidOperation => EPERM,
423 FileSystemErrorKind::CrossDevice => EXDEV,
424 FileSystemErrorKind::NoSpace => ENOSPC,
425 FileSystemErrorKind::ReadOnly => EROFS,
426 FileSystemErrorKind::IoError => EIO,
427 FileSystemErrorKind::DeviceError => EIO,
428 FileSystemErrorKind::InvalidData => EINVAL,
429 FileSystemErrorKind::NotSupported => ENOSYS,
430 FileSystemErrorKind::BrokenFileSystem => EIO,
431 FileSystemErrorKind::Busy => EBUSY,
432 }
433}
434
435pub fn from_error<E>(_error: E) -> usize {
437 EIO }
439
440pub fn to_result(errno_val: usize) -> usize {
443 if errno_val == SUCCESS {
444 SUCCESS
445 } else {
446 errno_val.wrapping_neg()
450 }
451}