aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/mutexes.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/mutexes.h')
-rw-r--r--src/include/mutexes.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/include/mutexes.h b/src/include/mutexes.h
index 16b59f695..6ef6e48f4 100644
--- a/src/include/mutexes.h
+++ b/src/include/mutexes.h
@@ -57,6 +57,22 @@ extern "C" {
#endif
/**
+ * @brief Data part of a static mutex initializer.
+ * @details This macro should be used when statically initializing a mutex
+ * that is part of a bigger structure.
+ * @param name the name of the mutex variable
+ */
+#define _MUTEX_DATA(name) {_THREADSQUEUE_DATA(name.m_queue), NULL, NULL}
+
+/**
+ * @brief Static mutex initializer.
+ * @details Statically initialized mutexes require no explicit initialization
+ * using @p chMtxInit().
+ * @param name the name of the mutex variable
+ */
+#define MUTEX_DECL(name) Mutex name = _MUTEX_DATA(name)
+
+/**
* Returns @p TRUE if the mutex queue contains at least a waiting thread.
*/
#define chMtxQueueNotEmptyS(mp) notempty(&(mp)->m_queue)