diff --git a/include/aux.h b/include/aux.h index 95a055a84..e9af52374 100644 --- a/include/aux.h +++ b/include/aux.h @@ -17,6 +17,7 @@ #include #include #include +#include #include "compat.h" #include "auxlib.h" @@ -354,26 +355,26 @@ INLINE void thread_create_detach(void (*f)(void *), void *a, const char *name) { /*** ATOMIC BITFIELD OPERATIONS ***/ /* checks if at least one of the flags is set */ -INLINE int bf_isset(const volatile unsigned int *u, unsigned int f) { +INLINE bool bf_isset(const volatile unsigned int *u, unsigned int f) { if ((g_atomic_int_get(u) & f)) - return -1; - return 0; + return true; + return false; } /* checks if all of the flags are set */ -INLINE int bf_areset(const volatile unsigned int *u, unsigned int f) { +INLINE bool bf_areset(const volatile unsigned int *u, unsigned int f) { if ((g_atomic_int_get(u) & f) == f) - return -1; - return 0; + return true; + return false; } /* returns true if at least one of the flags was set already */ -INLINE int bf_set(volatile unsigned int *u, unsigned int f) { - return (g_atomic_int_or(u, f) & f) ? -1 : 0; +INLINE bool bf_set(volatile unsigned int *u, unsigned int f) { + return (g_atomic_int_or(u, f) & f) ? true : false; } /* returns true if at least one of the flags was set */ -INLINE int bf_clear(volatile unsigned int *u, unsigned int f) { - return (g_atomic_int_and(u, ~f) & f) ? -1 : 0; +INLINE bool bf_clear(volatile unsigned int *u, unsigned int f) { + return (g_atomic_int_and(u, ~f) & f) ? true : false; } -INLINE void bf_set_clear(volatile unsigned int *u, unsigned int f, int cond) { +INLINE void bf_set_clear(volatile unsigned int *u, unsigned int f, bool cond) { if (cond) bf_set(u, f); else @@ -402,13 +403,13 @@ INLINE void bf_copy_same(volatile unsigned int *u, const volatile unsigned int * #define BIT_ARRAY_DECLARE(name, size) \ volatile unsigned int name[((size) + sizeof(int) * 8 - 1) / (sizeof(int) * 8)] -INLINE int bit_array_isset(const volatile unsigned int *name, unsigned int bit) { +INLINE bool bit_array_isset(const volatile unsigned int *name, unsigned int bit) { return bf_isset(&name[bit / (sizeof(int) * 8)], 1U << (bit % (sizeof(int) * 8))); } -INLINE int bit_array_set(volatile unsigned int *name, unsigned int bit) { +INLINE bool bit_array_set(volatile unsigned int *name, unsigned int bit) { return bf_set(&name[bit / (sizeof(int) * 8)], 1U << (bit % (sizeof(int) * 8))); } -INLINE int bit_array_clear(volatile unsigned int *name, unsigned int bit) { +INLINE bool bit_array_clear(volatile unsigned int *name, unsigned int bit) { return bf_clear(&name[bit / (sizeof(int) * 8)], 1U << (bit % (sizeof(int) * 8))); }