From 7b0c5f9d5df0f06154d2f59b3831bbc0119325cb Mon Sep 17 00:00:00 2001 From: Hauke Petersen Date: Fri, 15 Jan 2021 15:21:06 +0100 Subject: [PATCH 1/2] sys/sema: add same_get_value() --- sys/include/sema.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sys/include/sema.h b/sys/include/sema.h index 416afbbbff..4bbdf85cd0 100644 --- a/sys/include/sema.h +++ b/sys/include/sema.h @@ -97,6 +97,18 @@ void sema_create(sema_t *sema, unsigned int value); */ void sema_destroy(sema_t *sema); +/** + * @brief Get a semaphore's current value + * + * @param[in] sema A semaphore. + * + * @return the current value of the semaphore + */ +static inline unsigned sema_get_value(const sema_t *sema) +{ + return sema->value; +} + /** * @brief Wait for a semaphore, blocking or non-blocking. * From 606bcd66da1a2b3c2bd280d70acccc78f0883d94 Mon Sep 17 00:00:00 2001 From: Hauke Petersen Date: Fri, 15 Jan 2021 16:17:25 +0100 Subject: [PATCH 2/2] posis/semaphore: use sema_get_value() --- sys/posix/include/semaphore.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/posix/include/semaphore.h b/sys/posix/include/semaphore.h index 7205679dfa..5340bb80f3 100644 --- a/sys/posix/include/semaphore.h +++ b/sys/posix/include/semaphore.h @@ -283,7 +283,7 @@ static inline int sem_trywait(sem_t *sem) static inline int sem_getvalue(sem_t *sem, int *sval) { if (sem != NULL) { - *sval = (int)sem->value; + *sval = (int)sema_get_value((sema_t *)sem); return 0; } errno = EINVAL;