diff options
| author | zhkag <[email protected]> | 2023-06-21 10:22:42 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-06-21 18:22:42 +0800 |
| commit | 33f550cb65c950068ff04c331daeeda3547d2e50 (patch) | |
| tree | d04ca979398cfaa280cd9f19e400a40943f96bde /include/rtthread.h | |
| parent | b4e59bac4e2d8b039a2365ddc219ac9a3caf0f77 (diff) | |
[Kernel] message 可以返回消息的实际大小 (#7709)
Diffstat (limited to 'include/rtthread.h')
| -rw-r--r-- | include/rtthread.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/include/rtthread.h b/include/rtthread.h index ac1b8f12c2..dfcd1c413c 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -458,6 +458,16 @@ rt_err_t rt_mb_control(rt_mailbox_t mb, int cmd, void *arg); #endif #ifdef RT_USING_MESSAGEQUEUE + +struct rt_mq_message +{ + struct rt_mq_message *next; + rt_ssize_t length; +}; + +#define RT_MQ_BUF_SIZE(msg_size, max_msgs) \ +((RT_ALIGN((msg_size), RT_ALIGN_SIZE) + sizeof(struct rt_mq_message)) * (max_msgs)) + /* * message queue interface */ @@ -492,15 +502,15 @@ rt_err_t rt_mq_send_wait_killable(rt_mq_t mq, rt_size_t size, rt_int32_t timeout); rt_err_t rt_mq_urgent(rt_mq_t mq, const void *buffer, rt_size_t size); -rt_err_t rt_mq_recv(rt_mq_t mq, +rt_ssize_t rt_mq_recv(rt_mq_t mq, void *buffer, rt_size_t size, rt_int32_t timeout); -rt_err_t rt_mq_recv_interruptible(rt_mq_t mq, +rt_ssize_t rt_mq_recv_interruptible(rt_mq_t mq, void *buffer, rt_size_t size, rt_int32_t timeout); -rt_err_t rt_mq_recv_killable(rt_mq_t mq, +rt_ssize_t rt_mq_recv_killable(rt_mq_t mq, void *buffer, rt_size_t size, rt_int32_t timeout); |
