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