Files
swift-mirror/stdlib/public/Platform/POSIXError.swift
danra 37024e6ea0 Cosmetic fixes (NFC)
- Add newlines where missing to match sys/errno.h error groups separation
- Prefer single-line comments to C-style comments
- Align most comments to same column
- Add comment following #endif at EOF to show what it ends
- Remove extraneous whitespace
2016-04-02 17:14:28 +03:00

148 lines
8.0 KiB
Swift

// FIXME: Only defining _POSIXError for Darwin at the moment.
#if os(OSX) || os(iOS) || os(tvOS) || os(watchOS)
/// Enumeration describing POSIX error codes.
@objc public enum POSIXError : CInt {
// FIXME: These are the values for Darwin. We need to get the Linux
// values as well.
case EPERM = 1 /// Operation not permitted.
case ENOENT = 2 /// No such file or directory.
case ESRCH = 3 /// No such process.
case EINTR = 4 /// Interrupted system call.
case EIO = 5 /// Input/output error.
case ENXIO = 6 /// Device not configured.
case E2BIG = 7 /// Argument list too long.
case ENOEXEC = 8 /// Exec format error.
case EBADF = 9 /// Bad file descriptor.
case ECHILD = 10 /// No child processes.
case EDEADLK = 11 /// Resource deadlock avoided.
/// 11 was EAGAIN.
case ENOMEM = 12 /// Cannot allocate memory.
case EACCES = 13 /// Permission denied.
case EFAULT = 14 /// Bad address.
case ENOTBLK = 15 /// Block device required.
case EBUSY = 16 /// Device / Resource busy.
case EEXIST = 17 /// File exists.
case EXDEV = 18 /// Cross-device link.
case ENODEV = 19 /// Operation not supported by device.
case ENOTDIR = 20 /// Not a directory.
case EISDIR = 21 /// Is a directory.
case EINVAL = 22 /// Invalid argument.
case ENFILE = 23 /// Too many open files in system.
case EMFILE = 24 /// Too many open files.
case ENOTTY = 25 /// Inappropriate ioctl for device.
case ETXTBSY = 26 /// Text file busy.
case EFBIG = 27 /// File too large.
case ENOSPC = 28 /// No space left on device.
case ESPIPE = 29 /// Illegal seek.
case EROFS = 30 /// Read-only file system.
case EMLINK = 31 /// Too many links.
case EPIPE = 32 /// Broken pipe.
/// math software.
case EDOM = 33 /// Numerical argument out of domain.
case ERANGE = 34 /// Result too large.
/// non-blocking and interrupt i/o.
case EAGAIN = 35 /// Resource temporarily unavailable.
public static var EWOULDBLOCK: POSIXError { return EAGAIN } /// Operation would block.
case EINPROGRESS = 36 /// Operation now in progress.
case EALREADY = 37 /// Operation already in progress.
/// ipc/network software -- argument errors.
case ENOTSOCK = 38 /// Socket operation on non-socket.
case EDESTADDRREQ = 39 /// Destination address required.
case EMSGSIZE = 40 /// Message too long.
case EPROTOTYPE = 41 /// Protocol wrong type for socket.
case ENOPROTOOPT = 42 /// Protocol not available.
case EPROTONOSUPPORT = 43 /// Protocol not supported.
case ESOCKTNOSUPPORT = 44 /// Socket type not supported.
case ENOTSUP = 45 /// Operation not supported.
case EPFNOSUPPORT = 46 /// Protocol family not supported.
case EAFNOSUPPORT = 47 /// Address family not supported by protocol family.
case EADDRINUSE = 48 /// Address already in use.
case EADDRNOTAVAIL = 49 /// Can't assign requested address.
/// ipc/network software -- operational errors
case ENETDOWN = 50 /// Network is down.
case ENETUNREACH = 51 /// Network is unreachable.
case ENETRESET = 52 /// Network dropped connection on reset.
case ECONNABORTED = 53 /// Software caused connection abort.
case ECONNRESET = 54 /// Connection reset by peer.
case ENOBUFS = 55 /// No buffer space available.
case EISCONN = 56 /// Socket is already connected.
case ENOTCONN = 57 /// Socket is not connected.
case ESHUTDOWN = 58 /// Can't send after socket shutdown.
case ETOOMANYREFS = 59 /// Too many references: can't splice.
case ETIMEDOUT = 60 /// Operation timed out.
case ECONNREFUSED = 61 /// Connection refused.
case ELOOP = 62 /// Too many levels of symbolic links.
case ENAMETOOLONG = 63 /// File name too long.
case EHOSTDOWN = 64 /// Host is down.
case EHOSTUNREACH = 65 /// No route to host.
case ENOTEMPTY = 66 /// Directory not empty.
/// quotas & mush.
case EPROCLIM = 67 /// Too many processes.
case EUSERS = 68 /// Too many users.
case EDQUOT = 69 /// Disc quota exceeded.
/// Network File System.
case ESTALE = 70 /// Stale NFS file handle.
case EREMOTE = 71 /// Too many levels of remote in path.
case EBADRPC = 72 /// RPC struct is bad.
case ERPCMISMATCH = 73 /// RPC version wrong.
case EPROGUNAVAIL = 74 /// RPC prog. not avail.
case EPROGMISMATCH = 75 /// Program version wrong.
case EPROCUNAVAIL = 76 /// Bad procedure for program.
case ENOLCK = 77 /// No locks available.
case ENOSYS = 78 /// Function not implemented.
case EFTYPE = 79 /// Inappropriate file type or format.
case EAUTH = 80 /// Authentication error.
case ENEEDAUTH = 81 /// Need authenticator.
/// Intelligent device errors.
case EPWROFF = 82 /// Device power is off.
case EDEVERR = 83 /// Device error, e.g. paper out.
case EOVERFLOW = 84 /// Value too large to be stored in data type.
/// Program loading errors.
case EBADEXEC = 85 /// Bad executable.
case EBADARCH = 86 /// Bad CPU type in executable.
case ESHLIBVERS = 87 /// Shared library version mismatch.
case EBADMACHO = 88 /// Malformed Macho file.
case ECANCELED = 89 /// Operation canceled.
case EIDRM = 90 /// Identifier removed.
case ENOMSG = 91 /// No message of desired type.
case EILSEQ = 92 /// Illegal byte sequence.
case ENOATTR = 93 /// Attribute not found.
case EBADMSG = 94 /// Bad message.
case EMULTIHOP = 95 /// Reserved.
case ENODATA = 96 /// No message available on STREAM.
case ENOLINK = 97 /// Reserved.
case ENOSR = 98 /// No STREAM resources.
case ENOSTR = 99 /// Not a STREAM.
case EPROTO = 100 /// Protocol error.
case ETIME = 101 /// STREAM ioctl timeout.
case ENOPOLICY = 103 /// No such policy registered.
case ENOTRECOVERABLE = 104 /// State not recoverable.
case EOWNERDEAD = 105 /// Previous owner died.
case EQFULL = 106 /// Interface output queue is full.
public static var ELAST: POSIXError { return EQFULL } /// Must be equal largest errno.
// FIXME: EOPNOTSUPP has different values depending on __DARWIN_UNIX03 and
// KERNEL.
}
#endif // os(OSX) || os(iOS) || os(tvOS) || os(watchOS)