From 0b9a808ccacfd900c3cfc3a69cce7688b3bcaeb8 Mon Sep 17 00:00:00 2001 From: zhkag Date: Fri, 8 Sep 2023 18:15:03 +0800 Subject: [PATCH] =?UTF-8?q?[posix]=E4=BF=AE=E5=A4=8D=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E9=98=9F=E5=88=97=E8=BF=94=E5=9B=9E=E9=95=BF=E5=BA=A6=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=20(#8014)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/libc/posix/ipc/mqueue.c | 4 ++-- examples/utest/testcases/kernel/messagequeue_tc.c | 2 +- include/rtthread.h | 12 ++++++------ src/ipc.c | 12 ++++++------ 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/components/libc/posix/ipc/mqueue.c b/components/libc/posix/ipc/mqueue.c index 45a1382313..a452092875 100644 --- a/components/libc/posix/ipc/mqueue.c +++ b/components/libc/posix/ipc/mqueue.c @@ -130,7 +130,7 @@ ssize_t mq_receive(mqd_t id, char *msg_ptr, size_t msg_len, unsigned *msg_prio) result = rt_mq_recv_prio(mq, msg_ptr, msg_len, (rt_int32_t *)msg_prio, RT_WAITING_FOREVER, RT_UNINTERRUPTIBLE); if (result >= 0) - return rt_strlen(msg_ptr); + return result; rt_set_errno(EBADF); return -1; @@ -186,7 +186,7 @@ ssize_t mq_timedreceive(mqd_t id, result = rt_mq_recv_prio(mq, msg_ptr, msg_len, (rt_int32_t *)msg_prio, tick, RT_UNINTERRUPTIBLE); if (result >= 0) - return rt_strlen(msg_ptr); + return result; if (result == -RT_ETIMEOUT) rt_set_errno(ETIMEDOUT); diff --git a/examples/utest/testcases/kernel/messagequeue_tc.c b/examples/utest/testcases/kernel/messagequeue_tc.c index 6d44c0042b..8c44db4c67 100644 --- a/examples/utest/testcases/kernel/messagequeue_tc.c +++ b/examples/utest/testcases/kernel/messagequeue_tc.c @@ -125,7 +125,7 @@ static void mq_send_entry(void *param) static void mq_recv_case(rt_mq_t testmq) { rt_uint32_t recv_buf[MAX_MSGS+1] = {0}; - rt_err_t ret = RT_EOK; + rt_ssize_t ret = RT_EOK; for (int var = 0; var < MAX_MSGS + 1; ++var) { diff --git a/include/rtthread.h b/include/rtthread.h index 4c23e43e2a..d4fea8fe7a 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -517,12 +517,12 @@ rt_err_t rt_mq_send_wait_prio(rt_mq_t mq, rt_int32_t prio, rt_int32_t timeout, int suspend_flag); -rt_err_t rt_mq_recv_prio(rt_mq_t mq, - void *buffer, - rt_size_t size, - rt_int32_t *prio, - rt_int32_t timeout, - int suspend_flag); +rt_ssize_t rt_mq_recv_prio(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t *prio, + rt_int32_t timeout, + int suspend_flag); #endif /* RT_USING_MESSAGEQUEUE_PRIORITY */ #endif /* RT_USING_MESSAGEQUEUE */ diff --git a/src/ipc.c b/src/ipc.c index 3d760de2c5..4c74ab4877 100644 --- a/src/ipc.c +++ b/src/ipc.c @@ -3805,12 +3805,12 @@ rt_err_t rt_mq_send_wait_prio(rt_mq_t mq, { return _rt_mq_send_wait(mq, buffer, size, prio, timeout, suspend_flag); } -rt_err_t rt_mq_recv_prio(rt_mq_t mq, - void *buffer, - rt_size_t size, - rt_int32_t *prio, - rt_int32_t timeout, - int suspend_flag) +rt_ssize_t rt_mq_recv_prio(rt_mq_t mq, + void *buffer, + rt_size_t size, + rt_int32_t *prio, + rt_int32_t timeout, + int suspend_flag) { return _rt_mq_recv(mq, buffer, size, prio, timeout, suspend_flag); }