package wasi:filesystem; interface wasi { enum clockid { /// The clock measuring real time. Time value zero corresponds with /// 1970-01-01T00:00:00Z. realtime, /// The store-wide monotonic clock, which is defined as a clock measuring /// real time, whose value cannot be adjusted and which cannot have negative /// clock jumps. The epoch of this clock is undefined. The absolute time /// value of this clock therefore has no meaning. monotonic, } /// Timestamp in nanoseconds. type timestamp = u64; /// Error codes returned by functions. /// Not all of these error codes are returned by the functions provided by this /// API/ some are used in higher-level library layers, and others are provided /// merely for alignment with POSIX. enum errno { /// No error occurred. System call completed successfully. success, /// Argument list too long. toobig, /// Permission denied. access, /// Address in use. addrinuse, /// Address not available. addrnotavail, /// Address family not supported. afnosupport, /// Resource unavailable, or operation would block. again, /// Connection already in progress. already, /// Bad file descriptor. badf, /// Bad message. badmsg, /// Device or resource busy. busy, /// Operation canceled. canceled, /// No child processes. child, /// Connection aborted. connaborted, /// Connection refused. connrefused, /// Connection reset. connreset, /// Resource deadlock would occur. deadlk, /// Destination address required. destaddrreq, /// Mathematics argument out of domain of function. dom, /// Reserved. dquot, /// File exists. exist, /// Bad address. fault, /// File too large. fbig, /// Host is unreachable. hostunreach, /// Identifier removed. idrm, /// Illegal byte sequence. ilseq, /// Operation in progress. inprogress, /// Interrupted function. intr, /// Invalid argument. inval, /// I/O error. io, /// Socket is connected. isconn, /// Is a directory. isdir, /// Too many levels of symbolic links. loop, /// File descriptor value too large. mfile, /// Too many links. mlink, /// Message too large. msgsize, /// Reserved. multihop, /// Filename too long. nametoolong, /// Network is down. netdown, /// Connection aborted by network. netreset, /// Network unreachable. netunreach, /// Too many files open in system. nfile, /// No buffer space available. nobufs, /// No such device. nodev, /// No such file or directory. noent, /// Executable file format error. noexec, /// No locks available. nolck, /// Reserved. nolink, /// Not enough space. nomem, /// No message of the desired type. nomsg, /// Protocol not available. noprotoopt, /// No space left on device. nospc, /// Function not supported. nosys, /// The socket is not connected. notconn, /// Not a directory or a symbolic link to a directory. notdir, /// Directory not empty. notempty, /// State not recoverable. notrecoverable, /// Not a socket. notsock, /// Not supported, or operation not supported on socket. notsup, /// Inappropriate I/O control operation. notty, /// No such device or address. nxio, /// Value too large to be stored in data type. overflow, /// Previous owner died. ownerdead, /// Operation not permitted. perm, /// Broken pipe. pipe, /// Protocol error. proto, /// Protocol not supported. protonosupport, /// Protocol wrong type for socket. prototype, /// Result too large. range, /// Read-only file system. rofs, /// Invalid seek. spipe, /// No such process. srch, /// Reserved. stale, /// Connection timed out. timedout, /// Text file busy. txtbsy, /// Cross-device link. xdev, /// Extension: Capabilities insufficient. notcapable, } }