mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-13 15:33:40 +00:00
53 lines
2.1 KiB
Go
53 lines
2.1 KiB
Go
// Code generated by wit-bindgen-go. DO NOT EDIT.
|
|
|
|
// Package udpcreatesocket represents the imported interface "wasi:sockets/udp-create-socket@0.2.0".
|
|
package udpcreatesocket
|
|
|
|
import (
|
|
"internal/cm"
|
|
"internal/wasi/sockets/v0.2.0/network"
|
|
"internal/wasi/sockets/v0.2.0/udp"
|
|
)
|
|
|
|
// CreateUDPSocket represents the imported function "create-udp-socket".
|
|
//
|
|
// Create a new UDP socket.
|
|
//
|
|
// Similar to `socket(AF_INET or AF_INET6, SOCK_DGRAM, IPPROTO_UDP)` in POSIX.
|
|
// On IPv6 sockets, IPV6_V6ONLY is enabled by default and can't be configured otherwise.
|
|
//
|
|
// This function does not require a network capability handle. This is considered
|
|
// to be safe because
|
|
// at time of creation, the socket is not bound to any `network` yet. Up to the moment
|
|
// `bind` is called,
|
|
// the socket is effectively an in-memory configuration object, unable to communicate
|
|
// with the outside world.
|
|
//
|
|
// All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous
|
|
// operations.
|
|
//
|
|
// # Typical errors
|
|
// - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT)
|
|
// - `new-socket-limit`: The new socket resource could not be created because of
|
|
// a system limit. (EMFILE, ENFILE)
|
|
//
|
|
// # References:
|
|
// - <https://pubs.opengroup.org/onlinepubs/9699919799/functions/socket.html>
|
|
// - <https://man7.org/linux/man-pages/man2/socket.2.html>
|
|
// - <https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsasocketw>
|
|
// - <https://man.freebsd.org/cgi/man.cgi?query=socket&sektion=2>
|
|
//
|
|
// create-udp-socket: func(address-family: ip-address-family) -> result<udp-socket,
|
|
// error-code>
|
|
//
|
|
//go:nosplit
|
|
func CreateUDPSocket(addressFamily network.IPAddressFamily) (result cm.Result[udp.UDPSocket, udp.UDPSocket, network.ErrorCode]) {
|
|
addressFamily0 := (uint32)(addressFamily)
|
|
wasmimport_CreateUDPSocket((uint32)(addressFamily0), &result)
|
|
return
|
|
}
|
|
|
|
//go:wasmimport wasi:sockets/udp-create-socket@0.2.0 create-udp-socket
|
|
//go:noescape
|
|
func wasmimport_CreateUDPSocket(addressFamily0 uint32, result *cm.Result[udp.UDPSocket, udp.UDPSocket, network.ErrorCode])
|