My Project
Toggle main menu visibility
Loading...
Searching...
No Matches
iio-lock.h
1
/* SPDX-License-Identifier: MIT */
2
/*
3
* libiio - Library for interfacing industrial I/O (IIO) devices
4
*
5
* Copyright (C) 2015 Analog Devices, Inc.
6
* Author: Paul Cercueil <paul.cercueil@analog.com>
7
*/
8
9
#ifndef _IIO_LOCK_H
10
#define _IIO_LOCK_H
11
12
#include <
iio/iio.h
>
13
14
#define __api __iio_api
15
16
struct
iio_mutex;
17
struct
iio_cond;
18
struct
iio_task;
19
struct
iio_task_token;
20
struct
iio_thrd;
21
22
__api
struct
iio_mutex *iio_mutex_create(
void
);
23
__api
void
iio_mutex_destroy(
struct
iio_mutex *lock);
24
25
__api
void
iio_mutex_lock(
struct
iio_mutex *lock);
26
__api
void
iio_mutex_unlock(
struct
iio_mutex *lock);
27
28
__api
struct
iio_cond *iio_cond_create(
void
);
29
__api
void
iio_cond_destroy(
struct
iio_cond *cond);
30
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);
33
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);
36
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);
41
42
__api
void
iio_task_start(
struct
iio_task *task);
43
__api
void
iio_task_stop(
struct
iio_task *task);
44
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);
50
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);
55
56
#undef __api
57
58
#endif
/* _IIO_LOCK_H */
iio.h
Public interface.
include
iio
iio-lock.h
Generated by
1.18.0