Ryujinx-uplift/Ryujinx.HLE/Utilities/LinuxError.cs
Thomas Guillemard b5f7d8106b Complete rewrite of bsd IClient (#460)
This should provide accurate behaviours.
This implementation has been tested with ftpd and libtransistor bsd tests.

This implementation lacks OOB support.
2018-10-20 22:08:58 +00:00

152 lines
8.8 KiB
C#

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