summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSherman <[email protected]>2021-11-04 13:59:22 +0800
committerSherman <[email protected]>2021-11-04 13:59:22 +0800
commit6e004d4b12993a1206c6ff0168bd602bd71e9e9b (patch)
tree4ad5048005defe9d48c3969e875066a3ec8a9ec0 /src
parent85934d95e6ac046ed81fc763769c60c48a42c4cb (diff)
parent3f3418d173e5a5d3a5b9cea27da1987491bf9e6a (diff)
Merge branch 'master' of github.com:RT-Thread/rt-thread
Diffstat (limited to 'src')
-rw-r--r--src/Kconfig4
-rwxr-xr-xsrc/ipc.c30
-rw-r--r--src/kservice.c6
3 files changed, 28 insertions, 12 deletions
diff --git a/src/Kconfig b/src/Kconfig
index fc7fcd54f4..e31afc25fa 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -8,6 +8,10 @@ config RT_NAME_MAX
Each kernel object, such as thread, timer, semaphore etc, has a name,
the RT_NAME_MAX is the maximal size of this object name.
+config RT_USING_BIG_ENDIAN
+ bool
+ default n
+
config RT_USING_ARCH_DATA_TYPE
bool "Use the data types defined in ARCH_CPU"
default n
diff --git a/src/ipc.c b/src/ipc.c
index a467c14151..da2996a30e 100755
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -287,6 +287,7 @@ rt_err_t rt_sem_init(rt_sem_t sem,
{
RT_ASSERT(sem != RT_NULL);
RT_ASSERT(value < 0x10000U);
+ RT_ASSERT((flag == RT_IPC_FLAG_FIFO) || (flag == RT_IPC_FLAG_PRIO));
/* initialize object */
rt_object_init(&(sem->parent.parent), RT_Object_Class_Semaphore, name);
@@ -377,8 +378,10 @@ rt_sem_t rt_sem_create(const char *name, rt_uint32_t value, rt_uint8_t flag)
{
rt_sem_t sem;
- RT_DEBUG_NOT_IN_INTERRUPT;
RT_ASSERT(value < 0x10000U);
+ RT_ASSERT((flag == RT_IPC_FLAG_FIFO) || (flag == RT_IPC_FLAG_PRIO));
+
+ RT_DEBUG_NOT_IN_INTERRUPT;
/* allocate object */
sem = (rt_sem_t)rt_object_allocate(RT_Object_Class_Semaphore, name);
@@ -419,13 +422,13 @@ RTM_EXPORT(rt_sem_create);
*/
rt_err_t rt_sem_delete(rt_sem_t sem)
{
- RT_DEBUG_NOT_IN_INTERRUPT;
-
/* parameter check */
RT_ASSERT(sem != RT_NULL);
RT_ASSERT(rt_object_get_type(&sem->parent.parent) == RT_Object_Class_Semaphore);
RT_ASSERT(rt_object_is_systemobject(&sem->parent.parent) == RT_FALSE);
+ RT_DEBUG_NOT_IN_INTERRUPT;
+
/* wakeup all suspended threads */
_ipc_list_resume_all(&(sem->parent.suspend_thread));
@@ -848,13 +851,13 @@ RTM_EXPORT(rt_mutex_create);
*/
rt_err_t rt_mutex_delete(rt_mutex_t mutex)
{
- RT_DEBUG_NOT_IN_INTERRUPT;
-
/* parameter check */
RT_ASSERT(mutex != RT_NULL);
RT_ASSERT(rt_object_get_type(&mutex->parent.parent) == RT_Object_Class_Mutex);
RT_ASSERT(rt_object_is_systemobject(&mutex->parent.parent) == RT_FALSE);
+ RT_DEBUG_NOT_IN_INTERRUPT;
+
/* wakeup all suspended threads */
_ipc_list_resume_all(&(mutex->parent.suspend_thread));
@@ -1257,6 +1260,7 @@ rt_err_t rt_event_init(rt_event_t event, const char *name, rt_uint8_t flag)
{
/* parameter check */
RT_ASSERT(event != RT_NULL);
+ RT_ASSERT((flag == RT_IPC_FLAG_FIFO) || (flag == RT_IPC_FLAG_PRIO));
/* initialize object */
rt_object_init(&(event->parent.parent), RT_Object_Class_Event, name);
@@ -1343,6 +1347,8 @@ rt_event_t rt_event_create(const char *name, rt_uint8_t flag)
{
rt_event_t event;
+ RT_ASSERT((flag == RT_IPC_FLAG_FIFO) || (flag == RT_IPC_FLAG_PRIO));
+
RT_DEBUG_NOT_IN_INTERRUPT;
/* allocate object */
@@ -1766,6 +1772,7 @@ rt_err_t rt_mb_init(rt_mailbox_t mb,
rt_uint8_t flag)
{
RT_ASSERT(mb != RT_NULL);
+ RT_ASSERT((flag == RT_IPC_FLAG_FIFO) || (flag == RT_IPC_FLAG_PRIO));
/* initialize object */
rt_object_init(&(mb->parent.parent), RT_Object_Class_MailBox, name);
@@ -1864,6 +1871,8 @@ rt_mailbox_t rt_mb_create(const char *name, rt_size_t size, rt_uint8_t flag)
{
rt_mailbox_t mb;
+ RT_ASSERT((flag == RT_IPC_FLAG_FIFO) || (flag == RT_IPC_FLAG_PRIO));
+
RT_DEBUG_NOT_IN_INTERRUPT;
/* allocate object */
@@ -1919,13 +1928,13 @@ RTM_EXPORT(rt_mb_create);
*/
rt_err_t rt_mb_delete(rt_mailbox_t mb)
{
- RT_DEBUG_NOT_IN_INTERRUPT;
-
/* parameter check */
RT_ASSERT(mb != RT_NULL);
RT_ASSERT(rt_object_get_type(&mb->parent.parent) == RT_Object_Class_MailBox);
RT_ASSERT(rt_object_is_systemobject(&mb->parent.parent) == RT_FALSE);
+ RT_DEBUG_NOT_IN_INTERRUPT;
+
/* resume all suspended thread */
_ipc_list_resume_all(&(mb->parent.suspend_thread));
@@ -2463,6 +2472,7 @@ rt_err_t rt_mq_init(rt_mq_t mq,
/* parameter check */
RT_ASSERT(mq != RT_NULL);
+ RT_ASSERT((flag == RT_IPC_FLAG_FIFO) || (flag == RT_IPC_FLAG_PRIO));
/* initialize object */
rt_object_init(&(mq->parent.parent), RT_Object_Class_MessageQueue, name);
@@ -2584,6 +2594,8 @@ rt_mq_t rt_mq_create(const char *name,
struct rt_mq_message *head;
register rt_base_t temp;
+ RT_ASSERT((flag == RT_IPC_FLAG_FIFO) || (flag == RT_IPC_FLAG_PRIO));
+
RT_DEBUG_NOT_IN_INTERRUPT;
/* allocate object */
@@ -2658,13 +2670,13 @@ RTM_EXPORT(rt_mq_create);
*/
rt_err_t rt_mq_delete(rt_mq_t mq)
{
- RT_DEBUG_NOT_IN_INTERRUPT;
-
/* parameter check */
RT_ASSERT(mq != RT_NULL);
RT_ASSERT(rt_object_get_type(&mq->parent.parent) == RT_Object_Class_MessageQueue);
RT_ASSERT(rt_object_is_systemobject(&mq->parent.parent) == RT_FALSE);
+ RT_DEBUG_NOT_IN_INTERRUPT;
+
/* resume all suspended thread */
_ipc_list_resume_all(&(mq->parent.suspend_thread));
/* also resume all message queue private suspended thread */
diff --git a/src/kservice.c b/src/kservice.c
index cc1dc6e22c..4ed30f3237 100644
--- a/src/kservice.c
+++ b/src/kservice.c
@@ -545,7 +545,7 @@ rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen)
}
RTM_EXPORT(rt_strnlen);
#ifdef __ARMCC_VERSION
-size_t strnlen(const char *s, size_t maxlen) __attribute__((alias("rt_strnlen")));
+rt_size_t strnlen(const char *s, rt_size_t maxlen) __attribute__((alias("rt_strnlen")));
#endif /* __ARMCC_VERSION */
#endif /* !defined(RT_KSERVICE_USING_STDLIB) || defined(__ARMCC_VERSION) */
@@ -582,8 +582,8 @@ void rt_show_version(void)
{
rt_kprintf("\n \\ | /\n");
rt_kprintf("- RT - Thread Operating System\n");
- rt_kprintf(" / | \\ %d.%d.%d build %s\n",
- RT_VERSION, RT_SUBVERSION, RT_REVISION, __DATE__);
+ rt_kprintf(" / | \\ %d.%d.%d build %s %s\n",
+ RT_VERSION, RT_SUBVERSION, RT_REVISION, __DATE__, __TIME__);
rt_kprintf(" 2006 - 2021 Copyright by rt-thread team\n");
}
RTM_EXPORT(rt_show_version);