diff options
| author | HubretXie <[email protected]> | 2019-11-26 09:30:21 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2019-11-26 09:30:21 +0800 |
| commit | 17f7f1c7ca2581b2e308888f8acb99ca8a541422 (patch) | |
| tree | 5236e93ab1e4e24508d4ebf4540b6743dd7c9a41 /include/rtthread.h | |
| parent | 9662e18c3688681cd95ebd65242773dbe7c1366b (diff) | |
| parent | e459084fe028c837762d40326a9be3dfdc179894 (diff) | |
Merge pull request #8 from RT-Thread/master
sync
Diffstat (limited to 'include/rtthread.h')
| -rw-r--r-- | include/rtthread.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/rtthread.h b/include/rtthread.h index 04db77da46..13a1a4424b 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, @@ -387,6 +391,27 @@ rt_err_t rt_mq_recv(rt_mq_t mq, rt_err_t rt_mq_control(rt_mq_t mq, int cmd, void *arg); #endif +/* + * spinlock + */ +#ifdef RT_USING_SMP +struct rt_spinlock; + +void rt_spin_lock_init(struct rt_spinlock *lock); +void rt_spin_lock(struct rt_spinlock *lock); +void rt_spin_unlock(struct rt_spinlock *lock); +rt_base_t rt_spin_lock_irqsave(struct rt_spinlock *lock); +void rt_spin_unlock_irqrestore(struct rt_spinlock *lock, rt_base_t level); + +#else +#define rt_spin_lock_init(lock) /* nothing */ +#define rt_spin_lock(lock) rt_enter_critical() +#define rt_spin_unlock(lock) rt_exit_critical() +#define rt_spin_lock_irqsave(lock) rt_hw_interrupt_disable() +#define rt_spin_unlock_irqrestore(lock, level) rt_hw_interrupt_enable(level) + +#endif + /**@}*/ #ifdef RT_USING_DEVICE |
