9 #ifndef __IIOD_RESPONDER_H__ 10 #define __IIOD_RESPONDER_H__ 15 #if (defined(_WIN32) || defined(__MBED__)) 16 #ifndef _SSIZE_T_DEFINED 17 typedef ptrdiff_t ssize_t;
18 #define _SSIZE_T_DEFINED 21 #include <sys/types.h> 24 struct iiod_command_data;
33 IIOD_OP_READ_DBG_ATTR,
34 IIOD_OP_READ_BUF_ATTR,
35 IIOD_OP_READ_CHN_ATTR,
37 IIOD_OP_WRITE_DBG_ATTR,
38 IIOD_OP_WRITE_BUF_ATTR,
39 IIOD_OP_WRITE_CHN_ATTR,
43 IIOD_OP_CREATE_BUFFER,
45 IIOD_OP_ENABLE_BUFFER,
46 IIOD_OP_DISABLE_BUFFER,
50 IIOD_OP_TRANSFER_BLOCK,
51 IIOD_OP_ENQUEUE_BLOCK_CYCLIC,
70 struct iiod_command_data *data,
void *d);
71 ssize_t (*read)(
void *d,
const struct iiod_buf *buf,
size_t nb);
72 ssize_t (*write)(
void *d,
const struct iiod_buf *buf,
size_t nb);
73 ssize_t (*discard)(
void *d,
size_t bytes);
83 unsigned int timeout_ms);
86 uint64_t iiod_responder_read_counter_us(
void);
93 iiod_responder_create_io(
struct iiod_responder *responder, uint16_t
id);
102 struct iiod_command_data *data);
105 iiod_command_get_default_io(
struct iiod_command_data *data);
108 void iiod_io_cancel(
struct iiod_io *io);
111 void iiod_io_ref(
struct iiod_io *io);
114 void iiod_io_unref(
struct iiod_io *io);
117 int iiod_command_data_read(
struct iiod_command_data *data,
121 int iiod_io_send_command(
struct iiod_io *io,
123 const struct iiod_buf *buf,
size_t nb);
124 int iiod_io_send_response(
struct iiod_io *io, intptr_t code,
125 const struct iiod_buf *buf,
size_t nb);
128 int iiod_io_exec_command(
struct iiod_io *io,
136 iiod_io_exec_simple_command(
struct iiod_io *io,
139 return iiod_io_exec_command(io, cmd, NULL, NULL);
143 int iiod_io_send_command_async(
struct iiod_io *io,
145 const struct iiod_buf *buf,
size_t nb);
146 int iiod_io_send_response_async(
struct iiod_io *io, intptr_t code,
147 const struct iiod_buf *buf,
size_t nb);
150 int iiod_io_wait_for_command_done(
struct iiod_io *io);
152 _Bool iiod_io_command_is_done(
struct iiod_io *io);
156 iiod_io_send_response_code(
struct iiod_io *io, intptr_t code)
158 return iiod_io_send_response(io, code, NULL, 0);
162 int iiod_io_get_response_async(
struct iiod_io *io,
163 const struct iiod_buf *buf,
size_t nb);
166 intptr_t iiod_io_wait_for_response(
struct iiod_io *io);
168 _Bool iiod_io_has_response(
struct iiod_io *io);
170 void iiod_io_cancel_response(
struct iiod_io *io);
Definition: iiod-responder.h:63
Definition: iiod-responder.c:39
Definition: iiod-responder.c:64
Definition: iiod-responder.h:56
Definition: iiod-responder.h:68