1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (c) 2006-2018, RT-Thread Development Team 3*10465441SEvalZero * 4*10465441SEvalZero * SPDX-License-Identifier: Apache-2.0 5*10465441SEvalZero * 6*10465441SEvalZero * Change Logs: 7*10465441SEvalZero * Date Author Notes 8*10465441SEvalZero * 2016-11-12 Bernard The first version 9*10465441SEvalZero */ 10*10465441SEvalZero 11*10465441SEvalZero #ifndef LIBC_ERRNO_H__ 12*10465441SEvalZero #define LIBC_ERRNO_H__ 13*10465441SEvalZero 14*10465441SEvalZero #include <rtconfig.h> 15*10465441SEvalZero 16*10465441SEvalZero #if defined(RT_USING_NEWLIB) || defined(_WIN32) || defined(__CC_ARM) || defined(__IAR_SYSTEMS_ICC__) 17*10465441SEvalZero /* use errno.h file in toolchains */ 18*10465441SEvalZero #include <errno.h> 19*10465441SEvalZero #endif 20*10465441SEvalZero 21*10465441SEvalZero #if defined(__CC_ARM) 22*10465441SEvalZero /* 23*10465441SEvalZero defined in armcc/errno.h 24*10465441SEvalZero 25*10465441SEvalZero #define EDOM 1 26*10465441SEvalZero #define ERANGE 2 27*10465441SEvalZero #define EILSEQ 4 28*10465441SEvalZero #define ESIGNUM 3 29*10465441SEvalZero #define EINVAL 5 30*10465441SEvalZero #define ENOMEM 6 31*10465441SEvalZero */ 32*10465441SEvalZero #define ERROR_BASE_NO 7 33*10465441SEvalZero 34*10465441SEvalZero #elif defined(__IAR_SYSTEMS_ICC__) 35*10465441SEvalZero /* defined in iar/errno.h 36*10465441SEvalZero #define EDOM 33 37*10465441SEvalZero #define ERANGE 34 38*10465441SEvalZero #define EFPOS 35 39*10465441SEvalZero #define EILSEQ 36 40*10465441SEvalZero */ 41*10465441SEvalZero #define ERROR_BASE_NO 36 42*10465441SEvalZero 43*10465441SEvalZero #else 44*10465441SEvalZero 45*10465441SEvalZero #define ERROR_BASE_NO 0 46*10465441SEvalZero #endif 47*10465441SEvalZero 48*10465441SEvalZero #if !defined(RT_USING_NEWLIB) && !defined(_WIN32) 49*10465441SEvalZero 50*10465441SEvalZero #define EPERM (ERROR_BASE_NO + 1) 51*10465441SEvalZero #define ENOENT (ERROR_BASE_NO + 2) 52*10465441SEvalZero #define ESRCH (ERROR_BASE_NO + 3) 53*10465441SEvalZero #define EINTR (ERROR_BASE_NO + 4) 54*10465441SEvalZero #define EIO (ERROR_BASE_NO + 5) 55*10465441SEvalZero #define ENXIO (ERROR_BASE_NO + 6) 56*10465441SEvalZero #define E2BIG (ERROR_BASE_NO + 7) 57*10465441SEvalZero #define ENOEXEC (ERROR_BASE_NO + 8) 58*10465441SEvalZero #define EBADF (ERROR_BASE_NO + 9) 59*10465441SEvalZero #define ECHILD (ERROR_BASE_NO + 10) 60*10465441SEvalZero #define EAGAIN (ERROR_BASE_NO + 11) 61*10465441SEvalZero 62*10465441SEvalZero #ifndef ENOMEM 63*10465441SEvalZero #define ENOMEM (ERROR_BASE_NO + 12) 64*10465441SEvalZero #endif 65*10465441SEvalZero 66*10465441SEvalZero #define EACCES (ERROR_BASE_NO + 13) 67*10465441SEvalZero #define EFAULT (ERROR_BASE_NO + 14) 68*10465441SEvalZero #define ENOTBLK (ERROR_BASE_NO + 15) 69*10465441SEvalZero #define EBUSY (ERROR_BASE_NO + 16) 70*10465441SEvalZero #define EEXIST (ERROR_BASE_NO + 17) 71*10465441SEvalZero #define EXDEV (ERROR_BASE_NO + 18) 72*10465441SEvalZero #define ENODEV (ERROR_BASE_NO + 19) 73*10465441SEvalZero #define ENOTDIR (ERROR_BASE_NO + 20) 74*10465441SEvalZero #define EISDIR (ERROR_BASE_NO + 21) 75*10465441SEvalZero 76*10465441SEvalZero #ifndef EINVAL 77*10465441SEvalZero #define EINVAL (ERROR_BASE_NO + 22) 78*10465441SEvalZero #endif 79*10465441SEvalZero 80*10465441SEvalZero #define ENFILE (ERROR_BASE_NO + 23) 81*10465441SEvalZero #define EMFILE (ERROR_BASE_NO + 24) 82*10465441SEvalZero #define ENOTTY (ERROR_BASE_NO + 25) 83*10465441SEvalZero #define ETXTBSY (ERROR_BASE_NO + 26) 84*10465441SEvalZero #define EFBIG (ERROR_BASE_NO + 27) 85*10465441SEvalZero #define ENOSPC (ERROR_BASE_NO + 28) 86*10465441SEvalZero #define ESPIPE (ERROR_BASE_NO + 29) 87*10465441SEvalZero #define EROFS (ERROR_BASE_NO + 30) 88*10465441SEvalZero #define EMLINK (ERROR_BASE_NO + 31) 89*10465441SEvalZero #define EPIPE (ERROR_BASE_NO + 32) 90*10465441SEvalZero 91*10465441SEvalZero #ifndef EDOM 92*10465441SEvalZero #define EDOM (ERROR_BASE_NO + 33) 93*10465441SEvalZero #endif 94*10465441SEvalZero 95*10465441SEvalZero #ifndef ERANGE 96*10465441SEvalZero #define ERANGE (ERROR_BASE_NO + 34) 97*10465441SEvalZero #endif 98*10465441SEvalZero 99*10465441SEvalZero #define EDEADLK (ERROR_BASE_NO + 35) 100*10465441SEvalZero #define ENAMETOOLONG (ERROR_BASE_NO + 36) 101*10465441SEvalZero #define ENOLCK (ERROR_BASE_NO + 37) 102*10465441SEvalZero #define ENOSYS (ERROR_BASE_NO + 38) 103*10465441SEvalZero #define ENOTEMPTY (ERROR_BASE_NO + 39) 104*10465441SEvalZero #define ELOOP (ERROR_BASE_NO + 40) 105*10465441SEvalZero #define EWOULDBLOCK EAGAIN 106*10465441SEvalZero #define ENOMSG (ERROR_BASE_NO + 42) 107*10465441SEvalZero #define EIDRM (ERROR_BASE_NO + 43) 108*10465441SEvalZero #define ECHRNG (ERROR_BASE_NO + 44) 109*10465441SEvalZero #define EL2NSYNC (ERROR_BASE_NO + 45) 110*10465441SEvalZero #define EL3HLT (ERROR_BASE_NO + 46) 111*10465441SEvalZero #define EL3RST (ERROR_BASE_NO + 47) 112*10465441SEvalZero #define ELNRNG (ERROR_BASE_NO + 48) 113*10465441SEvalZero #define EUNATCH (ERROR_BASE_NO + 49) 114*10465441SEvalZero #define ENOCSI (ERROR_BASE_NO + 50) 115*10465441SEvalZero #define EL2HLT (ERROR_BASE_NO + 51) 116*10465441SEvalZero #define EBADE (ERROR_BASE_NO + 52) 117*10465441SEvalZero #define EBADR (ERROR_BASE_NO + 53) 118*10465441SEvalZero #define EXFULL (ERROR_BASE_NO + 54) 119*10465441SEvalZero #define ENOANO (ERROR_BASE_NO + 55) 120*10465441SEvalZero #define EBADRQC (ERROR_BASE_NO + 56) 121*10465441SEvalZero #define EBADSLT (ERROR_BASE_NO + 57) 122*10465441SEvalZero #define EDEADLOCK EDEADLK 123*10465441SEvalZero #define EBFONT (ERROR_BASE_NO + 59) 124*10465441SEvalZero #define ENOSTR (ERROR_BASE_NO + 60) 125*10465441SEvalZero #define ENODATA (ERROR_BASE_NO + 61) 126*10465441SEvalZero #define ETIME (ERROR_BASE_NO + 62) 127*10465441SEvalZero #define ENOSR (ERROR_BASE_NO + 63) 128*10465441SEvalZero #define ENONET (ERROR_BASE_NO + 64) 129*10465441SEvalZero #define ENOPKG (ERROR_BASE_NO + 65) 130*10465441SEvalZero #define EREMOTE (ERROR_BASE_NO + 66) 131*10465441SEvalZero #define ENOLINK (ERROR_BASE_NO + 67) 132*10465441SEvalZero #define EADV (ERROR_BASE_NO + 68) 133*10465441SEvalZero #define ESRMNT (ERROR_BASE_NO + 69) 134*10465441SEvalZero #define ECOMM (ERROR_BASE_NO + 70) 135*10465441SEvalZero #define EPROTO (ERROR_BASE_NO + 71) 136*10465441SEvalZero #define EMULTIHOP (ERROR_BASE_NO + 72) 137*10465441SEvalZero #define EDOTDOT (ERROR_BASE_NO + 73) 138*10465441SEvalZero #define EBADMSG (ERROR_BASE_NO + 74) 139*10465441SEvalZero #define EOVERFLOW (ERROR_BASE_NO + 75) 140*10465441SEvalZero #define ENOTUNIQ (ERROR_BASE_NO + 76) 141*10465441SEvalZero #define EBADFD (ERROR_BASE_NO + 77) 142*10465441SEvalZero #define EREMCHG (ERROR_BASE_NO + 78) 143*10465441SEvalZero #define ELIBACC (ERROR_BASE_NO + 79) 144*10465441SEvalZero #define ELIBBAD (ERROR_BASE_NO + 80) 145*10465441SEvalZero #define ELIBSCN (ERROR_BASE_NO + 81) 146*10465441SEvalZero #define ELIBMAX (ERROR_BASE_NO + 82) 147*10465441SEvalZero #define ELIBEXEC (ERROR_BASE_NO + 83) 148*10465441SEvalZero 149*10465441SEvalZero #ifndef EILSEQ 150*10465441SEvalZero #define EILSEQ (ERROR_BASE_NO + 84) 151*10465441SEvalZero #endif 152*10465441SEvalZero 153*10465441SEvalZero #define ERESTART (ERROR_BASE_NO + 85) 154*10465441SEvalZero #define ESTRPIPE (ERROR_BASE_NO + 86) 155*10465441SEvalZero #define EUSERS (ERROR_BASE_NO + 87) 156*10465441SEvalZero #define ENOTSOCK (ERROR_BASE_NO + 88) 157*10465441SEvalZero #define EDESTADDRREQ (ERROR_BASE_NO + 89) 158*10465441SEvalZero #define EMSGSIZE (ERROR_BASE_NO + 90) 159*10465441SEvalZero #define EPROTOTYPE (ERROR_BASE_NO + 91) 160*10465441SEvalZero #define ENOPROTOOPT (ERROR_BASE_NO + 92) 161*10465441SEvalZero #define EPROTONOSUPPORT (ERROR_BASE_NO + 93) 162*10465441SEvalZero #define ESOCKTNOSUPPORT (ERROR_BASE_NO + 94) 163*10465441SEvalZero #define EOPNOTSUPP (ERROR_BASE_NO + 95) 164*10465441SEvalZero #define ENOTSUP EOPNOTSUPP ) 165*10465441SEvalZero #define EPFNOSUPPORT (ERROR_BASE_NO + 96) 166*10465441SEvalZero #define EAFNOSUPPORT (ERROR_BASE_NO + 97) 167*10465441SEvalZero #define EADDRINUSE (ERROR_BASE_NO + 98) 168*10465441SEvalZero #define EADDRNOTAVAIL (ERROR_BASE_NO + 99) 169*10465441SEvalZero #define ENETDOWN (ERROR_BASE_NO + 100) 170*10465441SEvalZero #define ENETUNREACH (ERROR_BASE_NO + 101) 171*10465441SEvalZero #define ENETRESET (ERROR_BASE_NO + 102) 172*10465441SEvalZero #define ECONNABORTED (ERROR_BASE_NO + 103) 173*10465441SEvalZero #define ECONNRESET (ERROR_BASE_NO + 104) 174*10465441SEvalZero #define ENOBUFS (ERROR_BASE_NO + 105) 175*10465441SEvalZero #define EISCONN (ERROR_BASE_NO + 106) 176*10465441SEvalZero #define ENOTCONN (ERROR_BASE_NO + 107) 177*10465441SEvalZero #define ESHUTDOWN (ERROR_BASE_NO + 108) 178*10465441SEvalZero #define ETOOMANYREFS (ERROR_BASE_NO + 109) 179*10465441SEvalZero #define ETIMEDOUT (ERROR_BASE_NO + 110) 180*10465441SEvalZero #define ECONNREFUSED (ERROR_BASE_NO + 111) 181*10465441SEvalZero #define EHOSTDOWN (ERROR_BASE_NO + 112) 182*10465441SEvalZero #define EHOSTUNREACH (ERROR_BASE_NO + 113) 183*10465441SEvalZero #define EALREADY (ERROR_BASE_NO + 114) 184*10465441SEvalZero #define EINPROGRESS (ERROR_BASE_NO + 115) 185*10465441SEvalZero #define ESTALE (ERROR_BASE_NO + 116) 186*10465441SEvalZero #define EUCLEAN (ERROR_BASE_NO + 117) 187*10465441SEvalZero #define ENOTNAM (ERROR_BASE_NO + 118) 188*10465441SEvalZero #define ENAVAIL (ERROR_BASE_NO + 119) 189*10465441SEvalZero #define EISNAM (ERROR_BASE_NO + 120) 190*10465441SEvalZero #define EREMOTEIO (ERROR_BASE_NO + 121) 191*10465441SEvalZero #define EDQUOT (ERROR_BASE_NO + 122) 192*10465441SEvalZero #define ENOMEDIUM (ERROR_BASE_NO + 123) 193*10465441SEvalZero #define EMEDIUMTYPE (ERROR_BASE_NO + 124) 194*10465441SEvalZero #define ECANCELED (ERROR_BASE_NO + 125) 195*10465441SEvalZero #define ENOKEY (ERROR_BASE_NO + 126) 196*10465441SEvalZero #define EKEYEXPIRED (ERROR_BASE_NO + 127) 197*10465441SEvalZero #define EKEYREVOKED (ERROR_BASE_NO + 128) 198*10465441SEvalZero #define EKEYREJECTED (ERROR_BASE_NO + 129) 199*10465441SEvalZero #define EOWNERDEAD (ERROR_BASE_NO + 130) 200*10465441SEvalZero #define ENOTRECOVERABLE (ERROR_BASE_NO + 131) 201*10465441SEvalZero #define ERFKILL (ERROR_BASE_NO + 132) 202*10465441SEvalZero #define EHWPOISON (ERROR_BASE_NO + 133) 203*10465441SEvalZero 204*10465441SEvalZero #endif 205*10465441SEvalZero 206*10465441SEvalZero #endif 207