45 void sem_init(semaphore_t *sem, int16_t initial_permits, int16_t max_permits);
    74 void sem_reset(semaphore_t *sem, int16_t permits);
 void sem_init(semaphore_t *sem, int16_t initial_permits, int16_t max_permits)
Initialise a semaphore structure. 
Definition: sem.c:10
 
bool sem_acquire_timeout_us(semaphore_t *sem, uint32_t timeout_us)
Acquire a permit from a semaphore, with timeoutThis function will block and wait if no permits are av...
Definition: sem.c:37
 
void sem_reset(semaphore_t *sem, int16_t permits)
Reset semaphore to a specific number of available permitsReset value should be from 0 to the max_perm...
Definition: sem.c:80
 
bool sem_try_acquire(semaphore_t *sem)
Attempt to acquire a permit from a semaphore without blockingThis function will return false without ...
Definition: sem.c:55
 
bool sem_acquire_timeout_ms(semaphore_t *sem, uint32_t timeout_ms)
Acquire a permit from a semaphore, with timeoutThis function will block and wait if no permits are av...
Definition: sem.c:33
 
bool sem_acquire_block_until(semaphore_t *sem, absolute_time_t until)
Wait to acquire a permit from a semaphore until a specific timeThis function will block and wait if n...
Definition: sem.c:41
 
bool sem_release(semaphore_t *sem)
Release a permit on a semaphoreIncreases the number of permits by one (unless the number of permits i...
Definition: sem.c:67
 
recursive mutex instance 
Definition: mutex.h:47
 
void sem_acquire_blocking(semaphore_t *sem)
Acquire a permit from the semaphoreThis function will block and wait if no permits are available...
Definition: sem.c:21
 
Definition: lock_core.h:53
 
int sem_available(semaphore_t *sem)
Return number of available permits on the semaphore. 
Definition: sem.c:17