/// @file errno.h /// @brief Errors definition. /// @copyright (c) 2014-2022 This file is distributed under the MIT License. /// See LICENSE.md for details. #pragma once extern int *__geterrno(); /// Provide easy access to the error number. #define errno (*__geterrno()) #define EPERM 1 ///< Operation not permitted. #define ENOENT 2 ///< No such file or directory. #define ESRCH 3 ///< No such process. #define EINTR 4 ///< Interrupted system call. #define EIO 5 ///< I/O error. #define ENXIO 6 ///< No such device or address. #define E2BIG 7 ///< Arg list too long. #define ENOEXEC 8 ///< Exec format error. #define EBADF 9 ///< Bad file number. #define ECHILD 10 ///< No child processes. #define EAGAIN 11 ///< Try again. #define ENOMEM 12 ///< Out of memory. #define EACCES 13 ///< Permission denied. #define EFAULT 14 ///< Bad address. #define ENOTBLK 15 ///< Block device required. #define EBUSY 16 ///< Device or resource busy. #define EEXIST 17 ///< File exists. #define EXDEV 18 ///< Cross-device link. #define ENODEV 19 ///< No such device. #define ENOTDIR 20 ///< Not a directory. #define EISDIR 21 ///< Is a directory. #define EINVAL 22 ///< Invalid argument. #define ENFILE 23 ///< File table overflow. #define EMFILE 24 ///< Too many open files. #define ENOTTY 25 ///< Not a typewriter. #define ETXTBSY 26 ///< Text file busy. #define EFBIG 27 ///< File too large. #define ENOSPC 28 ///< No space left on device. #define ESPIPE 29 ///< Illegal seek. #define EROFS 30 ///< Read-only file system. #define EMLINK 31 ///< Too many links. #define EPIPE 32 ///< Broken pipe. #define EDOM 33 ///< Math argument out of domain of func. #define ERANGE 34 ///< Math result not representable. #define EDEADLK 35 ///< Resource deadlock would occur. #define ENAMETOOLONG 36 ///< File name too long. #define ENOLCK 37 ///< No record locks available. #define ENOSYS 38 ///< Function not implemented. #define ENOTEMPTY 39 ///< Directory not empty. #define ELOOP 40 ///< Too many symbolic links encountered. #define EWOULDBLOCK EAGAIN ///< Operation would block. #define ENOMSG 42 ///< No message of desired type. #define EIDRM 43 ///< Identifier removed. #define ECHRNG 44 ///< Channel number out of range. #define EL2NSYNC 45 ///< Level 2 not synchronized. #define EL3HLT 46 ///< Level 3 halted. #define EL3RST 47 ///< Level 3 reset. #define ELNRNG 48 ///< Link number out of range. #define EUNATCH 49 ///< Protocol driver not attached. #define ENOCSI 50 ///< No CSI structure available. #define EL2HLT 51 ///< Level 2 halted. #define EBADE 52 ///< Invalid exchange. #define EBADR 53 ///< Invalid request descriptor. #define EXFULL 54 ///< Exchange full. #define ENOANO 55 ///< No anode. #define EBADRQC 56 ///< Invalid request code. #define EBADSLT 57 ///< Invalid slot. #define EDEADLOCK EDEADLK ///< Resource deadlock would occur. #define EBFONT 59 ///< Bad font file format. #define ENOSTR 60 ///< Device not a stream. #define ENODATA 61 ///< No data available. #define ETIME 62 ///< Timer expired. #define ENOSR 63 ///< Out of streams resources. #define ENONET 64 ///< Machine is not on the network. #define ENOPKG 65 ///< Package not installed. #define EREMOTE 66 ///< Object is remote. #define ENOLINK 67 ///< Link has been severed. #define EADV 68 ///< Advertise error. #define ESRMNT 69 ///< Srmount error. #define ECOMM 70 ///< Communication error on send. #define EPROTO 71 ///< Protocol error. #define EMULTIHOP 72 ///< Multihop attempted. #define EDOTDOT 73 ///< RFS specific error. #define EBADMSG 74 ///< Not a data message. #define EOVERFLOW 75 ///< Value too large for defined data type. #define ENOTUNIQ 76 ///< Name not unique on network. #define EBADFD 77 ///< File descriptor in bad state. #define EREMCHG 78 ///< Remote address changed. #define ELIBACC 79 ///< Can not access a needed shared library. #define ELIBBAD 80 ///< Accessing a corrupted shared library. #define ELIBSCN 81 ///< .lib section in a.out corrupted. #define ELIBMAX 82 ///< Attempting to link in too many shared libraries. #define ELIBEXEC 83 ///< Cannot exec a shared library directly. #define EILSEQ 84 ///< Illegal byte sequence. #define ERESTART 85 ///< Interrupted system call should be restarted. #define ESTRPIPE 86 ///< Streams pipe error. #define EUSERS 87 ///< Too many users. #define ENOTSOCK 88 ///< Socket operation on non-socket. #define EDESTADDRREQ 89 ///< Destination address required. #define EMSGSIZE 90 ///< Message too long. #define EPROTOTYPE 91 ///< Protocol wrong type for socket. #define ENOPROTOOPT 92 ///< Protocol not available. #define EPROTONOSUPPORT 93 ///< Protocol not supported. #define ESOCKTNOSUPPORT 94 ///< Socket type not supported. #define EOPNOTSUPP 95 ///< Operation not supported on transport endpoint. #define EPFNOSUPPORT 96 ///< Protocol family not supported. #define EAFNOSUPPORT 97 ///< Address family not supported by protocol. #define EADDRINUSE 98 ///< Address already in use. #define EADDRNOTAVAIL 99 ///< Cannot assign requested address. #define ENETDOWN 100 ///< Network is down. #define ENETUNREACH 101 ///< Network is unreachable. #define ENETRESET 102 ///< Network dropped connection because of reset. #define ECONNABORTED 103 ///< Software caused connection abort. #define ECONNRESET 104 ///< Connection reset by peer. #define ENOBUFS 105 ///< No buffer space available. #define EISCONN 106 ///< Transport endpoint is already connected. #define ENOTCONN 107 ///< Transport endpoint is not connected. #define ESHUTDOWN 108 ///< Cannot send after transport endpoint shutdown. #define ETOOMANYREFS 109 ///< Too many references: cannot splice. #define ETIMEDOUT 110 ///< Connection timed out. #define ECONNREFUSED 111 ///< Connection refused. #define EHOSTDOWN 112 ///< Host is down. #define EHOSTUNREACH 113 ///< No route to host. #define EALREADY 114 ///< Operation already in progress. #define EINPROGRESS 115 ///< Operation now in progress. #define ESTALE 116 ///< Stale NFS file handle. #define EUCLEAN 117 ///< Structure needs cleaning. #define ENOTNAM 118 ///< Not a XENIX named type file. #define ENAVAIL 119 ///< No XENIX semaphores available. #define EISNAM 120 ///< Is a named type file. #define EREMOTEIO 121 ///< Remote I/O error. #define EDQUOT 122 ///< Quota exceeded. #define ENOMEDIUM 123 ///< No medium found. #define EMEDIUMTYPE 124 ///< Wrong medium type. #define ENOTSCHEDULABLE 125 ///< The periodc process cannot be scheduled.