diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-09-16 08:34:56 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-09-16 08:34:56 +0000 |
commit | 1824750b9fcc929d4e0cc133f9e2b08ac541db53 (patch) | |
tree | 1d99959ab5bec113db1da4eec843b5e93479f619 /os/kernel | |
parent | 5b39691e9eaa4f03b14794b824487f324aea7ca2 (diff) | |
download | ChibiOS-1824750b9fcc929d4e0cc133f9e2b08ac541db53.tar.gz ChibiOS-1824750b9fcc929d4e0cc133f9e2b08ac541db53.tar.bz2 ChibiOS-1824750b9fcc929d4e0cc133f9e2b08ac541db53.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4668 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/kernel')
-rw-r--r-- | os/kernel/include/chevents.h | 6 | ||||
-rw-r--r-- | os/kernel/src/chevents.c | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/os/kernel/include/chevents.h b/os/kernel/include/chevents.h index 7550ca2b7..fd52b8de9 100644 --- a/os/kernel/include/chevents.h +++ b/os/kernel/include/chevents.h @@ -173,8 +173,10 @@ extern "C" { eventmask_t chEvtAddFlags(eventmask_t mask);
void chEvtSignal(Thread *tp, eventmask_t mask);
void chEvtSignalI(Thread *tp, eventmask_t mask);
- void chEvtBroadcastFlags(EventSource *esp, eventmask_t mask);
- void chEvtBroadcastFlagsI(EventSource *esp, eventmask_t mask);
+ void chEvtBroadcastFlags(EventSource *esp, flagsmask_t flags);
+ void chEvtBroadcastFlagsI(EventSource *esp, flagsmask_t flags);
+ flagsmask_t chEvtGetAndClearFlags(EventListener *elp);
+ flagsmask_t chEvtGetAndClearFlagsI(EventListener *elp);
void chEvtDispatch(const evhandler_t *handlers, eventmask_t mask);
#if CH_OPTIMIZE_SPEED || !CH_USE_EVENTS_TIMEOUT
eventmask_t chEvtWaitOne(eventmask_t mask);
diff --git a/os/kernel/src/chevents.c b/os/kernel/src/chevents.c index 3518b6975..bb948ab52 100644 --- a/os/kernel/src/chevents.c +++ b/os/kernel/src/chevents.c @@ -264,11 +264,13 @@ void chEvtBroadcastFlagsI(EventSource *esp, flagsmask_t flags) { *
* @iclass
*/
-flagsmask_t chEvtGetAndClearFlagsI(EventListener *elp) {
+flagsmask_t chEvtGetAndClearFlags(EventListener *elp) {
flagsmask_t flags;
+ chSysLock();
flags = elp->el_flags;
elp->el_flags = 0;
+ chSysUnlock();
return flags;
}
@@ -284,13 +286,11 @@ flagsmask_t chEvtGetAndClearFlagsI(EventListener *elp) { *
* @iclass
*/
-flagsmask_t chEvtGetAndClearFlags(EventListener *elp) {
+flagsmask_t chEvtGetAndClearFlagsI(EventListener *elp) {
flagsmask_t flags;
- chSysLock();
flags = elp->el_flags;
elp->el_flags = 0;
- chSysUnlock();
return flags;
}
|