mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-09-04 19:59:03 +00:00
wasi preview 2 support (#4027)
* all: wasip2 support Co-authored-by: Randy Reddig <randy.reddig@fastly.com>
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
// Code generated by wit-bindgen-go. DO NOT EDIT.
|
||||
|
||||
//go:build !wasip1
|
||||
|
||||
// Package poll represents the imported interface "wasi:io/poll@0.2.0".
|
||||
//
|
||||
// A poll API intended to let users wait for I/O events on multiple handles
|
||||
// at once.
|
||||
package poll
|
||||
|
||||
import (
|
||||
"github.com/ydnar/wasm-tools-go/cm"
|
||||
)
|
||||
|
||||
// Pollable represents the imported resource "wasi:io/poll@0.2.0#pollable".
|
||||
//
|
||||
// `pollable` represents a single I/O event which may be ready, or not.
|
||||
//
|
||||
// resource pollable
|
||||
type Pollable cm.Resource
|
||||
|
||||
// ResourceDrop represents the imported resource-drop for resource "pollable".
|
||||
//
|
||||
// Drops a resource handle.
|
||||
//
|
||||
//go:nosplit
|
||||
func (self Pollable) ResourceDrop() {
|
||||
self0 := cm.Reinterpret[uint32](self)
|
||||
wasmimport_PollableResourceDrop((uint32)(self0))
|
||||
return
|
||||
}
|
||||
|
||||
//go:wasmimport wasi:io/poll@0.2.0 [resource-drop]pollable
|
||||
//go:noescape
|
||||
func wasmimport_PollableResourceDrop(self0 uint32)
|
||||
|
||||
// Block represents the imported method "block".
|
||||
//
|
||||
// `block` returns immediately if the pollable is ready, and otherwise
|
||||
// blocks until ready.
|
||||
//
|
||||
// This function is equivalent to calling `poll.poll` on a list
|
||||
// containing only this pollable.
|
||||
//
|
||||
// block: func()
|
||||
//
|
||||
//go:nosplit
|
||||
func (self Pollable) Block() {
|
||||
self0 := cm.Reinterpret[uint32](self)
|
||||
wasmimport_PollableBlock((uint32)(self0))
|
||||
return
|
||||
}
|
||||
|
||||
//go:wasmimport wasi:io/poll@0.2.0 [method]pollable.block
|
||||
//go:noescape
|
||||
func wasmimport_PollableBlock(self0 uint32)
|
||||
|
||||
// Ready represents the imported method "ready".
|
||||
//
|
||||
// Return the readiness of a pollable. This function never blocks.
|
||||
//
|
||||
// Returns `true` when the pollable is ready, and `false` otherwise.
|
||||
//
|
||||
// ready: func() -> bool
|
||||
//
|
||||
//go:nosplit
|
||||
func (self Pollable) Ready() (result bool) {
|
||||
self0 := cm.Reinterpret[uint32](self)
|
||||
result0 := wasmimport_PollableReady((uint32)(self0))
|
||||
result = cm.U32ToBool((uint32)(result0))
|
||||
return
|
||||
}
|
||||
|
||||
//go:wasmimport wasi:io/poll@0.2.0 [method]pollable.ready
|
||||
//go:noescape
|
||||
func wasmimport_PollableReady(self0 uint32) (result0 uint32)
|
||||
|
||||
// Poll represents the imported function "poll".
|
||||
//
|
||||
// Poll for completion on a set of pollables.
|
||||
//
|
||||
// This function takes a list of pollables, which identify I/O sources of
|
||||
// interest, and waits until one or more of the events is ready for I/O.
|
||||
//
|
||||
// The result `list<u32>` contains one or more indices of handles in the
|
||||
// argument list that is ready for I/O.
|
||||
//
|
||||
// If the list contains more elements than can be indexed with a `u32`
|
||||
// value, this function traps.
|
||||
//
|
||||
// A timeout can be implemented by adding a pollable from the
|
||||
// wasi-clocks API to the list.
|
||||
//
|
||||
// This function does not return a `result`; polling in itself does not
|
||||
// do any I/O so it doesn't fail. If any of the I/O sources identified by
|
||||
// the pollables has an error, it is indicated by marking the source as
|
||||
// being reaedy for I/O.
|
||||
//
|
||||
// poll: func(in: list<borrow<pollable>>) -> list<u32>
|
||||
//
|
||||
//go:nosplit
|
||||
func Poll(in cm.List[Pollable]) (result cm.List[uint32]) {
|
||||
in0, in1 := cm.LowerList(in)
|
||||
wasmimport_Poll((*Pollable)(in0), (uint32)(in1), &result)
|
||||
return
|
||||
}
|
||||
|
||||
//go:wasmimport wasi:io/poll@0.2.0 poll
|
||||
//go:noescape
|
||||
func wasmimport_Poll(in0 *Pollable, in1 uint32, result *cm.List[uint32])
|
||||
Reference in New Issue
Block a user