NAME | SYNOPSIS | FEATURES | API RESTRICTIONS | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <mipc/chMipc.h>int msgFree(int spaceLid, char *msg);
MIPC
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
msgFree returns to the message space identified by spaceLid a message, which was previously allocated by msgAllocate(2K) from the same message space, or which was previously received by msgGet(2K) from a message queue of the same message space.
With MIPC_S, the only valid value for spaceLid is 0.
msg is the address of the message within the addressing space of the caller.
msgFree converts msg into the corresponding internal message resource, from which it finds its associated message pool. If a thread is blocked waiting for a message of the pool to become available, it is awakened, and the freed message is given to it. Otherwise, the freed message is appended to the pool.
Upon successful completion, msgFree returns zero. Otherwise, a negative error code is returned.
spaceLid is not valid.
msg is not a valid message address, or the corresponding internal message resource is not in the allocated state.
It is possible that K_OK is returned when a message address is incorrect. This occurs when a message space has been inadvertently corrupted by a user actor. In that case, the internal MIPC primitives try to restore the message index if possible, and K_OK is returned when the message index has been successfully restored from the MIPC private data.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | API RESTRICTIONS | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO