Numworks Epsilon  1.4.1
Graphing Calculator Operating System
mperrno.h
Go to the documentation of this file.
1 /*
2  * This file is part of the MicroPython project, http://micropython.org/
3  *
4  * The MIT License (MIT)
5  *
6  * Copyright (c) 2016 Damien P. George
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a copy
9  * of this software and associated documentation files (the "Software"), to deal
10  * in the Software without restriction, including without limitation the rights
11  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12  * copies of the Software, and to permit persons to whom the Software is
13  * furnished to do so, subject to the following conditions:
14  *
15  * The above copyright notice and this permission notice shall be included in
16  * all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24  * THE SOFTWARE.
25  */
26 #ifndef MICROPY_INCLUDED_PY_MPERRNO_H
27 #define MICROPY_INCLUDED_PY_MPERRNO_H
28 
29 #include "py/mpconfig.h"
30 
31 #if MICROPY_USE_INTERNAL_ERRNO
32 
33 // MP_Exxx errno's are defined directly as numeric values
34 // (Linux constants are used as a reference)
35 
36 #define MP_EPERM (1) // Operation not permitted
37 #define MP_ENOENT (2) // No such file or directory
38 #define MP_ESRCH (3) // No such process
39 #define MP_EINTR (4) // Interrupted system call
40 #define MP_EIO (5) // I/O error
41 #define MP_ENXIO (6) // No such device or address
42 #define MP_E2BIG (7) // Argument list too long
43 #define MP_ENOEXEC (8) // Exec format error
44 #define MP_EBADF (9) // Bad file number
45 #define MP_ECHILD (10) // No child processes
46 #define MP_EAGAIN (11) // Try again
47 #define MP_ENOMEM (12) // Out of memory
48 #define MP_EACCES (13) // Permission denied
49 #define MP_EFAULT (14) // Bad address
50 #define MP_ENOTBLK (15) // Block device required
51 #define MP_EBUSY (16) // Device or resource busy
52 #define MP_EEXIST (17) // File exists
53 #define MP_EXDEV (18) // Cross-device link
54 #define MP_ENODEV (19) // No such device
55 #define MP_ENOTDIR (20) // Not a directory
56 #define MP_EISDIR (21) // Is a directory
57 #define MP_EINVAL (22) // Invalid argument
58 #define MP_ENFILE (23) // File table overflow
59 #define MP_EMFILE (24) // Too many open files
60 #define MP_ENOTTY (25) // Not a typewriter
61 #define MP_ETXTBSY (26) // Text file busy
62 #define MP_EFBIG (27) // File too large
63 #define MP_ENOSPC (28) // No space left on device
64 #define MP_ESPIPE (29) // Illegal seek
65 #define MP_EROFS (30) // Read-only file system
66 #define MP_EMLINK (31) // Too many links
67 #define MP_EPIPE (32) // Broken pipe
68 #define MP_EDOM (33) // Math argument out of domain of func
69 #define MP_ERANGE (34) // Math result not representable
70 #define MP_EWOULDBLOCK MP_EAGAIN // Operation would block
71 #define MP_EOPNOTSUPP (95) // Operation not supported on transport endpoint
72 #define MP_EAFNOSUPPORT (97) // Address family not supported by protocol
73 #define MP_EADDRINUSE (98) // Address already in use
74 #define MP_ECONNABORTED (103) // Software caused connection abort
75 #define MP_ECONNRESET (104) // Connection reset by peer
76 #define MP_ENOBUFS (105) // No buffer space available
77 #define MP_EISCONN (106) // Transport endpoint is already connected
78 #define MP_ENOTCONN (107) // Transport endpoint is not connected
79 #define MP_ETIMEDOUT (110) // Connection timed out
80 #define MP_ECONNREFUSED (111) // Connection refused
81 #define MP_EHOSTUNREACH (113) // No route to host
82 #define MP_EALREADY (114) // Operation already in progress
83 #define MP_EINPROGRESS (115) // Operation now in progress
84 
85 #else
86 
87 // MP_Exxx errno's are defined in terms of system supplied ones
88 
89 #include <errno.h>
90 
91 #define MP_EPERM EPERM
92 #define MP_ENOENT ENOENT
93 #define MP_ESRCH ESRCH
94 #define MP_EINTR EINTR
95 #define MP_EIO EIO
96 #define MP_ENXIO ENXIO
97 #define MP_E2BIG E2BIG
98 #define MP_ENOEXEC ENOEXEC
99 #define MP_EBADF EBADF
100 #define MP_ECHILD ECHILD
101 #define MP_EAGAIN EAGAIN
102 #define MP_ENOMEM ENOMEM
103 #define MP_EACCES EACCES
104 #define MP_EFAULT EFAULT
105 #define MP_ENOTBLK ENOTBLK
106 #define MP_EBUSY EBUSY
107 #define MP_EEXIST EEXIST
108 #define MP_EXDEV EXDEV
109 #define MP_ENODEV ENODEV
110 #define MP_ENOTDIR ENOTDIR
111 #define MP_EISDIR EISDIR
112 #define MP_EINVAL EINVAL
113 #define MP_ENFILE ENFILE
114 #define MP_EMFILE EMFILE
115 #define MP_ENOTTY ENOTTY
116 #define MP_ETXTBSY ETXTBSY
117 #define MP_EFBIG EFBIG
118 #define MP_ENOSPC ENOSPC
119 #define MP_ESPIPE ESPIPE
120 #define MP_EROFS EROFS
121 #define MP_EMLINK EMLINK
122 #define MP_EPIPE EPIPE
123 #define MP_EDOM EDOM
124 #define MP_ERANGE ERANGE
125 #define MP_EWOULDBLOCK EAGAIN
126 #define MP_EOPNOTSUPP EOPNOTSUPP
127 #define MP_EAFNOSUPPORT EAFNOSUPPORT
128 #define MP_EADDRINUSE EADDRINUSE
129 #define MP_ECONNABORTED ECONNABORTED
130 #define MP_ECONNRESET ECONNRESET
131 #define MP_ENOBUFS ENOBUFS
132 #define MP_EISCONN EISCONN
133 #define MP_ENOTCONN ENOTCONN
134 #define MP_ETIMEDOUT ETIMEDOUT
135 #define MP_ECONNREFUSED ECONNREFUSED
136 #define MP_EHOSTUNREACH EHOSTUNREACH
137 #define MP_EALREADY EALREADY
138 #define MP_EINPROGRESS EINPROGRESS
139 
140 #endif
141 
142 #if MICROPY_PY_UERRNO
143 
144 #include "py/obj.h"
145 
146 qstr mp_errno_to_str(mp_obj_t errno_val);
147 
148 #endif
149 
150 #endif // MICROPY_INCLUDED_PY_MPERRNO_H
size_t qstr
Definition: qstr.h:48
uint64_t mp_obj_t
Definition: obj.h:39