msgSend

Synopsis

#include <sys/msg.h>

int msgSend(uint32_t port, msg_t *m);

Status

Implemented

Conformance

Phoenix-RTOS specific

Description

This function sends a message m to specified port. An m should point to a msg_t structure that stores message data.

After calling the msgSend() function the sending thread is suspended until the receiving thread executes msgRecv() function, reads data from input buffer, writes the final answer to the output buffer and executes msgRespond().

This function ensures that either message was processed by a recipient or that it was not sent at all.

This function is part of interprocess communication mechanisms in Phoenix-RTOS. For more information about messaging process and msg_t message structure please refer to Message Passing.

Return value

If an error occurred during a function call an error value shall be returned. Otherwise, it returns 0.

Errors

This function shall fall if:

  • -EINVAL - port does not name an existing port, or port is closed, or m points to an uninitialized message structure.

This function may fall if:

  • -EINTR - calling thread was woken up by signal before the message was received by the server.

Tests

Untested

Known bugs

None