69 # define UINT_WIDTH (sizeof(unsigned) * 8)
85 #define THREAD_FLAGS_GROUP_INIT { .members = { 0 } }
API of the utility functions for atomic accesses.
#define assume(cond)
Behaves like an assert(), but tells the compiler that cond can never be false.
int16_t kernel_pid_t
Unique process identifier.
#define MAXTHREADS
The maximum number of threads to be scheduled.
static void thread_flags_group_join(thread_flags_group_t *group)
Join a thread flags group.
#define UINT_WIDTH
Number of bits in unsigned int.
void thread_flags_group_set(thread_flags_group_t *group, thread_flags_t mask)
Set thread flags for all threads in a group.
static void thread_flags_group_leave(thread_flags_group_t *group)
Leave a thread flags group.
uint16_t thread_flags_t
Type definition of thread_flags_t.
static kernel_pid_t thread_getpid(void)
Returns the process ID of the currently running thread.
static void atomic_clear_bit_unsigned(atomic_bit_unsigned_t bit)
Atomic version of *dest &= ~(1 << bit)
static atomic_bit_unsigned_t atomic_bit_unsigned(volatile unsigned *dest, uint8_t bit)
Create a reference to a bit in an unsigned int
static void atomic_set_bit_unsigned(atomic_bit_unsigned_t bit)
Atomic version of *dest |= (1 << bit)
unsigned members[(MAXTHREADS/UINT_WIDTH)+!!(MAXTHREADS % UINT_WIDTH)]
Members bitfield.
Provides utility functions for event handler threads.