unix

package
v0.6.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FD added in v0.3.4

type FD int

func (FD) FDAdvise added in v0.3.4

func (fd FD) FDAdvise(ctx context.Context, offset, length wasi.FileSize, advice wasi.Advice) wasi.Errno

func (FD) FDAllocate added in v0.3.4

func (fd FD) FDAllocate(ctx context.Context, offset, length wasi.FileSize) wasi.Errno

func (FD) FDClose added in v0.3.4

func (fd FD) FDClose(ctx context.Context) wasi.Errno

func (FD) FDDataSync added in v0.3.4

func (fd FD) FDDataSync(ctx context.Context) wasi.Errno

func (FD) FDFileStatGet added in v0.3.4

func (fd FD) FDFileStatGet(ctx context.Context) (wasi.FileStat, wasi.Errno)

func (FD) FDFileStatSetSize added in v0.3.4

func (fd FD) FDFileStatSetSize(ctx context.Context, size wasi.FileSize) wasi.Errno

func (FD) FDFileStatSetTimes added in v0.3.4

func (fd FD) FDFileStatSetTimes(ctx context.Context, accessTime, modifyTime wasi.Timestamp, flags wasi.FSTFlags) wasi.Errno

func (FD) FDOpenDir added in v0.3.4

func (fd FD) FDOpenDir(ctx context.Context) (wasi.Dir, wasi.Errno)

func (FD) FDPread added in v0.3.4

func (fd FD) FDPread(ctx context.Context, iovecs []wasi.IOVec, offset wasi.FileSize) (wasi.Size, wasi.Errno)

func (FD) FDPwrite added in v0.3.4

func (fd FD) FDPwrite(ctx context.Context, iovecs []wasi.IOVec, offset wasi.FileSize) (wasi.Size, wasi.Errno)

func (FD) FDRead added in v0.3.4

func (fd FD) FDRead(ctx context.Context, iovecs []wasi.IOVec) (wasi.Size, wasi.Errno)

func (FD) FDSeek added in v0.3.4

func (fd FD) FDSeek(ctx context.Context, delta wasi.FileDelta, whence wasi.Whence) (wasi.FileSize, wasi.Errno)

func (FD) FDStatSetFlags added in v0.3.4

func (fd FD) FDStatSetFlags(ctx context.Context, flags wasi.FDFlags) wasi.Errno

func (FD) FDSync added in v0.3.4

func (fd FD) FDSync(ctx context.Context) wasi.Errno

func (FD) FDWrite added in v0.3.4

func (fd FD) FDWrite(ctx context.Context, iovecs []wasi.IOVec) (wasi.Size, wasi.Errno)

func (FD) PathCreateDirectory added in v0.3.4

func (fd FD) PathCreateDirectory(ctx context.Context, path string) wasi.Errno

func (FD) PathFileStatGet added in v0.3.4

func (fd FD) PathFileStatGet(ctx context.Context, flags wasi.LookupFlags, path string) (wasi.FileStat, wasi.Errno)

func (FD) PathFileStatSetTimes added in v0.3.4

func (fd FD) PathFileStatSetTimes(ctx context.Context, lookupFlags wasi.LookupFlags, path string, accessTime, modifyTime wasi.Timestamp, fstFlags wasi.FSTFlags) wasi.Errno
func (fd FD) PathLink(ctx context.Context, flags wasi.LookupFlags, oldPath string, newDir FD, newPath string) wasi.Errno

func (FD) PathOpen added in v0.3.4

func (fd FD) PathOpen(ctx context.Context, lookupFlags wasi.LookupFlags, path string, openFlags wasi.OpenFlags, rightsBase, rightsInheriting wasi.Rights, fdFlags wasi.FDFlags) (FD, wasi.Errno)
func (fd FD) PathReadLink(ctx context.Context, path string, buffer []byte) (int, wasi.Errno)

func (FD) PathRemoveDirectory added in v0.3.4

func (fd FD) PathRemoveDirectory(ctx context.Context, path string) wasi.Errno

func (FD) PathRename added in v0.3.4

func (fd FD) PathRename(ctx context.Context, oldPath string, newDir FD, newPath string) wasi.Errno
func (fd FD) PathSymlink(ctx context.Context, oldPath string, newPath string) wasi.Errno

func (FD) PathUnlinkFile added in v0.3.4

func (fd FD) PathUnlinkFile(ctx context.Context, path string) wasi.Errno

type PathOpenSockets

type PathOpenSockets struct{ *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.

func (*PathOpenSockets) PathOpen

func (p *PathOpenSockets) PathOpen(ctx context.Context, fd wasi.FD, lookupFlags wasi.LookupFlags, path string, openFlags wasi.OpenFlags, rightsBase, rightsInheriting wasi.Rights, fdFlags wasi.FDFlags) (wasi.FD, wasi.Errno)

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

	wasi.FileTable[FD]
	// contains filtered or unexported fields
}

System is a WASI preview 1 implementation for Unix.

An instance of System is not safe for concurrent use.

func (*System) ArgsGet

func (s *System) ArgsGet(ctx context.Context) ([]string, wasi.Errno)

func (*System) ArgsSizesGet

func (s *System) ArgsSizesGet(ctx context.Context) (argCount, stringBytes int, errno wasi.Errno)

func (*System) ClockResGet

func (s *System) ClockResGet(ctx context.Context, id wasi.ClockID) (wasi.Timestamp, wasi.Errno)

func (*System) ClockTimeGet

func (s *System) ClockTimeGet(ctx context.Context, id wasi.ClockID, precision wasi.Timestamp) (wasi.Timestamp, wasi.Errno)

func (*System) Close

func (s *System) Close(ctx context.Context) error

func (*System) EnvironGet

func (s *System) EnvironGet(ctx context.Context) ([]string, wasi.Errno)

func (*System) EnvironSizesGet

func (s *System) EnvironSizesGet(ctx context.Context) (envCount, stringBytes int, errno wasi.Errno)

func (*System) PollOneOff

func (s *System) PollOneOff(ctx context.Context, subscriptions []wasi.Subscription, events []wasi.Event) (int, wasi.Errno)

func (*System) ProcExit

func (s *System) ProcExit(ctx context.Context, code wasi.ExitCode) wasi.Errno

func (*System) ProcRaise

func (s *System) ProcRaise(ctx context.Context, signal wasi.Signal) wasi.Errno

func (*System) RandomGet

func (s *System) RandomGet(ctx context.Context, b []byte) wasi.Errno

func (*System) SchedYield

func (s *System) SchedYield(ctx context.Context) wasi.Errno

func (*System) Shutdown

func (s *System) Shutdown(ctx context.Context) error

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.

func (*System) SockAccept

func (s *System) SockAccept(ctx context.Context, fd wasi.FD, flags wasi.FDFlags) (wasi.FD, wasi.SocketAddress, wasi.SocketAddress, wasi.Errno)

func (*System) SockAddressInfo added in v0.4.0

func (s *System) SockAddressInfo(ctx context.Context, name, service string, hints wasi.AddressInfo, results []wasi.AddressInfo) (int, wasi.Errno)

func (*System) SockBind

func (s *System) SockBind(ctx context.Context, fd wasi.FD, addr wasi.SocketAddress) (wasi.SocketAddress, wasi.Errno)

func (*System) SockConnect

func (s *System) SockConnect(ctx context.Context, fd wasi.FD, peer wasi.SocketAddress) (wasi.SocketAddress, wasi.Errno)

func (*System) SockGetOpt added in v0.5.0

func (s *System) SockGetOpt(ctx context.Context, fd wasi.FD, level wasi.SocketOptionLevel, option wasi.SocketOption) (wasi.SocketOptionValue, wasi.Errno)

func (*System) SockListen

func (s *System) SockListen(ctx context.Context, fd wasi.FD, backlog int) wasi.Errno

func (*System) SockLocalAddress

func (s *System) SockLocalAddress(ctx context.Context, fd wasi.FD) (wasi.SocketAddress, wasi.Errno)

func (*System) SockOpen

func (s *System) SockOpen(ctx context.Context, pf wasi.ProtocolFamily, socketType wasi.SocketType, protocol wasi.Protocol, rightsBase, rightsInheriting wasi.Rights) (wasi.FD, wasi.Errno)

func (*System) SockRecv

func (s *System) SockRecv(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, flags wasi.RIFlags) (wasi.Size, wasi.ROFlags, wasi.Errno)

func (*System) SockRecvFrom

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 (*System) SockRemoteAddress added in v0.3.2

func (s *System) SockRemoteAddress(ctx context.Context, fd wasi.FD) (wasi.SocketAddress, wasi.Errno)

func (*System) SockSend

func (s *System) SockSend(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, flags wasi.SIFlags) (wasi.Size, wasi.Errno)

func (*System) SockSendTo

func (s *System) SockSendTo(ctx context.Context, fd wasi.FD, iovecs []wasi.IOVec, flags wasi.SIFlags, addr wasi.SocketAddress) (wasi.Size, wasi.Errno)

func (*System) SockSetOpt added in v0.5.0

func (s *System) SockSetOpt(ctx context.Context, fd wasi.FD, level wasi.SocketOptionLevel, option wasi.SocketOption, value wasi.SocketOptionValue) wasi.Errno

func (*System) SockShutdown

func (s *System) SockShutdown(ctx context.Context, fd wasi.FD, flags wasi.SDFlags) wasi.Errno

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL