1 // -*- C++ -*- 2 //===-------------------------- errno.h -----------------------------------===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is dual licensed under the MIT and the University of Illinois Open 7 // Source Licenses. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef _LIBCPP_ERRNO_H 12 #define _LIBCPP_ERRNO_H 13 14 /* 15 errno.h synopsis 16 17 Macros: 18 19 EDOM 20 EILSEQ // C99 21 ERANGE 22 errno 23 24 */ 25 26 #include <__config> 27 28 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 29 #pragma GCC system_header 30 #endif 31 32 #include_next <errno.h> 33 34 #ifdef __cplusplus 35 36 #if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) 37 38 #ifdef ELAST 39 40 static const int __elast1 = ELAST+1; 41 static const int __elast2 = ELAST+2; 42 43 #else 44 45 static const int __elast1 = 104; 46 static const int __elast2 = 105; 47 48 #endif 49 50 #ifdef ENOTRECOVERABLE 51 52 #define EOWNERDEAD __elast1 53 54 #ifdef ELAST 55 #undef ELAST 56 #define ELAST EOWNERDEAD 57 #endif 58 59 #elif defined(EOWNERDEAD) 60 61 #define ENOTRECOVERABLE __elast1 62 #ifdef ELAST 63 #undef ELAST 64 #define ELAST ENOTRECOVERABLE 65 #endif 66 67 #else // defined(EOWNERDEAD) 68 69 #define EOWNERDEAD __elast1 70 #define ENOTRECOVERABLE __elast2 71 #ifdef ELAST 72 #undef ELAST 73 #define ELAST ENOTRECOVERABLE 74 #endif 75 76 #endif // defined(EOWNERDEAD) 77 78 #endif // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) 79 80 // supply errno values likely to be missing, particularly on Windows 81 82 #ifndef EAFNOSUPPORT 83 #define EAFNOSUPPORT 9901 84 #endif 85 86 #ifndef EADDRINUSE 87 #define EADDRINUSE 9902 88 #endif 89 90 #ifndef EADDRNOTAVAIL 91 #define EADDRNOTAVAIL 9903 92 #endif 93 94 #ifndef EISCONN 95 #define EISCONN 9904 96 #endif 97 98 #ifndef EBADMSG 99 #define EBADMSG 9905 100 #endif 101 102 #ifndef ECONNABORTED 103 #define ECONNABORTED 9906 104 #endif 105 106 #ifndef EALREADY 107 #define EALREADY 9907 108 #endif 109 110 #ifndef ECONNREFUSED 111 #define ECONNREFUSED 9908 112 #endif 113 114 #ifndef ECONNRESET 115 #define ECONNRESET 9909 116 #endif 117 118 #ifndef EDESTADDRREQ 119 #define EDESTADDRREQ 9910 120 #endif 121 122 #ifndef EHOSTUNREACH 123 #define EHOSTUNREACH 9911 124 #endif 125 126 #ifndef EIDRM 127 #define EIDRM 9912 128 #endif 129 130 #ifndef EMSGSIZE 131 #define EMSGSIZE 9913 132 #endif 133 134 #ifndef ENETDOWN 135 #define ENETDOWN 9914 136 #endif 137 138 #ifndef ENETRESET 139 #define ENETRESET 9915 140 #endif 141 142 #ifndef ENETUNREACH 143 #define ENETUNREACH 9916 144 #endif 145 146 #ifndef ENOBUFS 147 #define ENOBUFS 9917 148 #endif 149 150 #ifndef ENOLINK 151 #define ENOLINK 9918 152 #endif 153 154 #ifndef ENODATA 155 #define ENODATA 9919 156 #endif 157 158 #ifndef ENOMSG 159 #define ENOMSG 9920 160 #endif 161 162 #ifndef ENOPROTOOPT 163 #define ENOPROTOOPT 9921 164 #endif 165 166 #ifndef ENOSR 167 #define ENOSR 9922 168 #endif 169 170 #ifndef ENOTSOCK 171 #define ENOTSOCK 9923 172 #endif 173 174 #ifndef ENOSTR 175 #define ENOSTR 9924 176 #endif 177 178 #ifndef ENOTCONN 179 #define ENOTCONN 9925 180 #endif 181 182 #ifndef ENOTSUP 183 #define ENOTSUP 9926 184 #endif 185 186 #ifndef ECANCELED 187 #define ECANCELED 9927 188 #endif 189 190 #ifndef EINPROGRESS 191 #define EINPROGRESS 9928 192 #endif 193 194 #ifndef EOPNOTSUPP 195 #define EOPNOTSUPP 9929 196 #endif 197 198 #ifndef EWOULDBLOCK 199 #define EWOULDBLOCK 9930 200 #endif 201 202 #ifndef EOWNERDEAD 203 #define EOWNERDEAD 9931 204 #endif 205 206 #ifndef EPROTO 207 #define EPROTO 9932 208 #endif 209 210 #ifndef EPROTONOSUPPORT 211 #define EPROTONOSUPPORT 9933 212 #endif 213 214 #ifndef ENOTRECOVERABLE 215 #define ENOTRECOVERABLE 9934 216 #endif 217 218 #ifndef ETIME 219 #define ETIME 9935 220 #endif 221 222 #ifndef ETXTBSY 223 #define ETXTBSY 9936 224 #endif 225 226 #ifndef ETIMEDOUT 227 #define ETIMEDOUT 9938 228 #endif 229 230 #ifndef ELOOP 231 #define ELOOP 9939 232 #endif 233 234 #ifndef EOVERFLOW 235 #define EOVERFLOW 9940 236 #endif 237 238 #ifndef EPROTOTYPE 239 #define EPROTOTYPE 9941 240 #endif 241 242 #ifndef ENOSYS 243 #define ENOSYS 9942 244 #endif 245 246 #ifndef EINVAL 247 #define EINVAL 9943 248 #endif 249 250 #ifndef ERANGE 251 #define ERANGE 9944 252 #endif 253 254 #ifndef EILSEQ 255 #define EILSEQ 9945 256 #endif 257 258 // Windows Mobile doesn't appear to define these: 259 260 #ifndef E2BIG 261 #define E2BIG 9946 262 #endif 263 264 #ifndef EDOM 265 #define EDOM 9947 266 #endif 267 268 #ifndef EFAULT 269 #define EFAULT 9948 270 #endif 271 272 #ifndef EBADF 273 #define EBADF 9949 274 #endif 275 276 #ifndef EPIPE 277 #define EPIPE 9950 278 #endif 279 280 #ifndef EXDEV 281 #define EXDEV 9951 282 #endif 283 284 #ifndef EBUSY 285 #define EBUSY 9952 286 #endif 287 288 #ifndef ENOTEMPTY 289 #define ENOTEMPTY 9953 290 #endif 291 292 #ifndef ENOEXEC 293 #define ENOEXEC 9954 294 #endif 295 296 #ifndef EEXIST 297 #define EEXIST 9955 298 #endif 299 300 #ifndef EFBIG 301 #define EFBIG 9956 302 #endif 303 304 #ifndef ENAMETOOLONG 305 #define ENAMETOOLONG 9957 306 #endif 307 308 #ifndef ENOTTY 309 #define ENOTTY 9958 310 #endif 311 312 #ifndef EINTR 313 #define EINTR 9959 314 #endif 315 316 #ifndef ESPIPE 317 #define ESPIPE 9960 318 #endif 319 320 #ifndef EIO 321 #define EIO 9961 322 #endif 323 324 #ifndef EISDIR 325 #define EISDIR 9962 326 #endif 327 328 #ifndef ECHILD 329 #define ECHILD 9963 330 #endif 331 332 #ifndef ENOLCK 333 #define ENOLCK 9964 334 #endif 335 336 #ifndef ENOSPC 337 #define ENOSPC 9965 338 #endif 339 340 #ifndef ENXIO 341 #define ENXIO 9966 342 #endif 343 344 #ifndef ENODEV 345 #define ENODEV 9967 346 #endif 347 348 #ifndef ENOENT 349 #define ENOENT 9968 350 #endif 351 352 #ifndef ESRCH 353 #define ESRCH 9969 354 #endif 355 356 #ifndef ENOTDIR 357 #define ENOTDIR 9970 358 #endif 359 360 #ifndef ENOMEM 361 #define ENOMEM 9971 362 #endif 363 364 #ifndef EPERM 365 #define EPERM 9972 366 #endif 367 368 #ifndef EACCES 369 #define EACCES 9973 370 #endif 371 372 #ifndef EROFS 373 #define EROFS 9974 374 #endif 375 376 #ifndef EDEADLK 377 #define EDEADLK 9975 378 #endif 379 380 #ifndef EAGAIN 381 #define EAGAIN 9976 382 #endif 383 384 #ifndef ENFILE 385 #define ENFILE 9977 386 #endif 387 388 #ifndef EMFILE 389 #define EMFILE 9978 390 #endif 391 392 #ifndef EMLINK 393 #define EMLINK 9979 394 #endif 395 396 #endif // __cplusplus 397 398 #endif // _LIBCPP_ERRNO_H 399