Documentation
¶
Index ¶
- type PathOpenSockets
- type System
- func (s *System) ArgsGet(ctx context.Context) ([]string, wasi.Errno)
- func (s *System) ArgsSizesGet(ctx context.Context) (argCount, stringBytes int, errno wasi.Errno)
- func (s *System) ClockResGet(ctx context.Context, id wasi.ClockID) (wasi.Timestamp, wasi.Errno)
- func (s *System) ClockTimeGet(ctx context.Context, id wasi.ClockID, precision wasi.Timestamp) (wasi.Timestamp, wasi.Errno)
- func (s *System) Close(ctx context.Context) error
- func (s *System) EnvironGet(ctx context.Context) ([]string, wasi.Errno)
- func (s *System) EnvironSizesGet(ctx context.Context) (envCount, stringBytes int, errno wasi.Errno)
- func (s *System) FDAdvise(ctx context.Context, fd wasi.FD, offset wasi.FileSize, length wasi.FileSize, ...) wasi.Errno
- func (s *System) FDAllocate(ctx context.Context, fd wasi.FD, offset wasi.FileSize, length wasi.FileSize) wasi.Errno
- func (s *System) FDClose(ctx context.Context, fd wasi.FD) wasi.Errno
- func (s *System) FDDataSync(ctx context.Context, fd wasi.FD) wasi.Errno
- func (s *System) FDFileStatGet(ctx context.Context, fd wasi.FD) (wasi.FileStat, wasi.Errno)
- func (s *System) FDFileStatSetSize(ctx context.Context, fd wasi.FD, size wasi.FileSize) wasi.Errno
- func (s *System) FDFileStatSetTimes(ctx context.Context, fd wasi.FD, accessTime, modifyTime wasi.Timestamp, ...) wasi.Errno
- func (s *System) FDPreStatDirName(ctx context.Context, fd wasi.FD) (string, wasi.Errno)
- func (s *System) FDPreStatGet(ctx context.Context, fd wasi.FD) (wasi.PreStat, wasi.Errno)
- func (s *System) FDPread(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, offset wasi.FileSize) (wasi.Size, wasi.Errno)
- func (s *System) FDPwrite(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, offset wasi.FileSize) (wasi.Size, wasi.Errno)
- func (s *System) FDRead(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec) (wasi.Size, wasi.Errno)
- func (s *System) FDReadDir(ctx context.Context, fd wasi.FD, entries []wasi.DirEntry, ...) (int, wasi.Errno)
- func (s *System) FDRenumber(ctx context.Context, from, to wasi.FD) wasi.Errno
- func (s *System) FDSeek(ctx context.Context, fd wasi.FD, delta wasi.FileDelta, whence wasi.Whence) (wasi.FileSize, wasi.Errno)
- func (s *System) FDStatGet(ctx context.Context, fd wasi.FD) (wasi.FDStat, wasi.Errno)
- func (s *System) FDStatSetFlags(ctx context.Context, fd wasi.FD, flags wasi.FDFlags) wasi.Errno
- func (s *System) FDStatSetRights(ctx context.Context, fd wasi.FD, rightsBase, rightsInheriting wasi.Rights) wasi.Errno
- func (s *System) FDSync(ctx context.Context, fd wasi.FD) wasi.Errno
- func (s *System) FDTell(ctx context.Context, fd wasi.FD) (wasi.FileSize, wasi.Errno)
- func (s *System) FDWrite(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec) (wasi.Size, wasi.Errno)
- func (s *System) PathCreateDirectory(ctx context.Context, fd wasi.FD, path string) wasi.Errno
- func (s *System) PathFileStatGet(ctx context.Context, fd wasi.FD, flags wasi.LookupFlags, path string) (wasi.FileStat, wasi.Errno)
- func (s *System) PathFileStatSetTimes(ctx context.Context, fd wasi.FD, lookupFlags wasi.LookupFlags, path string, ...) wasi.Errno
- func (s *System) PathLink(ctx context.Context, fd wasi.FD, flags wasi.LookupFlags, oldPath string, ...) wasi.Errno
- func (s *System) PathOpen(ctx context.Context, fd wasi.FD, lookupFlags wasi.LookupFlags, path string, ...) (wasi.FD, wasi.Errno)
- func (s *System) PathReadLink(ctx context.Context, fd wasi.FD, path string, buffer []byte) ([]byte, wasi.Errno)
- func (s *System) PathRemoveDirectory(ctx context.Context, fd wasi.FD, path string) wasi.Errno
- func (s *System) PathRename(ctx context.Context, fd wasi.FD, oldPath string, newFD wasi.FD, newPath string) wasi.Errno
- func (s *System) PathSymlink(ctx context.Context, oldPath string, fd wasi.FD, newPath string) wasi.Errno
- func (s *System) PathUnlinkFile(ctx context.Context, fd wasi.FD, path string) wasi.Errno
- func (s *System) PollOneOff(ctx context.Context, subscriptions []wasi.Subscription, events []wasi.Event) (int, wasi.Errno)
- func (s *System) Preopen(hostfd int, path string, fdstat wasi.FDStat) wasi.FD
- func (s *System) ProcExit(ctx context.Context, code wasi.ExitCode) wasi.Errno
- func (s *System) ProcRaise(ctx context.Context, signal wasi.Signal) wasi.Errno
- func (s *System) RandomGet(ctx context.Context, b []byte) wasi.Errno
- func (s *System) Register(hostfd int, fdstat wasi.FDStat) wasi.FD
- func (s *System) SchedYield(ctx context.Context) wasi.Errno
- func (s *System) Shutdown(ctx context.Context) error
- func (s *System) SockAccept(ctx context.Context, fd wasi.FD, flags wasi.FDFlags) (wasi.FD, wasi.SocketAddress, wasi.SocketAddress, wasi.Errno)
- func (s *System) SockBind(ctx context.Context, fd wasi.FD, addr wasi.SocketAddress) (wasi.SocketAddress, wasi.Errno)
- func (s *System) SockConnect(ctx context.Context, fd wasi.FD, peer wasi.SocketAddress) (wasi.SocketAddress, wasi.Errno)
- func (s *System) SockGetOptInt(ctx context.Context, fd wasi.FD, level wasi.SocketOptionLevel, ...) (int, wasi.Errno)
- func (s *System) SockListen(ctx context.Context, fd wasi.FD, backlog int) wasi.Errno
- func (s *System) SockLocalAddress(ctx context.Context, fd wasi.FD) (wasi.SocketAddress, wasi.Errno)
- func (s *System) SockOpen(ctx context.Context, pf wasi.ProtocolFamily, socketType wasi.SocketType, ...) (wasi.FD, wasi.Errno)
- func (s *System) SockRecv(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, flags wasi.RIFlags) (wasi.Size, wasi.ROFlags, wasi.Errno)
- func (s *System) SockRecvFrom(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, flags wasi.RIFlags) (wasi.Size, wasi.ROFlags, wasi.SocketAddress, wasi.Errno)
- func (s *System) SockRemoteAddress(ctx context.Context, fd wasi.FD) (wasi.SocketAddress, wasi.Errno)
- func (s *System) SockSend(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, flags wasi.SIFlags) (wasi.Size, wasi.Errno)
- func (s *System) SockSendTo(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, flags wasi.SIFlags, ...) (wasi.Size, wasi.Errno)
- func (s *System) SockSetOptInt(ctx context.Context, fd wasi.FD, level wasi.SocketOptionLevel, ...) wasi.Errno
- func (s *System) SockShutdown(ctx context.Context, fd wasi.FD, flags wasi.SDFlags) wasi.Errno
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PathOpenSockets ¶
type PathOpenSockets struct{ wasi.System }
PathOpenSockets is an extension to WASI preview 1 that adds the ability to create TCP sockets. It works by proxying calls to path_open. If fd<0 and the path is of the form:
<network>:<operation>://<host>:<port>[?options=value[&option=value]*
where network is one of "tcp", "tcp4" or "tcp6", and operation is either "listen" or "dial", the extension will open a socket that either listens on, or connects to, the specified host:port address. Otherwise, the extension passes the arguments to the underlying WASI implementation to open a file or directory as normal.
The following options are available - nonblock=<0|1>: Open the socket in non-blocking mode. Default is 1. - nodelay=<0|1>: Set TCP_NODELAY. Default is 1. - reuseaddr=<0|1>: Set SO_REUSEADDR. Default is 1. - backlog=<N>: Set the listen(2) backlog. Default is 128.
type System ¶
type System struct { // Args are the environment variables accessible via ArgsGet. Args []string // Environ is the environment variables accessible via EnvironGet. Environ []string // Realtime returns the realtime clock value. Realtime func(context.Context) (uint64, error) RealtimePrecision time.Duration // Monotonic returns the monotonic clock value. Monotonic func(context.Context) (uint64, error) MonotonicPrecision time.Duration // Yield is called when SchedYield is called. If Yield is nil, // SchedYield is a noop. Yield func(context.Context) error // Exit is called with an exit code when ProcExit is called. // If Exit is nil, ProcExit is a noop. Exit func(context.Context, int) error // Raise is called with a signal when ProcRaise is called. // If Raise is nil, ProcRaise is a noop. Raise func(context.Context, int) error // Rand is the source for RandomGet. Rand io.Reader // contains filtered or unexported fields }
System is a WASI preview 1 implementation for Unix.
It implements the wasi.System and wasi.SocketsExtension interfaces.
An instance of System is not safe for concurrent use.
func (*System) ArgsSizesGet ¶
func (*System) ClockResGet ¶
func (*System) ClockTimeGet ¶
func (*System) EnvironSizesGet ¶
func (*System) FDAllocate ¶
func (*System) FDDataSync ¶
func (*System) FDFileStatGet ¶
func (*System) FDFileStatSetSize ¶
func (*System) FDFileStatSetTimes ¶
func (*System) FDPreStatDirName ¶
func (*System) FDPreStatGet ¶
func (*System) FDRenumber ¶
func (*System) FDStatSetFlags ¶
func (*System) FDStatSetRights ¶
func (*System) PathCreateDirectory ¶
func (*System) PathFileStatGet ¶
func (*System) PathFileStatSetTimes ¶
func (*System) PathReadLink ¶
func (*System) PathRemoveDirectory ¶
func (*System) PathRename ¶
func (*System) PathSymlink ¶
func (*System) PathUnlinkFile ¶
func (*System) PollOneOff ¶
func (*System) SchedYield ¶
func (*System) Shutdown ¶
Shutdown may be called to asynchronously cancel all blocking operations on the system, causing calls such as PollOneOff to unblock and return an error indicating that the system is shutting down.