MsgLsend

Number0x14
Signature(port, len) -> 0 or -err
Groupmessaging
Since1.0
Blockingtrue

Send a long-message to a recipient process over a port.

The long message buffer is inside the TLS ( on ARMv7: TPIDRURO -> ThreadData -> buf) and is LMSG_BUF_SIZE bytes large. Use ChannelSend in channel.h to abstract the buffer operations instead of touching it directly.

Arguments

RegisterNameDescription
r0portHandle of the destination port
r1lenByte count in the lmsg buffer, at most `LMSG_BUF_SIZE`

Returns

0 on success.

Errors

CodeCondition
ERR_OVERFLOWLength of message exceeds the lmsg buffer size.
ERR_BADHANDLENo capability exists for the given handle.
ERR_BADTYPEThis capability is not a port.
ERR_DEADRecipient has died before the message could be sent.

See also