An internal module of Peer Manager. This module provides thread-safe mutexes.
More...
|
#define | MUTEX_STORAGE_SIZE(number_of_mutexes) ((7 + (number_of_mutexes)) >> 3) |
| Defines the storage size of a specified mutex group. More...
|
|
An internal module of Peer Manager. This module provides thread-safe mutexes.
#define MUTEX_STORAGE_SIZE |
( |
|
number_of_mutexes | ) |
((7 + (number_of_mutexes)) >> 3) |
Defines the storage size of a specified mutex group.
- Parameters
-
number_of_mutexes | the number of mutexes in the group. |
void pm_mutex_init |
( |
uint8_t * |
p_mutex, |
|
|
uint16_t |
mutex_size |
|
) |
| |
Initializes a mutex group.
- Parameters
-
[in] | p_mutex | Pointer to the mutex group. See MUTEX_STORAGE_SIZE(). |
[in] | mutex_size | The size of the mutex group in number of mutexes. |
bool pm_mutex_lock |
( |
uint8_t * |
p_mutex, |
|
|
uint16_t |
mutex_bit_id |
|
) |
| |
Locks the mutex specified by the bit id.
- Parameters
-
[in,out] | p_mutex | Pointer to the mutex group. |
[in] | mutex_bit_id | The bit id of the mutex. |
- Return values
-
true | if it was possible to lock the mutex. |
false | otherwise. |
uint16_t pm_mutex_lock_first_available |
( |
uint8_t * |
p_mutex, |
|
|
uint16_t |
mutex_size |
|
) |
| |
Locks the first unlocked mutex within the mutex group.
- Parameters
-
[in,out] | p_mutex | Pointer to the mutex group. |
[in] | mutex_size | The size of the mutex group. |
- Returns
- The first unlocked mutex id in the group.
- Return values
-
group-size | if there was no unlocked mutex available. |
bool pm_mutex_lock_status_get |
( |
uint8_t * |
p_mutex, |
|
|
uint16_t |
mutex_bit_id |
|
) |
| |
Gets the locking status of the specified mutex.
- Parameters
-
[in,out] | p_mutex | Pointer to the mutex group. |
[in] | mutex_bit_id | The bit id of the mutex. |
- Return values
-
true | if the mutex was locked. |
false | otherwise. |
void pm_mutex_unlock |
( |
uint8_t * |
p_mutex, |
|
|
uint16_t |
mutex_bit_id |
|
) |
| |
Unlocks the mutex specified by the bit id.
- Parameters
-
[in,out] | p_mutex | Pointer to the mutex group. |
[in] | mutex_bit_id | The bit id of the mutex. |