unsigned ctl_message_queue_post(CTL_MESSAGE_QUEUE_t *q, void *message, CTL_TIMEOUT_t t, CTL_TIME_t timeout);
ctl_message_queue_post posts message to the message queue pointed to by q. If the message queue is full then the caller will block until the message can be posted or, if timeoutType is non-zero, the current time reaches timeout value.
ctl_message_queue_post returns zero if the timeout occurred otherwise it returns one.
ctl_message_queue_post must not be called from an interrupt service routine.