12#include <iio/iio-backend.h>
14#define __api __iio_api
18struct iiod_client_pdata;
19struct iio_event_stream_pdata;
22 ssize_t (*write)(
struct iiod_client_pdata *desc,
const char *src,
size_t len,
24 ssize_t (*read)(
struct iiod_client_pdata *desc,
char *dst,
size_t len,
int timeout_ms);
25 ssize_t (*read_line)(
struct iiod_client_pdata *desc,
char *dst,
size_t len,
int timeout_ms);
26 void (*cancel)(
struct iiod_client_pdata *desc);
29__api
void iiod_client_mutex_lock(
struct iiod_client *client);
30__api
void iiod_client_mutex_unlock(
struct iiod_client *client);
35__api
void iiod_client_destroy(
struct iiod_client *client);
37__api
bool iiod_client_uses_binary_interface(
const struct iiod_client *client);
39__api
const struct iio_device *iiod_client_get_trigger(
40 struct iiod_client *client,
const struct iio_device *dev);
42__api
int iiod_client_set_trigger(
struct iiod_client *client,
const struct iio_device *dev,
45__api
int iiod_client_set_timeout(
struct iiod_client *client,
int timeout);
47__api ssize_t iiod_client_attr_read(
48 struct iiod_client *client,
const struct iio_attr *attr,
char *dest,
size_t len);
50__api ssize_t iiod_client_attr_write(
struct iiod_client *client,
const struct iio_attr *attr,
51 const char *src,
size_t len);
53__api
struct iio_context *iiod_client_create_context(
struct iiod_client *client,
54 const struct iio_backend *backend,
const char *description,
const char **ctx_attrs,
55 const char **ctx_values,
unsigned int nb_ctx_attrs);
57__api
struct iiod_client_buffer_pdata *iiod_client_open_buffer(
struct iiod_client *client,
58 struct iiod_client *client_fb,
const struct iio_device *dev,
unsigned int idx,
59 struct iio_channels_mask *mask);
60__api
void iiod_client_close_buffer(
struct iiod_client_buffer_pdata *pdata);
61__api
int iiod_client_enable_buffer(
struct iiod_client_buffer_pdata *pdata,
size_t nb_samples,
62 bool enable,
bool cyclic);
64__api
struct iio_block_pdata *iiod_client_create_block(
65 struct iiod_client_buffer_pdata *pdata,
size_t size,
void **data);
66__api
void iiod_client_free_block(
struct iio_block_pdata *block);
68__api
int iiod_client_enqueue_block(
struct iio_block_pdata *block,
size_t bytes_used,
bool cyclic);
70__api
int iiod_client_dequeue_block(
struct iio_block_pdata *block,
bool nonblock);
72__api ssize_t iiod_client_readbuf(
struct iiod_client_buffer_pdata *pdata,
void *dst,
size_t len);
73__api ssize_t iiod_client_writebuf(
74 struct iiod_client_buffer_pdata *pdata,
const void *src,
size_t len);
76__api
struct iio_event_stream_pdata *iiod_client_open_event_stream(
77 struct iiod_client *client,
const struct iio_device *dev);
78__api
void iiod_client_close_event_stream(
struct iio_event_stream_pdata *pdata);
79__api
int iiod_client_read_event(
80 struct iio_event_stream_pdata *pdata,
struct iio_event *out_event,
bool nonblock);
82__api
int iiod_client_reg_read(
struct iiod_client *client,
const struct iio_device *dev,
83 uint32_t address, uint32_t *value);
84__api
int iiod_client_reg_write(
struct iiod_client *client,
const struct iio_device *dev,
85 uint32_t address, uint32_t value);
87__api
int iiod_client_refresh_format(
struct iiod_client *client,
const struct iio_device *dev,
88 const struct iio_channel *chn,
char *format_str,
size_t len);
90__api __check_ret
int iiod_client_nop(
struct iiod_client *client);
Structure holding meta-data for an attribute.
Definition iio-backend.h:88
Definition iio-backend.h:156
Represents an input or output channel of a device.
IIO context creation information.
Definition iio.h:173
Contains the representation of an IIO context.
Represents a device in the IIO context.
Represents a IIO event.
Definition iio.h:1437
Definition iiod-client.h:21