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,
int timeout_ms);
32__api
void iio_cond_signal(
struct iio_cond *cond);
34__api
struct iio_thrd *iio_thrd_create(
int (*thrd)(
void *),
void *d,
const char *name);
35__api
int iio_thrd_join_and_destroy(
struct iio_thrd *thrd);
37__api
struct iio_task *iio_task_create(
38 int (*task)(
void *firstarg,
void *d),
void *firstarg,
const char *name);
39__api
void iio_task_flush(
struct iio_task *task);
40__api
int iio_task_destroy(
struct iio_task *task);
42__api
void iio_task_start(
struct iio_task *task);
43__api
void iio_task_stop(
struct iio_task *task);
45__api
void iio_task_token_destroy(
struct iio_task_token *token);
46__api
struct iio_task_token *iio_task_token_create(
struct iio_task *task,
void *elm);
47__api
struct iio_task_token *iio_task_enqueue(
struct iio_task *task,
void *elm);
48__api
int iio_task_enqueue_autoclear(
struct iio_task *task,
void *elm);
49__api
int iio_task_token_enqueue(
struct iio_task_token *token);
51__api _Bool iio_task_is_done(
struct iio_task_token *token);
52__api
int iio_task_sync(
struct iio_task_token *token,
int timeout_ms);
53__api
int iio_task_cancel_sync(
struct iio_task_token *token,
int timeout_ms);
54__api
void iio_task_cancel(
struct iio_task_token *token);