diff --git a/core/include/mutex.h b/core/include/mutex.h index 0069108cc3902cfc1d56f88a22b100e98f857a3f..0f7c0fd8c91ad79c2d135dcfcfe30b9067a08bf6 100644 --- a/core/include/mutex.h +++ b/core/include/mutex.h @@ -49,6 +49,18 @@ typedef struct { */ #define MUTEX_INIT { { NULL } } +/** + * @brief Static initializer for mutex_t with a locked mutex + */ +#define MUTEX_INIT_LOCKED { { MUTEX_LOCKED } } + +/** + * @internal + * @brief This is the value of the mutex when locked and no threads are waiting + * for it + */ +#define MUTEX_LOCKED ((void *)-1) + /** * @brief Initializes a mutex object. * @details For initialization of variables use MUTEX_INIT instead. diff --git a/core/mutex.c b/core/mutex.c index 609ca2619916e89a157beb54e44c1aa8151fe6ae..434386fb25aee45266087ebdb852a43f80ad74e8 100644 --- a/core/mutex.c +++ b/core/mutex.c @@ -35,8 +35,6 @@ #define ENABLE_DEBUG (0) #include "debug.h" -#define MUTEX_LOCKED ((void*)-1) - int _mutex_lock(mutex_t *mutex, int blocking) { unsigned irqstate = irq_disable();