lsend
| Number | 0x14 |
|---|---|
| Signature | (port, len) -> 0 or -err |
| Group | messaging |
| Since | 1.0 |
| Blocking | true |
Send a long-message to a recipient process over an endpoint.
The long message buffer is inside the TLS ( on ARMv7: TPIDRURO -> tdata_t -> lmsg_buf) and is LMSG_BUF_SIZE bytes large. You can use functions in channel.h to abstract the lmsg buffer operations.
Arguments
| Register | Name | Description |
|---|---|---|
r0 | port | Handle of the destination port |
r1 | len | Byte count in the lmsg buffer, at most `LMSG_BUF_SIZE` |
Returns
0 on success.
Errors
| Code | Condition |
|---|---|
ERR_OVERFLOW | Length of message exceeds the lmsg buffer size. |
ERR_BADHANDLE | No capability exists for the given handle. |
ERR_BADTYPE | This capability is not a port. |
ERR_DEAD | Recipient has died before the message could be sent. |