summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authortangyuxin <[email protected]>2019-09-16 15:12:42 +0800
committertangyuxin <[email protected]>2019-09-19 10:10:02 +0800
commite4671d291689e71967afa5dec4ff25d310faa3fb (patch)
tree71aa285a3fef62ec980eaac98fa779fd302a54b6 /include
parentae7a33c27cf4356b4ba4936eafc8e6b9368d3e3e (diff)
[kernel][ipc] add send wait support for message queue
Diffstat (limited to 'include')
-rw-r--r--include/rtdef.h2
-rw-r--r--include/rtthread.h4
2 files changed, 6 insertions, 0 deletions
diff --git a/include/rtdef.h b/include/rtdef.h
index 7c05178e3c..b25a6a87d5 100644
--- a/include/rtdef.h
+++ b/include/rtdef.h
@@ -742,6 +742,8 @@ struct rt_messagequeue
void *msg_queue_head; /**< list head */
void *msg_queue_tail; /**< list tail */
void *msg_queue_free; /**< pointer indicated the free node of queue */
+
+ rt_list_t suspend_sender_thread; /**< sender thread suspended on this message queue */
};
typedef struct rt_messagequeue *rt_mq_t;
#endif
diff --git a/include/rtthread.h b/include/rtthread.h
index 04db77da46..d703f36268 100644
--- a/include/rtthread.h
+++ b/include/rtthread.h
@@ -379,6 +379,10 @@ rt_mq_t rt_mq_create(const char *name,
rt_err_t rt_mq_delete(rt_mq_t mq);
rt_err_t rt_mq_send(rt_mq_t mq, const void *buffer, rt_size_t size);
+rt_err_t rt_mq_send_wait(rt_mq_t mq,
+ const void *buffer,
+ 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,
void *buffer,