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