14#define __api __iio_api
22__api
struct iio_mutex *iio_mutex_create(
void);
23__api
void iio_mutex_destroy(
struct iio_mutex *lock);
25__api
void iio_mutex_lock(
struct iio_mutex *lock);
26__api
void iio_mutex_unlock(
struct iio_mutex *lock);
28__api
struct iio_cond * iio_cond_create(
void);
29__api
void iio_cond_destroy(
struct iio_cond *cond);
31__api
int iio_cond_wait(
struct iio_cond *cond,
struct iio_mutex *lock,
32 unsigned int timeout_ms);
33__api
void iio_cond_signal(
struct iio_cond *cond);
35__api
struct iio_thrd * iio_thrd_create(
int (*thrd)(
void *),
36 void *d,
const char *name);
37__api
int iio_thrd_join_and_destroy(
struct iio_thrd *thrd);
39__api
struct iio_task * iio_task_create(
int (*task)(
void *firstarg,
void *d),
40 void *firstarg,
const char *name);
41__api
void iio_task_flush(
struct iio_task *task);
42__api
int iio_task_destroy(
struct iio_task *task);
44__api
void iio_task_start(
struct iio_task *task);
45__api
void iio_task_stop(
struct iio_task *task);
47__api
void iio_task_token_destroy(
struct iio_task_token *token);
48__api
struct iio_task_token * iio_task_token_create(
struct iio_task *task,
void *elm);
49__api
struct iio_task_token * iio_task_enqueue(
struct iio_task *task,
void *elm);
50__api
int iio_task_enqueue_autoclear(
struct iio_task *task,
void *elm);
51__api
int iio_task_token_enqueue(
struct iio_task_token *token);
53__api _Bool iio_task_is_done(
struct iio_task_token *token);
54__api
int iio_task_sync(
struct iio_task_token *token,
unsigned int timeout_ms);
55__api
int iio_task_cancel_sync(
struct iio_task_token *token,
unsigned int timeout_ms);
56__api
void iio_task_cancel(
struct iio_task_token *token);