Files
jsix_import/definitions/objects/endpoint.def
Justin C. Miller da5c1e9833 [kernel] Add new zero_ok flag to syscall params
The new zero_ok flag is similar to optional for reference parameters,
but only in cases where there is a length parameter. If that parameter
is a reference parameter itself and is null, or it is non-null and
contains a non-zero length, or there is no length parameter, then the
main parameter may not be null.
2022-01-30 14:26:36 -08:00

38 lines
989 B
Modula-2

# Channels are objects that enable synchronous IPC of
# arbitrary-sized messages.
object endpoint : object {
uid c5882f24a4c03b7e
capabilities [
send
receive
]
method create [constructor]
# Send a message on a channel. Blocks until the message
# is received.
method send [cap:send] {
param tag uint64
param data buffer
}
# Receieve a message on a channel. Blocks until a message
# is available.
method receive [cap:receive] {
param tag uint64 [out]
param data buffer [out zero_ok]
param timeout uint64 # Receive timeout in nanoseconds
}
# Send a message on a channel and then await a new message.
# Equivalent to calling send and then recieve, as a single
# operation.
method sendrecv [cap:send cap:receive] {
param tag uint64 [inout]
param data buffer [inout zero_ok]
param timeout uint64 # Receive timeout in nanoseconds
}
}