[Kernel] message 可以返回消息的实际大小 (#7709)

This commit is contained in:
zhkag
2023-06-21 10:22:42 +00:00
committed by GitHub
parent b4e59bac4e
commit 33f550cb65
18 changed files with 73 additions and 56 deletions

View File

@@ -150,7 +150,7 @@ OS_Status OS_QueueReceive(OS_Queue_t *queue, void *item, OS_Time_t waitMS)
OS_HANDLE_ASSERT(OS_QueueIsValid(queue), queue->handle);
ret = rt_mq_recv(queue->handle, item, queue->itemSize, OS_CalcWaitTicks(waitMS));
if (ret != RT_EOK) {
if (ret < 0) {
OS_DBG("%s() fail @ %d, %"OS_TIME_F" ms\n", __func__, __LINE__, (unsigned int)waitMS);
return OS_FAIL;
}

View File

@@ -182,7 +182,7 @@ int hal_queue_recv(hal_queue_t queue, void *buffer, int timeout)
}
ret = rt_mq_recv(queue, buffer, queue->msg_size, timeout);
if (ret != RT_EOK)
if (ret < 0)
{
return -2;
}

View File

@@ -74,7 +74,7 @@ void rt_init_thread_entry(void *parameter)
while(1)
{
if (rt_mq_recv(&mq, &msg, sizeof(msg), RT_WAITING_FOREVER) == RT_EOK)
if (rt_mq_recv(&mq, &msg, sizeof(msg), RT_WAITING_FOREVER) >= 0)
{
switch(msg.type)
{

View File

@@ -788,7 +788,7 @@ osa_status_t OSA_MsgQGet(osa_msgq_handle_t msgqHandle, osa_msg_handle_t pMessage
{
timeoutTicks = rt_tick_from_millisecond(millisec);
}
if (RT_EOK != rt_mq_recv(handler, pMessage, handler->msg_size, timeoutTicks))
if (rt_mq_recv(handler, pMessage, handler->msg_size, timeoutTicks) < 0)
{
osaStatus = KOSA_StatusTimeout; /* not able to send it to the queue? */
}

View File

@@ -788,7 +788,7 @@ osa_status_t OSA_MsgQGet(osa_msgq_handle_t msgqHandle, osa_msg_handle_t pMessage
{
timeoutTicks = rt_tick_from_millisecond(millisec);
}
if (RT_EOK != rt_mq_recv(handler, pMessage, handler->msg_size, timeoutTicks))
if (rt_mq_recv(handler, pMessage, handler->msg_size, timeoutTicks) < 0)
{
osaStatus = KOSA_StatusTimeout; /* not able to send it to the queue? */
}

View File

@@ -788,7 +788,7 @@ osa_status_t OSA_MsgQGet(osa_msgq_handle_t msgqHandle, osa_msg_handle_t pMessage
{
timeoutTicks = rt_tick_from_millisecond(millisec);
}
if (RT_EOK != rt_mq_recv(handler, pMessage, handler->msg_size, timeoutTicks))
if (rt_mq_recv(handler, pMessage, handler->msg_size, timeoutTicks) < 0)
{
osaStatus = KOSA_StatusTimeout; /* not able to send it to the queue? */
}

View File

@@ -788,7 +788,7 @@ osa_status_t OSA_MsgQGet(osa_msgq_handle_t msgqHandle, osa_msg_handle_t pMessage
{
timeoutTicks = rt_tick_from_millisecond(millisec);
}
if (RT_EOK != rt_mq_recv(handler, pMessage, handler->msg_size, timeoutTicks))
if (rt_mq_recv(handler, pMessage, handler->msg_size, timeoutTicks) < 0)
{
osaStatus = KOSA_StatusTimeout; /* not able to send it to the queue? */
}

View File

@@ -50,7 +50,7 @@ static void serial_thread_entry(void *parameter)
{
rt_memset(&msg, 0, sizeof(msg));
result = rt_mq_recv(&rx_mq, &msg, sizeof(msg), RT_WAITING_FOREVER);
if (result == RT_EOK)
if (result >= 0)
{
rx_length = rt_device_read(msg.dev, 0, rx_buffer, msg.size);
rx_buffer[rx_length] = '\0';