12#include <iio/iio-backend.h>
14#define __api __iio_api
18struct iiod_client_pdata;
19struct iio_event_stream_pdata;
21struct iiod_client_ops {
22 ssize_t (*write)(
struct iiod_client_pdata *desc,
23 const char *src,
size_t len,
unsigned int timeout_ms);
24 ssize_t (*read)(
struct iiod_client_pdata *desc,
25 char *dst,
size_t len,
unsigned int timeout_ms);
26 ssize_t (*read_line)(
struct iiod_client_pdata *desc,
27 char *dst,
size_t len,
unsigned int timeout_ms);
28 void (*cancel)(
struct iiod_client_pdata *desc);
31__api
void iiod_client_mutex_lock(
struct iiod_client *client);
32__api
void iiod_client_mutex_unlock(
struct iiod_client *client);
34__api
struct iiod_client *
36 struct iiod_client_pdata *desc,
37 const struct iiod_client_ops *ops);
39__api
void iiod_client_destroy(
struct iiod_client *client);
41__api
bool iiod_client_uses_binary_interface(
const struct iiod_client *client);
44iiod_client_get_trigger(
struct iiod_client *client,
47__api
int iiod_client_set_trigger(
struct iiod_client *client,
51__api
int iiod_client_set_timeout(
struct iiod_client *client,
52 unsigned int timeout);
54__api ssize_t iiod_client_attr_read(
struct iiod_client *client,
56 char *dest,
size_t len);
58__api ssize_t iiod_client_attr_write(
struct iiod_client *client,
60 const char *src,
size_t len);
63iiod_client_create_context(
struct iiod_client *client,
64 const struct iio_backend *backend,
65 const char *description,
66 const char **ctx_attrs,
67 const char **ctx_values,
68 unsigned int nb_ctx_attrs);
70__api
struct iiod_client_buffer_pdata *
71iiod_client_open_buffer(
struct iiod_client *client,
72 struct iiod_client *client_fb,
73 const struct iio_device *dev,
unsigned int idx,
74 struct iio_channels_mask *mask);
75__api
void iiod_client_close_buffer(
struct iiod_client_buffer_pdata *pdata);
76__api
int iiod_client_enable_buffer(
struct iiod_client_buffer_pdata *pdata,
77 size_t nb_samples,
bool enable,
bool cyclic);
79__api
struct iio_block_pdata *
80iiod_client_create_block(
struct iiod_client_buffer_pdata *pdata,
81 size_t size,
void **data);
82__api
void iiod_client_free_block(
struct iio_block_pdata *block);
84__api
int iiod_client_enqueue_block(
struct iio_block_pdata *block,
85 size_t bytes_used,
bool cyclic);
87__api
int iiod_client_dequeue_block(
struct iio_block_pdata *block,
90__api ssize_t iiod_client_readbuf(
struct iiod_client_buffer_pdata *pdata,
91 void *dst,
size_t len);
92__api ssize_t iiod_client_writebuf(
struct iiod_client_buffer_pdata *pdata,
93 const void *src,
size_t len);
95__api
struct iio_event_stream_pdata *
96iiod_client_open_event_stream(
struct iiod_client *client,
98__api
void iiod_client_close_event_stream(
struct iio_event_stream_pdata *pdata);
99__api
int iiod_client_read_event(
struct iio_event_stream_pdata *pdata,
103__api
int iiod_client_reg_read(
struct iiod_client *client,
105 uint32_t address, uint32_t *value);
106__api
int iiod_client_reg_write(
struct iiod_client *client,
108 uint32_t address, uint32_t value);
Structure holding meta-data for an attribute.
Definition iio-backend.h:83
IIO context creation information.
Definition iio.h:167
Contains the representation of an IIO context.
Represents a device in the IIO context.
Represents a IIO event.
Definition iio.h:1474