aboutsummaryrefslogtreecommitdiffstats
path: root/os/rt/src/chevents.c
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-03-03 11:01:09 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-03-03 11:01:09 +0000
commitfbd65c1f6ae3c802467ab99f4b2fe9c7c084972e (patch)
treecafc124edd19ce4f3b676a9de703f7a0aefed409 /os/rt/src/chevents.c
parent3d1a86e9fb0b9495a726dab534e97c063b5f368b (diff)
downloadChibiOS-fbd65c1f6ae3c802467ab99f4b2fe9c7c084972e.tar.gz
ChibiOS-fbd65c1f6ae3c802467ab99f4b2fe9c7c084972e.tar.bz2
ChibiOS-fbd65c1f6ae3c802467ab99f4b2fe9c7c084972e.zip
MISRA-related fixes.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7711 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/rt/src/chevents.c')
-rw-r--r--os/rt/src/chevents.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/os/rt/src/chevents.c b/os/rt/src/chevents.c
index 31841add0..dfd1171bd 100644
--- a/os/rt/src/chevents.c
+++ b/os/rt/src/chevents.c
@@ -159,11 +159,10 @@ eventmask_t chEvtGetAndClearEvents(eventmask_t events) {
eventmask_t m;
chSysLock();
-
m = currp->p_epending & events;
currp->p_epending &= ~events;
-
chSysUnlock();
+
return m;
}
@@ -179,10 +178,9 @@ eventmask_t chEvtGetAndClearEvents(eventmask_t events) {
eventmask_t chEvtAddEvents(eventmask_t events) {
chSysLock();
-
events = (currp->p_epending |= events);
-
chSysUnlock();
+
return events;
}
@@ -214,8 +212,9 @@ void chEvtBroadcastFlagsI(event_source_t *esp, eventflags_t flags) {
elp->el_flags |= flags;
/* When flags == 0 the thread will always be signaled because the
source does not emit any flag.*/
- if ((flags == 0) || ((elp->el_flags & elp->el_wflags) != 0))
+ if ((flags == 0) || ((elp->el_flags & elp->el_wflags) != 0)) {
chEvtSignalI(elp->el_listener, elp->el_events);
+ }
elp = elp->el_next;
}
}
@@ -235,11 +234,10 @@ eventflags_t chEvtGetAndClearFlags(event_listener_t *elp) {
eventflags_t flags;
chSysLock();
-
flags = elp->el_flags;
elp->el_flags = 0;
-
chSysUnlock();
+
return flags;
}
@@ -377,7 +375,6 @@ eventmask_t chEvtWaitOne(eventmask_t events) {
eventmask_t m;
chSysLock();
-
if ((m = (ctp->p_epending & events)) == 0) {
ctp->p_u.ewmask = events;
chSchGoSleepS(CH_STATE_WTOREVT);
@@ -385,8 +382,8 @@ eventmask_t chEvtWaitOne(eventmask_t events) {
}
m ^= m & (m - 1);
ctp->p_epending &= ~m;
-
chSysUnlock();
+
return m;
}
@@ -407,15 +404,14 @@ eventmask_t chEvtWaitAny(eventmask_t events) {
eventmask_t m;
chSysLock();
-
if ((m = (ctp->p_epending & events)) == 0) {
ctp->p_u.ewmask = events;
chSchGoSleepS(CH_STATE_WTOREVT);
m = ctp->p_epending & events;
}
ctp->p_epending &= ~m;
-
chSysUnlock();
+
return m;
}
@@ -434,14 +430,13 @@ eventmask_t chEvtWaitAll(eventmask_t events) {
thread_t *ctp = currp;
chSysLock();
-
if ((ctp->p_epending & events) != events) {
ctp->p_u.ewmask = events;
chSchGoSleepS(CH_STATE_WTANDEVT);
}
ctp->p_epending &= ~events;
-
chSysUnlock();
+
return events;
}
#endif /* CH_CFG_OPTIMIZE_SPEED || !CH_CFG_USE_EVENTS_TIMEOUT */
@@ -474,7 +469,6 @@ eventmask_t chEvtWaitOneTimeout(eventmask_t events, systime_t time) {
eventmask_t m;
chSysLock();
-
if ((m = (ctp->p_epending & events)) == 0) {
if (TIME_IMMEDIATE == time) {
chSysUnlock();
@@ -489,8 +483,8 @@ eventmask_t chEvtWaitOneTimeout(eventmask_t events, systime_t time) {
}
m ^= m & (m - 1);
ctp->p_epending &= ~m;
-
chSysUnlock();
+
return m;
}
@@ -517,7 +511,6 @@ eventmask_t chEvtWaitAnyTimeout(eventmask_t events, systime_t time) {
eventmask_t m;
chSysLock();
-
if ((m = (ctp->p_epending & events)) == 0) {
if (TIME_IMMEDIATE == time) {
chSysUnlock();
@@ -531,8 +524,8 @@ eventmask_t chEvtWaitAnyTimeout(eventmask_t events, systime_t time) {
m = ctp->p_epending & events;
}
ctp->p_epending &= ~m;
-
chSysUnlock();
+
return m;
}
@@ -557,7 +550,6 @@ eventmask_t chEvtWaitAllTimeout(eventmask_t events, systime_t time) {
thread_t *ctp = currp;
chSysLock();
-
if ((ctp->p_epending & events) != events) {
if (TIME_IMMEDIATE == time) {
chSysUnlock();
@@ -570,8 +562,8 @@ eventmask_t chEvtWaitAllTimeout(eventmask_t events, systime_t time) {
}
}
ctp->p_epending &= ~events;
-
chSysUnlock();
+
return events;
}
#endif /* CH_CFG_USE_EVENTS_TIMEOUT */