sema.h File Reference

Semaphore definitions. More...

Detailed Description

#include <stdint.h>
#include "mutex.h"
+ Include dependency graph for sema.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sema_t
 A Semaphore. More...
 

Macros

#define SEMA_CREATE(value)   { (value), SEMA_OK, MUTEX_INIT }
 Creates semaphore statically. More...
 
#define SEMA_CREATE_LOCKED()   { (0), SEMA_OK, MUTEX_INIT_LOCKED }
 Creates semaphore statically initialized to 0. More...
 

Enumerations

enum  sema_state_t { SEMA_OK = 0, SEMA_DESTROY }
 A Semaphore states.
 

Functions

void sema_create (sema_t *sema, unsigned int value)
 Creates semaphore dynamically. More...
 
void sema_destroy (sema_t *sema)
 Destroys a semaphore. More...
 
int _sema_wait (sema_t *sema, int block, uint64_t timeout)
 Wait for a semaphore, blocking or non-blocking. More...
 
static int sema_wait_timed (sema_t *sema, uint64_t timeout)
 Wait for a semaphore being posted. More...
 
static int sema_wait (sema_t *sema)
 Wait for a semaphore being posted (without timeout). More...
 
static int sema_try_wait (sema_t *sema)
 Test if the semaphore is posted. More...
 
int sema_post (sema_t *sema)
 Signal semaphore. More...