31#if (CH_CFG_USE_MESSAGES == TRUE) || defined(__DOXYGEN__)
53#if CH_CFG_USE_MESSAGES_PRIORITY == TRUE
54#define __ch_msg_insert(qp, tp) ch_sch_prio_insert(qp, &tp->hdr.queue)
56#define __ch_msg_insert(qp, tp) ch_queue_insert(qp, &tp->hdr.queue)
#define chDbgAssert(c, r)
Condition assertion.
#define chDbgCheckClassS()
#define chDbgCheckClassI()
static thread_t * chMsgPoll(void)
Poll to check for an incoming message.
thread_t * chMsgWaitTimeoutS(sysinterval_t timeout)
Suspends the thread and waits for an incoming message or a timeout to occur.
static void chMsgReleaseS(thread_t *tp, msg_t msg)
Releases the thread waiting on top of the messages queue.
static thread_t * chMsgWait(void)
Suspends the thread and waits for an incoming message.
msg_t chMsgSend(thread_t *tp, msg_t msg)
Sends a message to the specified thread.
thread_t * chMsgWaitS(void)
Suspends the thread and waits for an incoming message.
thread_t * chMsgPollS(void)
Poll to check for an incoming message.
static bool chMsgIsPendingI(thread_t *tp)
Evaluates to true if the thread has pending messages.
static msg_t chMsgGet(thread_t *tp)
Returns the message carried by the specified thread.
void chMsgRelease(thread_t *tp, msg_t msg)
Releases a sender thread specifying a response message.
static thread_t * chMsgWaitTimeout(sysinterval_t timeout)
Suspends the thread and waits for an incoming message or a timeout to occur.
struct ch_thread thread_t
Type of a thread structure.
void chSchWakeupS(thread_t *ntp, msg_t msg)
Wakes up a thread.
#define CH_STATE_SNDMSG
Sent a message, waiting answer.
static void chSysLock(void)
Enters the kernel lock state.
static void chSysUnlock(void)
Leaves the kernel lock state.
uint64_t sysinterval_t
Type of time interval.
ch_queue_t * next
Next in the list/queue.
msg_t sentmsg
Thread sent message.
tstate_t state
Current thread state.
ch_queue_t msgqueue
Messages queue.
union ch_thread::@250330312022121344252011223135034045240103044261 u
State-specific fields.