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