Skip to content

Commit 98f0cfb

Browse files
committed
define maximum value of ipc type
1 parent b43f736 commit 98f0cfb

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

include/rtdef.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
* 2019-05-17 Bernard change version number to v4.0.2
3434
* 2019-12-20 Bernard change version number to v4.0.3
3535
* 2020-08-10 Meco Man add macro for struct rt_device_ops
36+
* 2020-10-23 Meco Man define maximum value of ipc type
3637
*/
3738

3839
#ifndef __RT_DEF_H__
@@ -102,6 +103,13 @@ typedef rt_base_t rt_off_t; /**< Type for offset */
102103
#define RT_UINT32_MAX 0xffffffff /**< Maxium number of UINT32 */
103104
#define RT_TICK_MAX RT_UINT32_MAX /**< Maxium number of tick */
104105

106+
/* maximum value of ipc type */
107+
#define RT_SEM_VALUE_MAX RT_UINT16_MAX /**< Maxium number of semaphore .value */
108+
#define RT_MUTEX_VALUE_MAX RT_UINT16_MAX /**< Maxium number of mutex .value */
109+
#define RT_MUTEX_HOLD_MAX RT_UINT8_MAX /**< Maxium number of mutex .hold */
110+
#define RT_MB_ENTRY_MAX RT_UINT16_MAX /**< Maxium number of mailbox .entry */
111+
#define RT_MQ_ENTRY_MAX RT_UINT16_MAX /**< Maxium number of message queue .entry */
112+
105113
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
106114
#define __CLANG_ARM
107115
#endif

src/ipc.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ rt_err_t rt_sem_release(rt_sem_t sem)
465465
}
466466
else
467467
{
468-
if(sem->value < 65535u)
468+
if(sem->value < RT_SEM_VALUE_MAX)
469469
{
470470
sem->value ++; /* increase value */
471471
}
@@ -696,7 +696,7 @@ rt_err_t rt_mutex_take(rt_mutex_t mutex, rt_int32_t time)
696696

697697
if (mutex->owner == thread)
698698
{
699-
if(mutex->hold < 255u)
699+
if(mutex->hold < RT_MUTEX_HOLD_MAX)
700700
{
701701
/* it's the same thread */
702702
mutex->hold ++;
@@ -723,7 +723,7 @@ rt_err_t rt_mutex_take(rt_mutex_t mutex, rt_int32_t time)
723723
/* set mutex owner and original priority */
724724
mutex->owner = thread;
725725
mutex->original_priority = thread->current_priority;
726-
if(mutex->hold < 255u)
726+
if(mutex->hold < RT_MUTEX_HOLD_MAX)
727727
{
728728
mutex->hold ++;
729729
}
@@ -888,7 +888,7 @@ rt_err_t rt_mutex_release(rt_mutex_t mutex)
888888
/* set new owner and priority */
889889
mutex->owner = thread;
890890
mutex->original_priority = thread->current_priority;
891-
if(mutex->hold < 255u)
891+
if(mutex->hold < RT_MUTEX_HOLD_MAX)
892892
{
893893
mutex->hold ++;
894894
}
@@ -905,7 +905,7 @@ rt_err_t rt_mutex_release(rt_mutex_t mutex)
905905
}
906906
else
907907
{
908-
if(mutex->value < 65535u)
908+
if(mutex->value < RT_MUTEX_VALUE_MAX)
909909
{
910910
/* increase value */
911911
mutex->value ++;
@@ -1607,7 +1607,7 @@ rt_err_t rt_mb_send_wait(rt_mailbox_t mb,
16071607
if (mb->in_offset >= mb->size)
16081608
mb->in_offset = 0;
16091609

1610-
if(mb->entry < 65535u)
1610+
if(mb->entry < RT_MB_ENTRY_MAX)
16111611
{
16121612
/* increase message entry */
16131613
mb->entry ++;
@@ -2179,7 +2179,7 @@ rt_err_t rt_mq_send_wait(rt_mq_t mq,
21792179
if (mq->msg_queue_head == RT_NULL)
21802180
mq->msg_queue_head = msg;
21812181

2182-
if(mq->entry < 65535u)
2182+
if(mq->entry < RT_MQ_ENTRY_MAX)
21832183
{
21842184
/* increase message entry */
21852185
mq->entry ++;
@@ -2287,7 +2287,7 @@ rt_err_t rt_mq_urgent(rt_mq_t mq, const void *buffer, rt_size_t size)
22872287
if (mq->msg_queue_tail == RT_NULL)
22882288
mq->msg_queue_tail = msg;
22892289

2290-
if(mq->entry < 65535u)
2290+
if(mq->entry < RT_MQ_ENTRY_MAX)
22912291
{
22922292
/* increase message entry */
22932293
mq->entry ++;

0 commit comments

Comments
 (0)