Skip to content

Commit 411662d

Browse files
Niranjhana Nnashif
authored andcommitted
lib: cmsis_rtos_v1: fix couple of nonconformities
Add osErrorTimeoutResource as return value when message cannot be put in queue during waiting period. Also set message value only when message is received. Signed-off-by: Niranjhana N <niranjhana.n@intel.com>
1 parent 2a72f50 commit 411662d

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

lib/cmsis_rtos_v1/cmsis_mailq.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ osEvent osMailGet(osMailQId queue_id, uint32_t millisec)
124124
{
125125
osMailQDef_t *queue_def = (osMailQDef_t *)queue_id;
126126
struct k_mbox_msg mmsg;
127-
osEvent evt;
127+
osEvent evt = {0};
128128
int retval;
129129

130130
if (queue_def == NULL) {
@@ -146,6 +146,7 @@ osEvent osMailGet(osMailQId queue_id, uint32_t millisec)
146146

147147
if (retval == 0) {
148148
evt.status = osEventMail;
149+
evt.value.p = mmsg.tx_data;
149150
} else if (retval == -EAGAIN) {
150151
evt.status = osEventTimeout;
151152
} else if (retval == -ENOMSG) {
@@ -154,7 +155,6 @@ osEvent osMailGet(osMailQId queue_id, uint32_t millisec)
154155
evt.status = osErrorValue;
155156
}
156157

157-
evt.value.p = mmsg.tx_data;
158158
evt.def.mail_id = queue_id;
159159

160160
return evt;

lib/cmsis_rtos_v1/cmsis_msgq.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ osStatus osMessagePut(osMessageQId queue_id, uint32_t info, uint32_t millisec)
4848

4949
if (retval == 0) {
5050
return osOK;
51+
} else if (retval == -EAGAIN) {
52+
return osErrorTimeoutResource;
5153
} else {
5254
return osErrorResource;
5355
}
@@ -60,7 +62,7 @@ osEvent osMessageGet(osMessageQId queue_id, uint32_t millisec)
6062
{
6163
osMessageQDef_t *queue_def = (osMessageQDef_t *)queue_id;
6264
u32_t info;
63-
osEvent evt;
65+
osEvent evt = {0};
6466
int retval;
6567

6668
if (queue_def == NULL) {
@@ -78,6 +80,7 @@ osEvent osMessageGet(osMessageQId queue_id, uint32_t millisec)
7880

7981
if (retval == 0) {
8082
evt.status = osEventMessage;
83+
evt.value.v = info;
8184
} else if (retval == -EAGAIN) {
8285
evt.status = osEventTimeout;
8386
} else if (retval == -ENOMSG) {
@@ -86,7 +89,6 @@ osEvent osMessageGet(osMessageQId queue_id, uint32_t millisec)
8689
evt.status = osErrorValue;
8790
}
8891

89-
evt.value.v = info;
9092
evt.def.message_id = queue_id;
9193

9294
return evt;

0 commit comments

Comments
 (0)