blob: 35aa19370257b1c73b522030fd496ca8d4cbab9f [file] [log] [blame]
// Copyright Microsoft and CHERIoT Contributors.
// SPDX-License-Identifier: MIT
#ifndef _ERRNO_H_
#define _ERRNO_H_
#define ECOMPARTMENTFAIL 1 // Compartment failed
#define EPERM 2 // Operation not permitted.
#define ENOENT 3 // No such file or directory.
#define ESRCH 4 // No such process.
#define EINTR 5 // Interrupted function.
#define EIO 6 // I/O error.
#define ENXIO 7 // No such device or address.
#define E2BIG 8 // Argument list too long.
#define ENOEXEC 9 // Executable file format error.
#define EBADF 10 // Bad file descriptor.
#define ECHILD 11 // No child processes.
#define EAGAIN 12 // Resource unavailable, try again.
#define ENOMEM 13 // Not enough space.
#define EACCES 14 // Permission denied.
#define EFAULT 15 // Bad address.
#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 or a symbolic link to a directory.
#define EISDIR 21 // Is a directory.
#define EINVAL 22 // Invalid argument.
#define ENFILE 23 // Too many files open in system.
#define EMFILE 24 // File descriptor value too large.
#define ENOTTY 25 // Inappropriate I/O control operation.
#define ETXTBSY 26 // Text file busy.
#define EFBIG 27 // File too large.
#define ENOSPC 28 // No space left on device.
#define ESPIPE 29 // Invalid seek.
#define EROFS 30 // Read-only file system.
#define EMLINK 31 // Too many links.
#define EPIPE 32 // Broken pipe.
#define EDOM 33 // Math arg out of domain of func.
#define ERANGE 34 // Result too large.
#define ENAMETOOLONG 36 // Filename too long.
#define ENOLCK 37 // No locks available.
#define ENOSYS 38 // Functionality not supported.
#define ENOTEMPTY 39 // Directory not empty.
#define ELOOP 40 // Too many levels of symbolic links.
#define ENOMSG 42 // No message of the desired type.
#define EIDRM 43 // Identifier removed.
#define EDEADLK 45 // Resource deadlock would occur.
#define EUNATCH 49 // Protocol driver not attached.
#define EBADE 52 // Invalid exchange.
#define ENOSTR 60 // Not a STREAM.
#define ENODATA 61 // No data available.
#define ETIME 62 // Timer expired.
#define ENOSR 63 // No STREAM resources.
#define ENOLINK 67 // Reserved.
#define EPROTO 71 // Protocol error.
#define EMULTIHOP 72 // Reserved.
#define EBADMSG 74 // Bad message.
#define EFTYPE 79 // Inappropriate file type or format.
#define EILSEQ 84 // Illegal byte sequence.
#define ENOTSOCK 88 // Not a socket.
#define EDESTADDRREQ 89 // Destination address required.
#define EMSGSIZE 90 // Message too large.
#define EPROTOTYPE 91 // Protocol wrong type for socket.
#define ENOPROTOOPT 92 // Protocol not available.
#define EPROTONOSUPPORT 93 // Protocol not supported.
#define EOPNOTSUPP 95 // Operation not supported on socket.
#define EAFNOSUPPORT 97 // Address family not supported.
#define EADDRINUSE 98 // Address in use.
#define EADDRNOTAVAIL 99 // Address not available.
#define ENETDOWN 100 // Network is down.
#define ENETUNREACH 101 // Network unreachable.
#define ENETRESET 102 // Connection aborted by network.
#define ECONNABORTED 103 // Connection aborted.
#define ECONNRESET 104 // Connection reset.
#define ENOBUFS 105 // No buffer space available.
#define EISCONN 106 // Socket is connected.
#define ENOTCONN 107 // The socket is not connected.
#define ETIMEDOUT 110 // Connection timed out.
#define ECONNREFUSED 111 // Connection refused.
#define EHOSTUNREACH 113 // Host is unreachable.
#define EALREADY 114 // Connection already in progress.
#define EINPROGRESS 115 // Operation in progress.
#define ESTALE 116 // Reserved.
#define EDQUOT 122 // Reserved.
#define ENOMEDIUM 123 // No medium inserted.
#define ECANCELED 125 // Operation canceled.
#define EOWNERDEAD 130 // Previous owner died.
#define ENOTRECOVERABLE 131 // State not recoverable.
#define EOVERFLOW 139 // Value too large to be stored in data type.
#define ENOTENOUGHSTACK 140 // Insufficient stack space for cross-compartment call.
#define ENOTENOUGHTRUSTEDSTACK 141 // Insufficient stack space for cross-compartment call.
#define EWOULDBLOCK EAGAIN // Operation would block.
#define ENOTSUP EOPNOTSUPP // Not supported.
#define __ELASTERROR 2000 // Users can add values starting here.
#endif // _ERRNO_H_