1292928Sdim// -*- C++ -*- 2292928Sdim//===-------------------------- errno.h -----------------------------------===// 3292928Sdim// 4353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5353358Sdim// See https://llvm.org/LICENSE.txt for license information. 6353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7292928Sdim// 8292928Sdim//===----------------------------------------------------------------------===// 9292928Sdim 10292928Sdim#ifndef _LIBCPP_ERRNO_H 11292928Sdim#define _LIBCPP_ERRNO_H 12292928Sdim 13292928Sdim/* 14292928Sdim errno.h synopsis 15292928Sdim 16292928SdimMacros: 17292928Sdim 18292928Sdim EDOM 19292928Sdim EILSEQ // C99 20292928Sdim ERANGE 21292928Sdim errno 22292928Sdim 23292928Sdim*/ 24292928Sdim 25292928Sdim#include <__config> 26292928Sdim 27292928Sdim#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 28292928Sdim#pragma GCC system_header 29292928Sdim#endif 30292928Sdim 31292928Sdim#include_next <errno.h> 32292928Sdim 33292928Sdim#ifdef __cplusplus 34292928Sdim 35360661Sdim#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE) || !defined(EINTEGRITY) 36292928Sdim 37360661Sdim#if defined(ELAST) 38292928Sdim 39292928Sdimstatic const int __elast1 = ELAST+1; 40292928Sdimstatic const int __elast2 = ELAST+2; 41360661Sdimstatic const int __elast3 = ELAST+3; 42292928Sdim 43292928Sdim#else 44292928Sdim 45292928Sdimstatic const int __elast1 = 104; 46292928Sdimstatic const int __elast2 = 105; 47360661Sdimstatic const int __elast3 = 106; 48292928Sdim 49292928Sdim#endif 50292928Sdim 51360661Sdim#if !defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) 52360661Sdim#define ENOTRECOVERABLE __elast1 53360661Sdim#define EOWNERDEAD __elast2 54360661Sdim#define EINTEGRITY __elast3 55360661Sdim#if defined(ELAST) 56360661Sdim#undef ELAST 57360661Sdim#define ELAST EINTEGRITY 58360661Sdim#endif 59292928Sdim 60360661Sdim#elif !defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && defined(EINTEGRITY) 61360661Sdim#define ENOTRECOVERABLE __elast1 62360661Sdim#define EOWNERDEAD __elast2 63360661Sdim#if defined(ELAST) 64360661Sdim#undef ELAST 65360661Sdim#define ELAST EOWNERDEAD 66360661Sdim#endif 67360661Sdim 68360661Sdim#elif !defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) 69292928Sdim#define EOWNERDEAD __elast1 70360661Sdim#define EINTEGRITY __elast2 71360661Sdim#if defined(ELAST) 72360661Sdim#undef ELAST 73360661Sdim#define ELAST EINTEGRITY 74360661Sdim#endif 75292928Sdim 76360661Sdim#elif !defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && defined(EINTEGRITY) 77360661Sdim#define EOWNERDEAD __elast1 78360661Sdim#if defined(ELAST) 79292928Sdim#undef ELAST 80292928Sdim#define ELAST EOWNERDEAD 81343115Smckusick#endif 82292928Sdim 83360661Sdim#elif defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) 84360661Sdim#define ENOTRECOVERABLE __elast1 85360661Sdim#define EINTEGRITY __elast2 86360661Sdim#if defined(ELAST) 87360661Sdim#undef ELAST 88360661Sdim#define ELAST EINTEGRITY 89360661Sdim#endif 90292928Sdim 91360661Sdim#elif defined(EOWNERDEAD) && !defined(ENOTRECOVERABLE) && defined(EINTEGRITY) 92292928Sdim#define ENOTRECOVERABLE __elast1 93360661Sdim#if defined(ELAST) 94292928Sdim#undef ELAST 95292928Sdim#define ELAST ENOTRECOVERABLE 96343115Smckusick#endif 97292928Sdim 98360661Sdim#elif defined(EOWNERDEAD) && defined(ENOTRECOVERABLE) && !defined(EINTEGRITY) 99360661Sdim#define EINTEGRITY __elast1 100360661Sdim#if defined(ELAST) 101292928Sdim#undef ELAST 102360661Sdim#define ELAST EINTEGRITY 103343115Smckusick#endif 104292928Sdim 105360661Sdim#endif // !defined(OWNERDEAD) && !defined(NOTRECOVERABLE) && !defined(INTEGRITY) 106292928Sdim 107360661Sdim#endif // !defined(OWNERDEAD) || !defined(NOTRECOVERABLE) || !defined(INTEGRITY) 108292928Sdim 109292928Sdim// supply errno values likely to be missing, particularly on Windows 110292928Sdim 111292928Sdim#ifndef EAFNOSUPPORT 112292928Sdim#define EAFNOSUPPORT 9901 113292928Sdim#endif 114292928Sdim 115292928Sdim#ifndef EADDRINUSE 116292928Sdim#define EADDRINUSE 9902 117292928Sdim#endif 118292928Sdim 119292928Sdim#ifndef EADDRNOTAVAIL 120292928Sdim#define EADDRNOTAVAIL 9903 121292928Sdim#endif 122292928Sdim 123292928Sdim#ifndef EISCONN 124292928Sdim#define EISCONN 9904 125292928Sdim#endif 126292928Sdim 127292928Sdim#ifndef EBADMSG 128292928Sdim#define EBADMSG 9905 129292928Sdim#endif 130292928Sdim 131292928Sdim#ifndef ECONNABORTED 132292928Sdim#define ECONNABORTED 9906 133292928Sdim#endif 134292928Sdim 135292928Sdim#ifndef EALREADY 136292928Sdim#define EALREADY 9907 137292928Sdim#endif 138292928Sdim 139292928Sdim#ifndef ECONNREFUSED 140292928Sdim#define ECONNREFUSED 9908 141292928Sdim#endif 142292928Sdim 143292928Sdim#ifndef ECONNRESET 144292928Sdim#define ECONNRESET 9909 145292928Sdim#endif 146292928Sdim 147292928Sdim#ifndef EDESTADDRREQ 148292928Sdim#define EDESTADDRREQ 9910 149292928Sdim#endif 150292928Sdim 151292928Sdim#ifndef EHOSTUNREACH 152292928Sdim#define EHOSTUNREACH 9911 153292928Sdim#endif 154292928Sdim 155292928Sdim#ifndef EIDRM 156292928Sdim#define EIDRM 9912 157292928Sdim#endif 158292928Sdim 159292928Sdim#ifndef EMSGSIZE 160292928Sdim#define EMSGSIZE 9913 161292928Sdim#endif 162292928Sdim 163292928Sdim#ifndef ENETDOWN 164292928Sdim#define ENETDOWN 9914 165292928Sdim#endif 166292928Sdim 167292928Sdim#ifndef ENETRESET 168292928Sdim#define ENETRESET 9915 169292928Sdim#endif 170292928Sdim 171292928Sdim#ifndef ENETUNREACH 172292928Sdim#define ENETUNREACH 9916 173292928Sdim#endif 174292928Sdim 175292928Sdim#ifndef ENOBUFS 176292928Sdim#define ENOBUFS 9917 177292928Sdim#endif 178292928Sdim 179292928Sdim#ifndef ENOLINK 180292928Sdim#define ENOLINK 9918 181292928Sdim#endif 182292928Sdim 183292928Sdim#ifndef ENODATA 184292928Sdim#define ENODATA 9919 185292928Sdim#endif 186292928Sdim 187292928Sdim#ifndef ENOMSG 188292928Sdim#define ENOMSG 9920 189292928Sdim#endif 190292928Sdim 191292928Sdim#ifndef ENOPROTOOPT 192292928Sdim#define ENOPROTOOPT 9921 193292928Sdim#endif 194292928Sdim 195292928Sdim#ifndef ENOSR 196292928Sdim#define ENOSR 9922 197292928Sdim#endif 198292928Sdim 199292928Sdim#ifndef ENOTSOCK 200292928Sdim#define ENOTSOCK 9923 201292928Sdim#endif 202292928Sdim 203292928Sdim#ifndef ENOSTR 204292928Sdim#define ENOSTR 9924 205292928Sdim#endif 206292928Sdim 207292928Sdim#ifndef ENOTCONN 208292928Sdim#define ENOTCONN 9925 209292928Sdim#endif 210292928Sdim 211292928Sdim#ifndef ENOTSUP 212292928Sdim#define ENOTSUP 9926 213292928Sdim#endif 214292928Sdim 215292928Sdim#ifndef ECANCELED 216292928Sdim#define ECANCELED 9927 217292928Sdim#endif 218292928Sdim 219292928Sdim#ifndef EINPROGRESS 220292928Sdim#define EINPROGRESS 9928 221292928Sdim#endif 222292928Sdim 223292928Sdim#ifndef EOPNOTSUPP 224292928Sdim#define EOPNOTSUPP 9929 225292928Sdim#endif 226292928Sdim 227292928Sdim#ifndef EWOULDBLOCK 228292928Sdim#define EWOULDBLOCK 9930 229292928Sdim#endif 230292928Sdim 231292928Sdim#ifndef EOWNERDEAD 232292928Sdim#define EOWNERDEAD 9931 233292928Sdim#endif 234292928Sdim 235292928Sdim#ifndef EPROTO 236292928Sdim#define EPROTO 9932 237292928Sdim#endif 238292928Sdim 239292928Sdim#ifndef EPROTONOSUPPORT 240292928Sdim#define EPROTONOSUPPORT 9933 241292928Sdim#endif 242292928Sdim 243292928Sdim#ifndef ENOTRECOVERABLE 244292928Sdim#define ENOTRECOVERABLE 9934 245292928Sdim#endif 246292928Sdim 247292928Sdim#ifndef ETIME 248292928Sdim#define ETIME 9935 249292928Sdim#endif 250292928Sdim 251292928Sdim#ifndef ETXTBSY 252292928Sdim#define ETXTBSY 9936 253292928Sdim#endif 254292928Sdim 255292928Sdim#ifndef ETIMEDOUT 256292928Sdim#define ETIMEDOUT 9938 257292928Sdim#endif 258292928Sdim 259292928Sdim#ifndef ELOOP 260292928Sdim#define ELOOP 9939 261292928Sdim#endif 262292928Sdim 263292928Sdim#ifndef EOVERFLOW 264292928Sdim#define EOVERFLOW 9940 265292928Sdim#endif 266292928Sdim 267292928Sdim#ifndef EPROTOTYPE 268292928Sdim#define EPROTOTYPE 9941 269292928Sdim#endif 270292928Sdim 271292928Sdim#ifndef ENOSYS 272292928Sdim#define ENOSYS 9942 273292928Sdim#endif 274292928Sdim 275292928Sdim#ifndef EINVAL 276292928Sdim#define EINVAL 9943 277292928Sdim#endif 278292928Sdim 279292928Sdim#ifndef ERANGE 280292928Sdim#define ERANGE 9944 281292928Sdim#endif 282292928Sdim 283292928Sdim#ifndef EILSEQ 284292928Sdim#define EILSEQ 9945 285292928Sdim#endif 286292928Sdim 287292928Sdim// Windows Mobile doesn't appear to define these: 288292928Sdim 289292928Sdim#ifndef E2BIG 290292928Sdim#define E2BIG 9946 291292928Sdim#endif 292292928Sdim 293292928Sdim#ifndef EDOM 294292928Sdim#define EDOM 9947 295292928Sdim#endif 296292928Sdim 297292928Sdim#ifndef EFAULT 298292928Sdim#define EFAULT 9948 299292928Sdim#endif 300292928Sdim 301292928Sdim#ifndef EBADF 302292928Sdim#define EBADF 9949 303292928Sdim#endif 304292928Sdim 305292928Sdim#ifndef EPIPE 306292928Sdim#define EPIPE 9950 307292928Sdim#endif 308292928Sdim 309292928Sdim#ifndef EXDEV 310292928Sdim#define EXDEV 9951 311292928Sdim#endif 312292928Sdim 313292928Sdim#ifndef EBUSY 314292928Sdim#define EBUSY 9952 315292928Sdim#endif 316292928Sdim 317292928Sdim#ifndef ENOTEMPTY 318292928Sdim#define ENOTEMPTY 9953 319292928Sdim#endif 320292928Sdim 321292928Sdim#ifndef ENOEXEC 322292928Sdim#define ENOEXEC 9954 323292928Sdim#endif 324292928Sdim 325292928Sdim#ifndef EEXIST 326292928Sdim#define EEXIST 9955 327292928Sdim#endif 328292928Sdim 329292928Sdim#ifndef EFBIG 330292928Sdim#define EFBIG 9956 331292928Sdim#endif 332292928Sdim 333292928Sdim#ifndef ENAMETOOLONG 334292928Sdim#define ENAMETOOLONG 9957 335292928Sdim#endif 336292928Sdim 337292928Sdim#ifndef ENOTTY 338292928Sdim#define ENOTTY 9958 339292928Sdim#endif 340292928Sdim 341292928Sdim#ifndef EINTR 342292928Sdim#define EINTR 9959 343292928Sdim#endif 344292928Sdim 345292928Sdim#ifndef ESPIPE 346292928Sdim#define ESPIPE 9960 347292928Sdim#endif 348292928Sdim 349292928Sdim#ifndef EIO 350292928Sdim#define EIO 9961 351292928Sdim#endif 352292928Sdim 353292928Sdim#ifndef EISDIR 354292928Sdim#define EISDIR 9962 355292928Sdim#endif 356292928Sdim 357292928Sdim#ifndef ECHILD 358292928Sdim#define ECHILD 9963 359292928Sdim#endif 360292928Sdim 361292928Sdim#ifndef ENOLCK 362292928Sdim#define ENOLCK 9964 363292928Sdim#endif 364292928Sdim 365292928Sdim#ifndef ENOSPC 366292928Sdim#define ENOSPC 9965 367292928Sdim#endif 368292928Sdim 369292928Sdim#ifndef ENXIO 370292928Sdim#define ENXIO 9966 371292928Sdim#endif 372292928Sdim 373292928Sdim#ifndef ENODEV 374292928Sdim#define ENODEV 9967 375292928Sdim#endif 376292928Sdim 377292928Sdim#ifndef ENOENT 378292928Sdim#define ENOENT 9968 379292928Sdim#endif 380292928Sdim 381292928Sdim#ifndef ESRCH 382292928Sdim#define ESRCH 9969 383292928Sdim#endif 384292928Sdim 385292928Sdim#ifndef ENOTDIR 386292928Sdim#define ENOTDIR 9970 387292928Sdim#endif 388292928Sdim 389292928Sdim#ifndef ENOMEM 390292928Sdim#define ENOMEM 9971 391292928Sdim#endif 392292928Sdim 393292928Sdim#ifndef EPERM 394292928Sdim#define EPERM 9972 395292928Sdim#endif 396292928Sdim 397292928Sdim#ifndef EACCES 398292928Sdim#define EACCES 9973 399292928Sdim#endif 400292928Sdim 401292928Sdim#ifndef EROFS 402292928Sdim#define EROFS 9974 403292928Sdim#endif 404292928Sdim 405292928Sdim#ifndef EDEADLK 406292928Sdim#define EDEADLK 9975 407292928Sdim#endif 408292928Sdim 409292928Sdim#ifndef EAGAIN 410292928Sdim#define EAGAIN 9976 411292928Sdim#endif 412292928Sdim 413292928Sdim#ifndef ENFILE 414292928Sdim#define ENFILE 9977 415292928Sdim#endif 416292928Sdim 417292928Sdim#ifndef EMFILE 418292928Sdim#define EMFILE 9978 419292928Sdim#endif 420292928Sdim 421292928Sdim#ifndef EMLINK 422292928Sdim#define EMLINK 9979 423292928Sdim#endif 424292928Sdim 425360661Sdim#ifndef EINTEGRITY 426360661Sdim#define EINTEGRITY 9980 427360661Sdim#endif 428360661Sdim 429292928Sdim#endif // __cplusplus 430292928Sdim 431292928Sdim#endif // _LIBCPP_ERRNO_H 432