summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/wasip1/errno.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/wasip1/errno.go')
-rw-r--r--vendor/github.com/tetratelabs/wazero/internal/wasip1/errno.go314
1 files changed, 0 insertions, 314 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/wasip1/errno.go b/vendor/github.com/tetratelabs/wazero/internal/wasip1/errno.go
deleted file mode 100644
index 028573d2f..000000000
--- a/vendor/github.com/tetratelabs/wazero/internal/wasip1/errno.go
+++ /dev/null
@@ -1,314 +0,0 @@
-package wasip1
-
-import (
- "fmt"
-
- "github.com/tetratelabs/wazero/experimental/sys"
-)
-
-// Errno is neither uint16 nor an alias for parity with wasm.ValueType.
-type Errno = uint32
-
-// ErrnoName returns the POSIX error code name, except ErrnoSuccess, which is
-// not an error. e.g. Errno2big -> "E2BIG"
-func ErrnoName(errno uint32) string {
- if int(errno) < len(errnoToString) {
- return errnoToString[errno]
- }
- return fmt.Sprintf("errno(%d)", errno)
-}
-
-// Note: Below prefers POSIX symbol names over WASI ones, even if the docs are from WASI.
-// See https://linux.die.net/man/3/errno
-// See https://github.com/WebAssembly/WASI/blob/snapshot-01/phases/snapshot/docs.md#variants-1
-const (
- // ErrnoSuccess No error occurred. System call completed successfully.
- ErrnoSuccess Errno = iota
- // Errno2big Argument list too long.
- Errno2big
- // ErrnoAcces Permission denied.
- ErrnoAcces
- // ErrnoAddrinuse Address in use.
- ErrnoAddrinuse
- // ErrnoAddrnotavail Address not available.
- ErrnoAddrnotavail
- // ErrnoAfnosupport Address family not supported.
- ErrnoAfnosupport
- // ErrnoAgain Resource unavailable, or operation would block.
- ErrnoAgain
- // ErrnoAlready Connection already in progress.
- ErrnoAlready
- // ErrnoBadf Bad file descriptor.
- ErrnoBadf
- // ErrnoBadmsg Bad message.
- ErrnoBadmsg
- // ErrnoBusy Device or resource busy.
- ErrnoBusy
- // ErrnoCanceled Operation canceled.
- ErrnoCanceled
- // ErrnoChild No child processes.
- ErrnoChild
- // ErrnoConnaborted Connection aborted.
- ErrnoConnaborted
- // ErrnoConnrefused Connection refused.
- ErrnoConnrefused
- // ErrnoConnreset Connection reset.
- ErrnoConnreset
- // ErrnoDeadlk Resource deadlock would occur.
- ErrnoDeadlk
- // ErrnoDestaddrreq Destination address required.
- ErrnoDestaddrreq
- // ErrnoDom Mathematics argument out of domain of function.
- ErrnoDom
- // ErrnoDquot Reserved.
- ErrnoDquot
- // ErrnoExist File exists.
- ErrnoExist
- // ErrnoFault Bad address.
- ErrnoFault
- // ErrnoFbig File too large.
- ErrnoFbig
- // ErrnoHostunreach Host is unreachable.
- ErrnoHostunreach
- // ErrnoIdrm Identifier removed.
- ErrnoIdrm
- // ErrnoIlseq Illegal byte sequence.
- ErrnoIlseq
- // ErrnoInprogress Operation in progress.
- ErrnoInprogress
- // ErrnoIntr Interrupted function.
- ErrnoIntr
- // ErrnoInval Invalid argument.
- ErrnoInval
- // ErrnoIo I/O error.
- ErrnoIo
- // ErrnoIsconn Socket is connected.
- ErrnoIsconn
- // ErrnoIsdir Is a directory.
- ErrnoIsdir
- // ErrnoLoop Too many levels of symbolic links.
- ErrnoLoop
- // ErrnoMfile File descriptor value too large.
- ErrnoMfile
- // ErrnoMlink Too many links.
- ErrnoMlink
- // ErrnoMsgsize Message too large.
- ErrnoMsgsize
- // ErrnoMultihop Reserved.
- ErrnoMultihop
- // ErrnoNametoolong Filename too long.
- ErrnoNametoolong
- // ErrnoNetdown Network is down.
- ErrnoNetdown
- // ErrnoNetreset Connection aborted by network.
- ErrnoNetreset
- // ErrnoNetunreach Network unreachable.
- ErrnoNetunreach
- // ErrnoNfile Too many files open in system.
- ErrnoNfile
- // ErrnoNobufs No buffer space available.
- ErrnoNobufs
- // ErrnoNodev No such device.
- ErrnoNodev
- // ErrnoNoent No such file or directory.
- ErrnoNoent
- // ErrnoNoexec Executable file format error.
- ErrnoNoexec
- // ErrnoNolck No locks available.
- ErrnoNolck
- // ErrnoNolink Reserved.
- ErrnoNolink
- // ErrnoNomem Not enough space.
- ErrnoNomem
- // ErrnoNomsg No message of the desired type.
- ErrnoNomsg
- // ErrnoNoprotoopt No message of the desired type.
- ErrnoNoprotoopt
- // ErrnoNospc No space left on device.
- ErrnoNospc
- // ErrnoNosys function not supported.
- ErrnoNosys
- // ErrnoNotconn The socket is not connected.
- ErrnoNotconn
- // ErrnoNotdir Not a directory or a symbolic link to a directory.
- ErrnoNotdir
- // ErrnoNotempty Directory not empty.
- ErrnoNotempty
- // ErrnoNotrecoverable State not recoverable.
- ErrnoNotrecoverable
- // ErrnoNotsock Not a socket.
- ErrnoNotsock
- // ErrnoNotsup Not supported, or operation not supported on socket.
- ErrnoNotsup
- // ErrnoNotty Inappropriate I/O control operation.
- ErrnoNotty
- // ErrnoNxio No such device or address.
- ErrnoNxio
- // ErrnoOverflow Value too large to be stored in data type.
- ErrnoOverflow
- // ErrnoOwnerdead Previous owner died.
- ErrnoOwnerdead
- // ErrnoPerm Operation not permitted.
- ErrnoPerm
- // ErrnoPipe Broken pipe.
- ErrnoPipe
- // ErrnoProto Protocol error.
- ErrnoProto
- // ErrnoProtonosupport Protocol error.
- ErrnoProtonosupport
- // ErrnoPrototype Protocol wrong type for socket.
- ErrnoPrototype
- // ErrnoRange Result too large.
- ErrnoRange
- // ErrnoRofs Read-only file system.
- ErrnoRofs
- // ErrnoSpipe Invalid seek.
- ErrnoSpipe
- // ErrnoSrch No such process.
- ErrnoSrch
- // ErrnoStale Reserved.
- ErrnoStale
- // ErrnoTimedout Connection timed out.
- ErrnoTimedout
- // ErrnoTxtbsy Text file busy.
- ErrnoTxtbsy
- // ErrnoXdev Cross-device link.
- ErrnoXdev
-
- // Note: ErrnoNotcapable was removed by WASI maintainers.
- // See https://github.com/WebAssembly/wasi-libc/pull/294
-)
-
-var errnoToString = [...]string{
- "ESUCCESS",
- "E2BIG",
- "EACCES",
- "EADDRINUSE",
- "EADDRNOTAVAIL",
- "EAFNOSUPPORT",
- "EAGAIN",
- "EALREADY",
- "EBADF",
- "EBADMSG",
- "EBUSY",
- "ECANCELED",
- "ECHILD",
- "ECONNABORTED",
- "ECONNREFUSED",
- "ECONNRESET",
- "EDEADLK",
- "EDESTADDRREQ",
- "EDOM",
- "EDQUOT",
- "EEXIST",
- "EFAULT",
- "EFBIG",
- "EHOSTUNREACH",
- "EIDRM",
- "EILSEQ",
- "EINPROGRESS",
- "EINTR",
- "EINVAL",
- "EIO",
- "EISCONN",
- "EISDIR",
- "ELOOP",
- "EMFILE",
- "EMLINK",
- "EMSGSIZE",
- "EMULTIHOP",
- "ENAMETOOLONG",
- "ENETDOWN",
- "ENETRESET",
- "ENETUNREACH",
- "ENFILE",
- "ENOBUFS",
- "ENODEV",
- "ENOENT",
- "ENOEXEC",
- "ENOLCK",
- "ENOLINK",
- "ENOMEM",
- "ENOMSG",
- "ENOPROTOOPT",
- "ENOSPC",
- "ENOSYS",
- "ENOTCONN",
- "ENOTDIR",
- "ENOTEMPTY",
- "ENOTRECOVERABLE",
- "ENOTSOCK",
- "ENOTSUP",
- "ENOTTY",
- "ENXIO",
- "EOVERFLOW",
- "EOWNERDEAD",
- "EPERM",
- "EPIPE",
- "EPROTO",
- "EPROTONOSUPPORT",
- "EPROTOTYPE",
- "ERANGE",
- "EROFS",
- "ESPIPE",
- "ESRCH",
- "ESTALE",
- "ETIMEDOUT",
- "ETXTBSY",
- "EXDEV",
- "ENOTCAPABLE",
-}
-
-// ToErrno coerces the error to a WASI Errno.
-//
-// Note: Coercion isn't centralized in sys.FSContext because ABI use different
-// error codes. For example, wasi-filesystem doesn't map to these
-// Errno.
-func ToErrno(errno sys.Errno) Errno {
- switch errno {
- case 0:
- return ErrnoSuccess
- case sys.EACCES:
- return ErrnoAcces
- case sys.EAGAIN:
- return ErrnoAgain
- case sys.EBADF:
- return ErrnoBadf
- case sys.EEXIST:
- return ErrnoExist
- case sys.EFAULT:
- return ErrnoFault
- case sys.EINTR:
- return ErrnoIntr
- case sys.EINVAL:
- return ErrnoInval
- case sys.EIO:
- return ErrnoIo
- case sys.EISDIR:
- return ErrnoIsdir
- case sys.ELOOP:
- return ErrnoLoop
- case sys.ENAMETOOLONG:
- return ErrnoNametoolong
- case sys.ENOENT:
- return ErrnoNoent
- case sys.ENOSYS:
- return ErrnoNosys
- case sys.ENOTDIR:
- return ErrnoNotdir
- case sys.ERANGE:
- return ErrnoRange
- case sys.ENOTEMPTY:
- return ErrnoNotempty
- case sys.ENOTSOCK:
- return ErrnoNotsock
- case sys.ENOTSUP:
- return ErrnoNotsup
- case sys.EPERM:
- return ErrnoPerm
- case sys.EROFS:
- return ErrnoRofs
- default:
- return ErrnoIo
- }
-}