| // Copyright 2009 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package syscall | |
| export const ( | |
| ENONE=0; | |
| EPERM=1; | |
| ENOENT=2; | |
| ESRCH=3; | |
| EINTR=4; | |
| EIO=5; | |
| ENXIO=6; | |
| E2BIG=7; | |
| ENOEXEC=8; | |
| EBADF=9; | |
| ECHILD=10; | |
| EDEADLK=11; | |
| ENOMEM=12; | |
| EACCES=13; | |
| EFAULT=14; | |
| ENOTBLK=15; | |
| EBUSY=16; | |
| EEXIST=17; | |
| EXDEV=18; | |
| ENODEV=19; | |
| ENOTDIR=20; | |
| EISDIR=21; | |
| EINVAL=22; | |
| ENFILE=23; | |
| EMFILE=24; | |
| ENOTTY=25; | |
| ETXTBSY=26; | |
| EFBIG=27; | |
| ENOSPC=28; | |
| ESPIPE=29; | |
| EROFS=30; | |
| EMLINK=31; | |
| EPIPE=32; | |
| EDOM=33; | |
| ERANGE=34; | |
| EAGAIN=35; | |
| EINPROGRESS=36; | |
| EALREADY=37; | |
| ENOTSOCK=38; | |
| EDESTADDRREQ=39; | |
| EMSGSIZE=40; | |
| EPROTOTYPE=41; | |
| ENOPROTOOPT=42; | |
| EPROTONOSUPPORT=43; | |
| ESOCKTNOSUPPORT=44; | |
| ENOTSUP=45; | |
| EPFNOSUPPORT=46; | |
| EAFNOSUPPORT=47; | |
| EADDRINUSE=48; | |
| EADDRNOTAVAIL=49; | |
| ENETDOWN=50; | |
| ENETUNREACH=51; | |
| ENETRESET=52; | |
| ECONNABORTED=53; | |
| ECONNRESET=54; | |
| ENOBUFS=55; | |
| EISCONN=56; | |
| ENOTCONN=57; | |
| ESHUTDOWN=58; | |
| ETOOMANYREFS=59; | |
| ETIMEDOUT=60; | |
| ECONNREFUSED=61; | |
| ELOOP=62; | |
| ENAMETOOLONG=63; | |
| EHOSTDOWN=64; | |
| EHOSTUNREACH=65; | |
| ENOTEMPTY=66; | |
| EPROCLIM=67; | |
| EUSERS=68; | |
| EDQUOT=69; | |
| ESTALE=70; | |
| EREMOTE=71; | |
| EBADRPC=72; | |
| ERPCMISMATCH=73; | |
| EPROGUNAVAIL=74; | |
| EPROGMISMATCH=75; | |
| EPROCUNAVAIL=76; | |
| ENOLCK=77; | |
| ENOSYS=78; | |
| EFTYPE=79; | |
| EAUTH=80; | |
| ENEEDAUTH=81; | |
| EPWROFF=82; | |
| EDEVERR=83; | |
| EOVERFLOW=84; | |
| EBADEXEC=85; | |
| EBADARCH=86; | |
| ESHLIBVERS=87; | |
| EBADMACHO=88; | |
| ECANCELED=89; | |
| EIDRM=90; | |
| ENOMSG=91; | |
| EILSEQ=92; | |
| ENOATTR=93; | |
| EBADMSG=94; | |
| EMULTIHOP=95; | |
| ENODATA=96; | |
| ENOLINK=97; | |
| ENOSR=98; | |
| ENOSTR=99; | |
| EPROTO=100; | |
| ETIME=101; | |
| EOPNOTSUPP=102; | |
| ELAST=103; | |
| ) | |
| var error [ELAST]string; | |
| func init(){ | |
| error[ENONE] = "No error"; | |
| error[EPERM] = "Operation not permitted"; | |
| error[ENOENT] = "No such file or directory"; | |
| error[ESRCH] = "No such process"; | |
| error[EINTR] = "Interrupted system call"; | |
| error[EIO] = "Input/output error"; | |
| error[ENXIO] = "Device not configured"; | |
| error[E2BIG] = "Argument list too long"; | |
| error[ENOEXEC] = "Exec format error"; | |
| error[EBADF] = "Bad file descriptor"; | |
| error[ECHILD] = "No child processes"; | |
| error[EDEADLK] = "Resource deadlock avoided"; | |
| error[ENOMEM] = "Cannot allocate memory"; | |
| error[EACCES] = "Permission denied"; | |
| error[EFAULT] = "Bad address"; | |
| error[ENOTBLK] = "Block device required"; | |
| error[EBUSY] = "Device / Resource busy"; | |
| error[EEXIST] = "File exists"; | |
| error[EXDEV] = "Cross-device link"; | |
| error[ENODEV] = "Operation not supported by device"; | |
| error[ENOTDIR] = "Not a directory"; | |
| error[EISDIR] = "Is a directory"; | |
| error[EINVAL] = "Invalid argument"; | |
| error[ENFILE] = "Too many open files in system"; | |
| error[EMFILE] = "Too many open files"; | |
| error[ENOTTY] = "Inappropriate ioctl for device"; | |
| error[ETXTBSY] = "Text file busy"; | |
| error[EFBIG] = "File too large"; | |
| error[ENOSPC] = "No space left on device"; | |
| error[ESPIPE] = "Illegal seek"; | |
| error[EROFS] = "Read-only file system"; | |
| error[EMLINK] = "Too many links"; | |
| error[EPIPE] = "Broken pipe"; | |
| error[EDOM] = "Numerical argument out of domain"; | |
| error[ERANGE] = "Result too large"; | |
| error[EAGAIN] = "Resource temporarily unavailable"; | |
| error[EINPROGRESS] = "Operation now in progress"; | |
| error[EALREADY] = "Operation already in progress"; | |
| error[ENOTSOCK] = "Socket operation on non-socket"; | |
| error[EDESTADDRREQ] = "Destination address required"; | |
| error[EMSGSIZE] = "Message too long"; | |
| error[EPROTOTYPE] = "Protocol wrong type for socket"; | |
| error[ENOPROTOOPT] = "Protocol not available"; | |
| error[EPROTONOSUPPORT] = "Protocol not supported"; | |
| error[ESOCKTNOSUPPORT] = "Socket type not supported"; | |
| error[ENOTSUP] = "Operation not supported"; | |
| error[EPFNOSUPPORT] = "Protocol family not supported"; | |
| error[EAFNOSUPPORT] = "Address family not supported by protocol family"; | |
| error[EADDRINUSE] = "Address already in use"; | |
| error[EADDRNOTAVAIL] = "Can't assign requested address"; | |
| error[ENETDOWN] = "Network is down"; | |
| error[ENETUNREACH] = "Network is unreachable"; | |
| error[ENETRESET] = "Network dropped connection on reset"; | |
| error[ECONNABORTED] = "Software caused connection abort"; | |
| error[ECONNRESET] = "Connection reset by peer"; | |
| error[ENOBUFS] = "No buffer space available"; | |
| error[EISCONN] = "Socket is already connected"; | |
| error[ENOTCONN] = "Socket is not connected"; | |
| error[ESHUTDOWN] = "Can't send after socket shutdown"; | |
| error[ETOOMANYREFS] = "Too many references: can't splice"; | |
| error[ETIMEDOUT] = "Operation timed out"; | |
| error[ECONNREFUSED] = "Connection refused"; | |
| error[ELOOP] = "Too many levels of symbolic links"; | |
| error[ENAMETOOLONG] = "File name too long"; | |
| error[EHOSTDOWN] = "Host is down"; | |
| error[EHOSTUNREACH] = "No route to host"; | |
| error[ENOTEMPTY] = "Directory not empty"; | |
| error[EPROCLIM] = "Too many processes"; | |
| error[EUSERS] = "Too many users"; | |
| error[EDQUOT] = "Disc quota exceeded"; | |
| error[ESTALE] = "Stale NFS file handle"; | |
| error[EREMOTE] = "Too many levels of remote in path"; | |
| error[EBADRPC] = "RPC struct is bad"; | |
| error[ERPCMISMATCH] = "RPC version wrong"; | |
| error[EPROGUNAVAIL] = "RPC prog. not avail"; | |
| error[EPROGMISMATCH] = "Program version wrong"; | |
| error[EPROCUNAVAIL] = "Bad procedure for program"; | |
| error[ENOLCK] = "No locks available"; | |
| error[ENOSYS] = "Function not implemented"; | |
| error[EFTYPE] = "Inappropriate file type or format"; | |
| error[EAUTH] = "Authentication error"; | |
| error[ENEEDAUTH] = "Need authenticator"; | |
| error[EPWROFF] = "Device power is off"; | |
| error[EDEVERR] = "Device error, e.g. paper out"; | |
| error[EOVERFLOW] = "Value too large to be stored in data type"; | |
| error[EBADEXEC] = "Bad executable"; | |
| error[EBADARCH] = "Bad CPU type in executable"; | |
| error[ESHLIBVERS] = "Shared library version mismatch"; | |
| error[EBADMACHO] = "Malformed Macho file"; | |
| error[ECANCELED] = "Operation canceled"; | |
| error[EIDRM] = "Identifier removed"; | |
| error[ENOMSG] = "No message of desired type"; | |
| error[EILSEQ] = "Illegal byte sequence"; | |
| error[ENOATTR] = "Attribute not found"; | |
| error[EBADMSG] = "Bad message"; | |
| error[EMULTIHOP] = "Reserved"; | |
| error[ENODATA] = "No message available on STREAM"; | |
| error[ENOLINK] = "Reserved"; | |
| error[ENOSR] = "No STREAM resources"; | |
| error[ENOSTR] = "Not a STREAM"; | |
| error[EPROTO] = "Protocol error"; | |
| error[ETIME] = "STREAM ioctl timeout"; | |
| error[EOPNOTSUPP] = "Operation not supported on socket"; | |
| } | |
| func str(val int64) string { // do it here rather than with fmt to avoid dependency | |
| if val < 0 { | |
| return "-" + str(-val); | |
| } | |
| var buf [32]byte; // big enough for int64 | |
| i := len(buf)-1; | |
| for val >= 10 { | |
| buf[i] = byte(val%10 + '0'); | |
| i--; | |
| val /= 10; | |
| } | |
| buf[i] = byte(val + '0'); | |
| return string(buf)[i:len(buf)]; | |
| } | |
| export func errstr(errno int64) string { | |
| if errno < 0 || errno >= len(error) { | |
| return "Error " + str(errno) | |
| } | |
| return error[errno] | |
| } |