mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 09:22:22 -07:00
146 lines
6.1 KiB
Odin
146 lines
6.1 KiB
Odin
//+private
|
|
package os2
|
|
|
|
import "core:sys/unix"
|
|
|
|
EPERM :: 1
|
|
ENOENT :: 2
|
|
ESRCH :: 3
|
|
EINTR :: 4
|
|
EIO :: 5
|
|
ENXIO :: 6
|
|
EBADF :: 9
|
|
EAGAIN :: 11
|
|
ENOMEM :: 12
|
|
EACCES :: 13
|
|
EFAULT :: 14
|
|
EEXIST :: 17
|
|
ENODEV :: 19
|
|
ENOTDIR :: 20
|
|
EISDIR :: 21
|
|
EINVAL :: 22
|
|
ENFILE :: 23
|
|
EMFILE :: 24
|
|
ETXTBSY :: 26
|
|
EFBIG :: 27
|
|
ENOSPC :: 28
|
|
ESPIPE :: 29
|
|
EROFS :: 30
|
|
EPIPE :: 32
|
|
ERANGE :: 34 /* Result too large */
|
|
EDEADLK :: 35 /* Resource deadlock would occur */
|
|
ENAMETOOLONG :: 36 /* File name too long */
|
|
ENOLCK :: 37 /* No record locks available */
|
|
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 */
|
|
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 */
|
|
|
|
_get_platform_error :: proc(res: int) -> Error {
|
|
errno := unix.get_errno(res)
|
|
return Platform_Error(i32(errno))
|
|
}
|
|
|
|
_ok_or_error :: proc(res: int) -> Error {
|
|
return res >= 0 ? nil : _get_platform_error(res)
|
|
}
|
|
|
|
_error_string :: proc(errno: i32) -> string {
|
|
if errno == 0 {
|
|
return ""
|
|
}
|
|
return "Error"
|
|
}
|