diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2017-09-25 07:23:34 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2017-09-25 07:23:34 +0000 |
commit | eae327a32e0512f35c15933753f4e65e6b7c4d9f (patch) | |
tree | bbc98cbfc757bb218d345c2d5d0f6361548df155 /os/rt | |
parent | 024ed93d4645fe4a1dc96207b8d87ed9424455ac (diff) | |
download | ChibiOS-eae327a32e0512f35c15933753f4e65e6b7c4d9f.tar.gz ChibiOS-eae327a32e0512f35c15933753f4e65e6b7c4d9f.tar.bz2 ChibiOS-eae327a32e0512f35c15933753f4e65e6b7c4d9f.zip |
Added chEvtAddEventsI().
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10710 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/rt')
-rw-r--r-- | os/rt/include/chevents.h | 14 | ||||
-rw-r--r-- | os/rt/src/chevents.c | 6 |
2 files changed, 17 insertions, 3 deletions
diff --git a/os/rt/include/chevents.h b/os/rt/include/chevents.h index bb368e96b..a01c6d71e 100644 --- a/os/rt/include/chevents.h +++ b/os/rt/include/chevents.h @@ -257,6 +257,20 @@ static inline void chEvtBroadcastI(event_source_t *esp) { }
/**
+ * @brief Adds (OR) a set of events to the current thread, this is
+ * @b much faster than using @p chEvtBroadcast() or @p chEvtSignal().
+ *
+ * @param[in] events the events to be added
+ * @return The mask of currently pending events.
+ *
+ * @iclass
+ */
+static inline eventmask_t chEvtAddEventsI(eventmask_t events) {
+
+ return currp->epending |= events;
+}
+
+/**
* @brief Returns the events mask.
* @details The pending events mask is returned but not altered in any way.
*
diff --git a/os/rt/src/chevents.c b/os/rt/src/chevents.c index eedd240ad..4f318960a 100644 --- a/os/rt/src/chevents.c +++ b/os/rt/src/chevents.c @@ -180,13 +180,13 @@ eventmask_t chEvtGetAndClearEvents(eventmask_t events) { * @api
*/
eventmask_t chEvtAddEvents(eventmask_t events) {
+ eventmask_t newevt;
chSysLock();
- currp->epending |= events;
- events = currp->epending;
+ newevt = chEvtAddEventsI(events);
chSysUnlock();
- return events;
+ return newevt;
}
/**
|