libiio  0.21
Library for interfacing with IIO devices
/home/travis/build/analogdevicesinc/libiio/iio.h
Go to the documentation of this file.
1 /*
2  * libiio - Library for interfacing industrial I/O (IIO) devices
3  *
4  * Copyright (C) 2014 Analog Devices, Inc.
5  * Author: Paul Cercueil <paul.cercueil@analog.com>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * */
18 
22 #ifndef __IIO_H__
23 #define __IIO_H__
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #include <limits.h>
30 #include <stdint.h>
31 #include <stdlib.h>
32 #include <stddef.h>
33 
34 #if (defined(_WIN32) || defined(__MBED__))
35 #ifndef _SSIZE_T_DEFINED
36 typedef ptrdiff_t ssize_t;
37 #define _SSIZE_T_DEFINED
38 #endif
39 #else
40 #include <sys/types.h>
41 #endif
42 
43 #if defined(_MSC_VER) && (_MSC_VER < 1800) && !defined(__BOOL_DEFINED)
44 #undef bool
45 #undef false
46 #undef true
47 #define bool char
48 #define false 0
49 #define true 1
50 #else
51 #include <stdbool.h>
52 #endif
53 
54 #if defined(__GNUC__) && !defined(MATLAB_MEX_FILE) && !defined(MATLAB_LOADLIBRARY)
55 #ifndef __cnst
56 #define __cnst __attribute__((const))
57 #endif
58 #ifndef __pure
59 #define __pure __attribute__((pure))
60 #endif
61 #define __notused __attribute__((unused))
62 #ifdef IIO_CHECK_RET
63 #define __check_ret __attribute__((warn_unused_result))
64 #else
65 #define __check_ret
66 #endif
67 #else
68 #define __cnst
69 #define __pure
70 #define __notused
71 #define __check_ret
72 #endif
73 
74 #ifdef _WIN32
75 # ifdef LIBIIO_EXPORTS
76 # define __api __declspec(dllexport)
77 # else
78 # define __api __declspec(dllimport)
79 # endif
80 #elif __GNUC__ >= 4 && !defined(MATLAB_MEX_FILE) && !defined(MATLAB_LOADLIBRARY)
81 # define __api __attribute__((visibility ("default")))
82 #else
83 # define __api
84 #endif
85 
86 struct iio_context;
87 struct iio_device;
88 struct iio_channel;
89 struct iio_buffer;
90 
91 struct iio_context_info;
92 struct iio_scan_context;
93 struct iio_scan_block;
94 
103  IIO_VOLTAGE,
104  IIO_CURRENT,
105  IIO_POWER,
106  IIO_ACCEL,
107  IIO_ANGL_VEL,
108  IIO_MAGN,
109  IIO_LIGHT,
110  IIO_INTENSITY,
111  IIO_PROXIMITY,
112  IIO_TEMP,
113  IIO_INCLI,
114  IIO_ROT,
115  IIO_ANGL,
116  IIO_TIMESTAMP,
117  IIO_CAPACITANCE,
118  IIO_ALTVOLTAGE,
119  IIO_CCT,
120  IIO_PRESSURE,
121  IIO_HUMIDITYRELATIVE,
122  IIO_ACTIVITY,
123  IIO_STEPS,
124  IIO_ENERGY,
125  IIO_DISTANCE,
126  IIO_VELOCITY,
127  IIO_CONCENTRATION,
128  IIO_RESISTANCE,
129  IIO_PH,
130  IIO_UVINDEX,
131  IIO_ELECTRICALCONDUCTIVITY,
132  IIO_COUNT,
133  IIO_INDEX,
134  IIO_GRAVITY,
135  IIO_POSITIONRELATIVE,
136  IIO_PHASE,
137  IIO_MASSCONCENTRATION,
138  IIO_CHAN_TYPE_UNKNOWN = INT_MAX
139 };
140 
149  IIO_NO_MOD,
150  IIO_MOD_X,
151  IIO_MOD_Y,
152  IIO_MOD_Z,
153  IIO_MOD_X_AND_Y,
154  IIO_MOD_X_AND_Z,
155  IIO_MOD_Y_AND_Z,
156  IIO_MOD_X_AND_Y_AND_Z,
157  IIO_MOD_X_OR_Y,
158  IIO_MOD_X_OR_Z,
159  IIO_MOD_Y_OR_Z,
160  IIO_MOD_X_OR_Y_OR_Z,
161  IIO_MOD_LIGHT_BOTH,
162  IIO_MOD_LIGHT_IR,
163  IIO_MOD_ROOT_SUM_SQUARED_X_Y,
164  IIO_MOD_SUM_SQUARED_X_Y_Z,
165  IIO_MOD_LIGHT_CLEAR,
166  IIO_MOD_LIGHT_RED,
167  IIO_MOD_LIGHT_GREEN,
168  IIO_MOD_LIGHT_BLUE,
169  IIO_MOD_QUATERNION,
170  IIO_MOD_TEMP_AMBIENT,
171  IIO_MOD_TEMP_OBJECT,
172  IIO_MOD_NORTH_MAGN,
173  IIO_MOD_NORTH_TRUE,
174  IIO_MOD_NORTH_MAGN_TILT_COMP,
175  IIO_MOD_NORTH_TRUE_TILT_COMP,
176  IIO_MOD_RUNNING,
177  IIO_MOD_JOGGING,
178  IIO_MOD_WALKING,
179  IIO_MOD_STILL,
180  IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
181  IIO_MOD_I,
182  IIO_MOD_Q,
183  IIO_MOD_CO2,
184  IIO_MOD_VOC,
185  IIO_MOD_LIGHT_UV,
186  IIO_MOD_LIGHT_DUV,
187  IIO_MOD_PM1,
188  IIO_MOD_PM2P5,
189  IIO_MOD_PM4,
190  IIO_MOD_PM10,
191  IIO_MOD_ETHANOL,
192  IIO_MOD_H2,
193 };
194 
195 /* ---------------------------------------------------------------------------*/
196 /* ------------------------- Scan functions ----------------------------------*/
215 __api __check_ret struct iio_scan_context * iio_create_scan_context(
216  const char *backend, unsigned int flags);
217 
218 
223 __api void iio_scan_context_destroy(struct iio_scan_context *ctx);
224 
225 
233 __api __check_ret ssize_t iio_scan_context_get_info_list(struct iio_scan_context *ctx,
234  struct iio_context_info ***info);
235 
236 
240 __api void iio_context_info_list_free(struct iio_context_info **info);
241 
242 
247 __api __check_ret __pure const char * iio_context_info_get_description(
248  const struct iio_context_info *info);
249 
250 
255 __api __check_ret __pure const char * iio_context_info_get_uri(
256  const struct iio_context_info *info);
257 
258 
267 __api struct iio_scan_block * iio_create_scan_block(
268  const char *backend, unsigned int flags);
269 
270 
277 __api void iio_scan_block_destroy(struct iio_scan_block *blk);
278 
279 
286 __api ssize_t iio_scan_block_scan(struct iio_scan_block *blk);
287 
288 
298  struct iio_scan_block *blk, unsigned int index);
299 
300 /* ------------------------------------------------------------------*/
302 /* ------------------------- Top-level functions -----------------------------*/
311 __api void iio_library_get_version(unsigned int *major,
312  unsigned int *minor, char git_tag[8]);
313 
314 
320 __api void iio_strerror(int err, char *dst, size_t len);
321 
322 
328 __api __check_ret __cnst bool iio_has_backend(const char *backend);
329 
330 
335 __api __check_ret __cnst unsigned int iio_get_backends_count(void);
336 
337 
344 __api __check_ret __cnst const char * iio_get_backend(unsigned int index);
345 
346 /* ------------------------------------------------------------------*/
348 /* ------------------------- Context functions -------------------------------*/
364 __api __check_ret struct iio_context * iio_create_default_context(void);
365 
366 
370 __api __check_ret struct iio_context * iio_create_local_context(void);
371 
372 
380 __api __check_ret struct iio_context * iio_create_xml_context(const char *xml_file);
381 
382 
391 __api __check_ret struct iio_context * iio_create_xml_context_mem(
392  const char *xml, size_t len);
393 
394 
399 __api __check_ret struct iio_context * iio_create_network_context(const char *host);
400 
401 
432 __api __check_ret struct iio_context * iio_create_context_from_uri(const char *uri);
433 
434 
443 __api __check_ret struct iio_context * iio_context_clone(const struct iio_context *ctx);
444 
445 
450 __api void iio_context_destroy(struct iio_context *ctx);
451 
452 
460 __api __check_ret int iio_context_get_version(const struct iio_context *ctx,
461  unsigned int *major, unsigned int *minor, char git_tag[8]);
462 
463 
467 __api __check_ret __pure const char * iio_context_get_xml(const struct iio_context *ctx);
468 
469 
477 __api __check_ret __pure const char * iio_context_get_name(const struct iio_context *ctx);
478 
479 
486 __api __check_ret __pure const char * iio_context_get_description(
487  const struct iio_context *ctx);
488 
489 
495 __api __check_ret __pure unsigned int iio_context_get_attrs_count(
496  const struct iio_context *ctx);
497 
498 
508 __api __check_ret int iio_context_get_attr(
509  const struct iio_context *ctx, unsigned int index,
510  const char **name, const char **value);
511 
512 
521 __api __check_ret const char * iio_context_get_attr_value(
522  const struct iio_context *ctx, const char *name);
523 
524 
528 __api __check_ret __pure unsigned int iio_context_get_devices_count(
529  const struct iio_context *ctx);
530 
531 
537 __api __check_ret __pure struct iio_device * iio_context_get_device(
538  const struct iio_context *ctx, unsigned int index);
539 
540 
548 __api __check_ret __pure struct iio_device * iio_context_find_device(
549  const struct iio_context *ctx, const char *name);
550 
551 
559 __api __check_ret int iio_context_set_timeout(
560  struct iio_context *ctx, unsigned int timeout_ms);
561 
562 /* ------------------------------------------------------------------*/
564 /* ------------------------- Device functions --------------------------------*/
574 __api __check_ret __pure const struct iio_context * iio_device_get_context(
575  const struct iio_device *dev);
576 
577 
581 __api __check_ret __pure const char * iio_device_get_id(const struct iio_device *dev);
582 
583 
589 __api __check_ret __pure const char * iio_device_get_name(const struct iio_device *dev);
590 
591 
595 __api __check_ret __pure unsigned int iio_device_get_channels_count(
596  const struct iio_device *dev);
597 
598 
602 __api __check_ret __pure unsigned int iio_device_get_attrs_count(
603  const struct iio_device *dev);
604 
608 __api __check_ret __pure unsigned int iio_device_get_buffer_attrs_count(
609  const struct iio_device *dev);
610 
616 __api __check_ret __pure struct iio_channel * iio_device_get_channel(
617  const struct iio_device *dev, unsigned int index);
618 
619 
625 __api __check_ret __pure const char * iio_device_get_attr(
626  const struct iio_device *dev, unsigned int index);
627 
633 __api __check_ret __pure const char * iio_device_get_buffer_attr(
634  const struct iio_device *dev, unsigned int index);
635 
644 __api __check_ret __pure struct iio_channel * iio_device_find_channel(
645  const struct iio_device *dev, const char *name, bool output);
646 
647 
659 __api __check_ret __pure const char * iio_device_find_attr(
660  const struct iio_device *dev, const char *name);
661 
673 __api __check_ret __pure const char * iio_device_find_buffer_attr(
674  const struct iio_device *dev, const char *name);
675 
697 __api __check_ret ssize_t iio_device_attr_read(const struct iio_device *dev,
698  const char *attr, char *dst, size_t len);
699 
700 
711 __api __check_ret int iio_device_attr_read_all(struct iio_device *dev,
712  int (*cb)(struct iio_device *dev, const char *attr,
713  const char *value, size_t len, void *d),
714  void *data);
715 
716 
724 __api __check_ret int iio_device_attr_read_bool(const struct iio_device *dev,
725  const char *attr, bool *val);
726 
727 
735 __api __check_ret int iio_device_attr_read_longlong(const struct iio_device *dev,
736  const char *attr, long long *val);
737 
738 
746 __api __check_ret int iio_device_attr_read_double(const struct iio_device *dev,
747  const char *attr, double *val);
748 
749 
768 __api __check_ret ssize_t iio_device_attr_write(const struct iio_device *dev,
769  const char *attr, const char *src);
770 
771 
780 __api __check_ret ssize_t iio_device_attr_write_raw(const struct iio_device *dev,
781  const char *attr, const void *src, size_t len);
782 
783 
794 __api __check_ret int iio_device_attr_write_all(struct iio_device *dev,
795  ssize_t (*cb)(struct iio_device *dev,
796  const char *attr, void *buf, size_t len, void *d),
797  void *data);
798 
799 
807 __api __check_ret int iio_device_attr_write_bool(const struct iio_device *dev,
808  const char *attr, bool val);
809 
810 
818 __api __check_ret int iio_device_attr_write_longlong(const struct iio_device *dev,
819  const char *attr, long long val);
820 
821 
829 __api __check_ret int iio_device_attr_write_double(const struct iio_device *dev,
830  const char *attr, double val);
831 
854 __api __check_ret ssize_t iio_device_buffer_attr_read(const struct iio_device *dev,
855  const char *attr, char *dst, size_t len);
856 
867 __api __check_ret int iio_device_buffer_attr_read_all(struct iio_device *dev,
868  int (*cb)(struct iio_device *dev, const char *attr,
869  const char *value, size_t len, void *d),
870  void *data);
871 
872 
880 __api __check_ret int iio_device_buffer_attr_read_bool(const struct iio_device *dev,
881  const char *attr, bool *val);
882 
883 
891 __api __check_ret int iio_device_buffer_attr_read_longlong(const struct iio_device *dev,
892  const char *attr, long long *val);
893 
894 
902 __api __check_ret int iio_device_buffer_attr_read_double(const struct iio_device *dev,
903  const char *attr, double *val);
904 
905 
925 __api __check_ret ssize_t iio_device_buffer_attr_write(const struct iio_device *dev,
926  const char *attr, const char *src);
927 
928 
937 __api __check_ret ssize_t iio_device_buffer_attr_write_raw(const struct iio_device *dev,
938  const char *attr, const void *src, size_t len);
939 
940 
951 __api __check_ret int iio_device_buffer_attr_write_all(struct iio_device *dev,
952  ssize_t (*cb)(struct iio_device *dev,
953  const char *attr, void *buf, size_t len, void *d),
954  void *data);
955 
956 
964 __api __check_ret int iio_device_buffer_attr_write_bool(const struct iio_device *dev,
965  const char *attr, bool val);
966 
967 
975 __api __check_ret int iio_device_buffer_attr_write_longlong(const struct iio_device *dev,
976  const char *attr, long long val);
977 
978 
986 __api __check_ret int iio_device_buffer_attr_write_double(const struct iio_device *dev,
987  const char *attr, double val);
988 
989 
993 __api void iio_device_set_data(struct iio_device *dev, void *data);
994 
995 
999 __api void * iio_device_get_data(const struct iio_device *dev);
1000 
1001 
1009 __api __check_ret int iio_device_get_trigger(const struct iio_device *dev,
1010  const struct iio_device **trigger);
1011 
1012 
1019 __api __check_ret int iio_device_set_trigger(const struct iio_device *dev,
1020  const struct iio_device *trigger);
1021 
1022 
1026 __api __check_ret __pure bool iio_device_is_trigger(const struct iio_device *dev);
1027 
1035 __api __check_ret int iio_device_set_kernel_buffers_count(const struct iio_device *dev,
1036  unsigned int nb_buffers);
1037 /* ------------------------------------------------------------------*/
1039 /* ------------------------- Channel functions -------------------------------*/
1049 __api __check_ret __pure const struct iio_device * iio_channel_get_device(
1050  const struct iio_channel *chn);
1051 
1052 
1056 __api __check_ret __pure const char * iio_channel_get_id(const struct iio_channel *chn);
1057 
1058 
1064 __api __check_ret __pure const char * iio_channel_get_name(const struct iio_channel *chn);
1065 
1066 
1070 __api __check_ret __pure bool iio_channel_is_output(const struct iio_channel *chn);
1071 
1072 
1080 __api __check_ret __pure bool iio_channel_is_scan_element(const struct iio_channel *chn);
1081 
1082 
1086 __api __check_ret __pure unsigned int iio_channel_get_attrs_count(
1087  const struct iio_channel *chn);
1088 
1089 
1095 __api __check_ret __pure const char * iio_channel_get_attr(
1096  const struct iio_channel *chn, unsigned int index);
1097 
1098 
1110 __api __check_ret __pure const char * iio_channel_find_attr(
1111  const struct iio_channel *chn, const char *name);
1112 
1113 
1120 __api __check_ret __pure const char * iio_channel_attr_get_filename(
1121  const struct iio_channel *chn, const char *attr);
1122 
1123 
1145 __api __check_ret ssize_t iio_channel_attr_read(const struct iio_channel *chn,
1146  const char *attr, char *dst, size_t len);
1147 
1148 
1159 __api __check_ret int iio_channel_attr_read_all(struct iio_channel *chn,
1160  int (*cb)(struct iio_channel *chn,
1161  const char *attr, const char *val, size_t len, void *d),
1162  void *data);
1163 
1164 
1172 __api __check_ret int iio_channel_attr_read_bool(const struct iio_channel *chn,
1173  const char *attr, bool *val);
1174 
1175 
1183 __api __check_ret int iio_channel_attr_read_longlong(const struct iio_channel *chn,
1184  const char *attr, long long *val);
1185 
1186 
1194 __api __check_ret int iio_channel_attr_read_double(const struct iio_channel *chn,
1195  const char *attr, double *val);
1196 
1197 
1216 __api __check_ret ssize_t iio_channel_attr_write(const struct iio_channel *chn,
1217  const char *attr, const char *src);
1218 
1219 
1228 __api __check_ret ssize_t iio_channel_attr_write_raw(const struct iio_channel *chn,
1229  const char *attr, const void *src, size_t len);
1230 
1231 
1242 __api __check_ret int iio_channel_attr_write_all(struct iio_channel *chn,
1243  ssize_t (*cb)(struct iio_channel *chn,
1244  const char *attr, void *buf, size_t len, void *d),
1245  void *data);
1246 
1247 
1255 __api __check_ret int iio_channel_attr_write_bool(const struct iio_channel *chn,
1256  const char *attr, bool val);
1257 
1258 
1266 __api __check_ret int iio_channel_attr_write_longlong(const struct iio_channel *chn,
1267  const char *attr, long long val);
1268 
1269 
1277 __api __check_ret int iio_channel_attr_write_double(const struct iio_channel *chn,
1278  const char *attr, double val);
1279 
1280 
1287 __api void iio_channel_enable(struct iio_channel *chn);
1288 
1289 
1292 __api void iio_channel_disable(struct iio_channel *chn);
1293 
1294 
1298 __api __check_ret bool iio_channel_is_enabled(const struct iio_channel *chn);
1299 
1300 
1308 __api __check_ret size_t iio_channel_read_raw(const struct iio_channel *chn,
1309  struct iio_buffer *buffer, void *dst, size_t len);
1310 
1311 
1319 __api __check_ret size_t iio_channel_read(const struct iio_channel *chn,
1320  struct iio_buffer *buffer, void *dst, size_t len);
1321 
1322 
1330 __api __check_ret size_t iio_channel_write_raw(const struct iio_channel *chn,
1331  struct iio_buffer *buffer, const void *src, size_t len);
1332 
1333 
1341 __api __check_ret size_t iio_channel_write(const struct iio_channel *chn,
1342  struct iio_buffer *buffer, const void *src, size_t len);
1343 
1344 
1348 __api void iio_channel_set_data(struct iio_channel *chn, void *data);
1349 
1350 
1354 __api void * iio_channel_get_data(const struct iio_channel *chn);
1355 
1356 
1360 __api __check_ret __pure enum iio_chan_type iio_channel_get_type(
1361  const struct iio_channel *chn);
1362 
1363 
1367 __api __check_ret __pure enum iio_modifier iio_channel_get_modifier(
1368  const struct iio_channel *chn);
1369 
1370 /* ------------------------------------------------------------------*/
1372 /* ------------------------- Buffer functions --------------------------------*/
1382 __api __check_ret __pure const struct iio_device * iio_buffer_get_device(
1383  const struct iio_buffer *buf);
1384 
1385 
1395 __api __check_ret struct iio_buffer * iio_device_create_buffer(const struct iio_device *dev,
1396  size_t samples_count, bool cyclic);
1397 
1398 
1403 __api void iio_buffer_destroy(struct iio_buffer *buf);
1404 
1413 __api __check_ret int iio_buffer_get_poll_fd(struct iio_buffer *buf);
1414 
1426 __api __check_ret int iio_buffer_set_blocking_mode(struct iio_buffer *buf, bool blocking);
1427 
1428 
1435 __api __check_ret ssize_t iio_buffer_refill(struct iio_buffer *buf);
1436 
1437 
1444 __api __check_ret ssize_t iio_buffer_push(struct iio_buffer *buf);
1445 
1446 
1454 __api __check_ret ssize_t iio_buffer_push_partial(struct iio_buffer *buf,
1455  size_t samples_count);
1456 
1480 __api void iio_buffer_cancel(struct iio_buffer *buf);
1481 
1482 
1486 __api void * iio_buffer_start(const struct iio_buffer *buf);
1487 
1488 
1504 __api void * iio_buffer_first(const struct iio_buffer *buf,
1505  const struct iio_channel *chn);
1506 
1507 
1512 __api __check_ret ptrdiff_t iio_buffer_step(const struct iio_buffer *buf);
1513 
1514 
1519 __api void * iio_buffer_end(const struct iio_buffer *buf);
1520 
1521 
1533 __api __check_ret ssize_t iio_buffer_foreach_sample(struct iio_buffer *buf,
1534  ssize_t (*callback)(const struct iio_channel *chn,
1535  void *src, size_t bytes, void *d), void *data);
1536 
1537 
1541 __api void iio_buffer_set_data(struct iio_buffer *buf, void *data);
1542 
1543 
1547 __api void * iio_buffer_get_data(const struct iio_buffer *buf);
1548 
1549 /* ------------------------------------------------------------------*/
1551 /* ------------------------- Low-level functions -----------------------------*/
1563  unsigned int length;
1564 
1566  unsigned int bits;
1567 
1569  unsigned int shift;
1570 
1573 
1576 
1578  bool is_be;
1579 
1582 
1584  double scale;
1585 
1587  unsigned int repeat;
1588 };
1589 
1590 
1598 __api __check_ret ssize_t iio_device_get_sample_size(const struct iio_device *dev);
1599 
1600 
1605 __api __check_ret __pure long iio_channel_get_index(const struct iio_channel *chn);
1606 
1607 
1611 __api __check_ret __cnst const struct iio_data_format * iio_channel_get_data_format(
1612  const struct iio_channel *chn);
1613 
1614 
1620 __api void iio_channel_convert(const struct iio_channel *chn,
1621  void *dst, const void *src);
1622 
1623 
1629 __api void iio_channel_convert_inverse(const struct iio_channel *chn,
1630  void *dst, const void *src);
1631 
1632 
1636 __api __check_ret __pure unsigned int iio_device_get_debug_attrs_count(
1637  const struct iio_device *dev);
1638 
1639 
1645 __api __check_ret __pure const char * iio_device_get_debug_attr(
1646  const struct iio_device *dev, unsigned int index);
1647 
1648 
1661 __api __check_ret __pure const char * iio_device_find_debug_attr(
1662  const struct iio_device *dev, const char *name);
1663 
1664 
1687 __api __check_ret ssize_t iio_device_debug_attr_read(const struct iio_device *dev,
1688  const char *attr, char *dst, size_t len);
1689 
1690 
1700 __api __check_ret int iio_device_debug_attr_read_all(struct iio_device *dev,
1701  int (*cb)(struct iio_device *dev, const char *attr,
1702  const char *value, size_t len, void *d),
1703  void *data);
1704 
1705 
1725 __api __check_ret ssize_t iio_device_debug_attr_write(const struct iio_device *dev,
1726  const char *attr, const char *src);
1727 
1728 
1737 __api __check_ret ssize_t iio_device_debug_attr_write_raw(const struct iio_device *dev,
1738  const char *attr, const void *src, size_t len);
1739 
1740 
1750 __api __check_ret int iio_device_debug_attr_write_all(struct iio_device *dev,
1751  ssize_t (*cb)(struct iio_device *dev,
1752  const char *attr, void *buf, size_t len, void *d),
1753  void *data);
1754 
1755 
1763 __api __check_ret int iio_device_debug_attr_read_bool(const struct iio_device *dev,
1764  const char *attr, bool *val);
1765 
1766 
1774 __api __check_ret int iio_device_debug_attr_read_longlong(const struct iio_device *dev,
1775  const char *attr, long long *val);
1776 
1777 
1785 __api __check_ret int iio_device_debug_attr_read_double(const struct iio_device *dev,
1786  const char *attr, double *val);
1787 
1788 
1796 __api __check_ret int iio_device_debug_attr_write_bool(const struct iio_device *dev,
1797  const char *attr, bool val);
1798 
1799 
1807 __api __check_ret int iio_device_debug_attr_write_longlong(const struct iio_device *dev,
1808  const char *attr, long long val);
1809 
1810 
1818 __api __check_ret int iio_device_debug_attr_write_double(const struct iio_device *dev,
1819  const char *attr, double val);
1820 
1821 
1834 __api __check_ret int iio_device_identify_filename(const struct iio_device *dev,
1835  const char *filename, struct iio_channel **chn,
1836  const char **attr);
1837 
1838 
1845 __api __check_ret int iio_device_reg_write(struct iio_device *dev,
1846  uint32_t address, uint32_t value);
1847 
1848 
1855 __api __check_ret int iio_device_reg_read(struct iio_device *dev,
1856  uint32_t address, uint32_t *value);
1857 
1858 
1861 #ifdef __cplusplus
1862 }
1863 #endif
1864 
1865 #undef __api
1866 
1867 #endif /* __IIO_H__ */
__api __check_ret __pure const char * iio_channel_get_name(const struct iio_channel *chn)
Retrieve the channel name (e.g. vccint)
Definition: channel.c:348
__api __check_ret struct iio_context * iio_context_clone(const struct iio_context *ctx)
Duplicate a pre-existing IIO context.
Definition: context.c:320
__api __check_ret ssize_t iio_device_debug_attr_write(const struct iio_device *dev, const char *attr, const char *src)
Set the value of the given debug attribute.
Definition: device.c:790
__api __check_ret int iio_buffer_get_poll_fd(struct iio_buffer *buf)
Get a pollable file descriptor.
Definition: buffer.c:123
__api __check_ret __pure const char * iio_channel_get_id(const struct iio_channel *chn)
Retrieve the channel ID (e.g. voltage0)
Definition: channel.c:343
__api __check_ret int iio_device_attr_write_double(const struct iio_device *dev, const char *attr, double val)
Set the value of the given device-specific attribute.
Definition: device.c:668
__api __check_ret __pure bool iio_channel_is_output(const struct iio_channel *chn)
Return True if the given channel is an output channel.
Definition: channel.c:353
__api __check_ret __pure unsigned int iio_device_get_buffer_attrs_count(const struct iio_device *dev)
Enumerate the buffer-specific attributes of the given device.
Definition: device.c:331
__api __check_ret int iio_channel_attr_write_double(const struct iio_channel *chn, const char *attr, double val)
Set the value of the given channel-specific attribute.
Definition: channel.c:754
__api __check_ret __pure unsigned int iio_context_get_devices_count(const struct iio_context *ctx)
Enumerate the devices found in the given context.
Definition: context.c:228
__api __check_ret __pure bool iio_device_is_trigger(const struct iio_device *dev)
Return True if the given device is a trigger.
Definition: device.c:503
__api __check_ret struct iio_scan_context * iio_create_scan_context(const char *backend, unsigned int flags)
Create a scan context.
Definition: scan.c:139
__api __check_ret int iio_device_attr_read_all(struct iio_device *dev, int(*cb)(struct iio_device *dev, const char *attr, const char *value, size_t len, void *d), void *data)
Read the content of all device-specific attributes.
__api void * iio_buffer_get_data(const struct iio_buffer *buf)
Retrieve a previously associated pointer of an iio_buffer structure.
Definition: buffer.c:313
bool is_be
Contains True if the sample is in big-endian format.
Definition: iio.h:1578
__api void iio_scan_block_destroy(struct iio_scan_block *blk)
Destroy the given scan block.
Definition: scan.c:228
__api void iio_context_destroy(struct iio_context *ctx)
Destroy the given context.
Definition: context.c:203
__api __check_ret __pure const struct iio_device * iio_buffer_get_device(const struct iio_buffer *buf)
Retrieve a pointer to the iio_device structure.
Definition: buffer.c:318
__api void iio_buffer_set_data(struct iio_buffer *buf, void *data)
Associate a pointer to an iio_buffer structure.
Definition: buffer.c:308
__api __check_ret ssize_t iio_buffer_refill(struct iio_buffer *buf)
Fetch more samples from the hardware.
Definition: buffer.c:133
unsigned int bits
Length of valuable data in the sample, in bits.
Definition: iio.h:1566
__api void iio_channel_convert_inverse(const struct iio_channel *chn, void *dst, const void *src)
Convert the sample from host format to hardware format.
Definition: channel.c:609
__api __check_ret __cnst const struct iio_data_format * iio_channel_get_data_format(const struct iio_channel *chn)
Get a pointer to a channel&#39;s data format structure.
Definition: channel.c:440
__api __check_ret __pure unsigned int iio_device_get_debug_attrs_count(const struct iio_device *dev)
Enumerate the debug attributes of the given device.
Definition: device.c:796
__api __check_ret int iio_channel_attr_read_all(struct iio_channel *chn, int(*cb)(struct iio_channel *chn, const char *attr, const char *val, size_t len, void *d), void *data)
Read the content of all channel-specific attributes.
Definition: channel.c:788
__api __check_ret int iio_device_buffer_attr_read_all(struct iio_device *dev, int(*cb)(struct iio_device *dev, const char *attr, const char *value, size_t len, void *d), void *data)
Read the content of all buffer-specific attributes.
__api __check_ret __pure const struct iio_device * iio_channel_get_device(const struct iio_channel *chn)
Retrieve a pointer to the iio_device structure.
Definition: channel.c:890
__api __check_ret int iio_device_set_kernel_buffers_count(const struct iio_device *dev, unsigned int nb_buffers)
Configure the number of kernel buffers for a device.
Definition: device.c:515
__api __check_ret __pure unsigned int iio_device_get_attrs_count(const struct iio_device *dev)
Enumerate the device-specific attributes of the given device.
Definition: device.c:305
__api __check_ret int iio_device_buffer_attr_write_longlong(const struct iio_device *dev, const char *attr, long long val)
Set the value of the given buffer-specific attribute.
Definition: device.c:733
__api __check_ret int iio_device_attr_write_longlong(const struct iio_device *dev, const char *attr, long long val)
Set the value of the given device-specific attribute.
Definition: device.c:656
Represents an input or output channel of a device.
unsigned int length
Total length of the sample, in bits.
Definition: iio.h:1563
__api __check_ret __pure bool iio_channel_is_scan_element(const struct iio_channel *chn)
Return True if the given channel is a scan element.
Definition: channel.c:358
__api __check_ret size_t iio_channel_write_raw(const struct iio_channel *chn, struct iio_buffer *buffer, const void *src, size_t len)
Multiplex the samples of a given channel.
Definition: channel.c:673
__api void * iio_buffer_end(const struct iio_buffer *buf)
Get the address that follows the last sample in a buffer.
Definition: buffer.c:303
__api __check_ret __pure unsigned int iio_channel_get_attrs_count(const struct iio_channel *chn)
Enumerate the channel-specific attributes of the given channel.
Definition: channel.c:373
__api __check_ret ssize_t iio_channel_attr_read(const struct iio_channel *chn, const char *attr, char *dst, size_t len)
Read the content of the given channel-specific attribute.
Definition: channel.c:399
__api __check_ret int iio_device_reg_write(struct iio_device *dev, uint32_t address, uint32_t value)
Set the value of a hardware register.
Definition: device.c:926
__api __check_ret int iio_context_get_attr(const struct iio_context *ctx, unsigned int index, const char **name, const char **value)
Retrieve the name and value of a context-specific attribute.
Definition: context.c:420
__api __check_ret __pure const char * iio_context_info_get_uri(const struct iio_context_info *info)
Get the URI of a discovered context.
Definition: scan.c:41
Represents a device in the IIO context.
__api __check_ret int iio_channel_attr_write_all(struct iio_channel *chn, ssize_t(*cb)(struct iio_channel *chn, const char *attr, void *buf, size_t len, void *d), void *data)
Set the values of all channel-specific attributes.
Definition: channel.c:847
__api __check_ret int iio_channel_attr_read_bool(const struct iio_channel *chn, const char *attr, bool *val)
Read the content of the given channel-specific attribute.
Definition: channel.c:721
__api __check_ret __pure const char * iio_device_get_buffer_attr(const struct iio_device *dev, unsigned int index)
Get the buffer-specific attribute present at the given index.
Definition: device.c:336
__api void iio_scan_context_destroy(struct iio_scan_context *ctx)
Destroy the given scan context.
Definition: scan.c:171
__api __check_ret __pure struct iio_device * iio_context_find_device(const struct iio_context *ctx, const char *name)
Try to find a device structure by its name of ID.
Definition: context.c:242
__api __check_ret __pure struct iio_channel * iio_device_find_channel(const struct iio_device *dev, const char *name, bool output)
Try to find a channel structure by its name of ID.
Definition: device.c:289
__api __check_ret int iio_device_buffer_attr_write_all(struct iio_device *dev, ssize_t(*cb)(struct iio_device *dev, const char *attr, void *buf, size_t len, void *d), void *data)
Set the values of all buffer-specific attributes.
Definition: device.c:1175
__api __check_ret ssize_t iio_device_attr_write_raw(const struct iio_device *dev, const char *attr, const void *src, size_t len)
Set the value of the given device-specific attribute.
Definition: device.c:451
__api __check_ret int iio_device_debug_attr_write_bool(const struct iio_device *dev, const char *attr, bool val)
Set the value of the given debug attribute.
Definition: device.c:874
__api __check_ret struct iio_context * iio_create_context_from_uri(const char *uri)
Create a context from a URI description.
Definition: context.c:330
__api __check_ret int iio_context_get_version(const struct iio_context *ctx, unsigned int *major, unsigned int *minor, char git_tag[8])
Get the version of the backend in use.
Definition: context.c:302
__api __check_ret int iio_device_buffer_attr_read_longlong(const struct iio_device *dev, const char *attr, long long *val)
Read the content of the given buffer-specific attribute.
Definition: device.c:693
__api __check_ret int iio_device_buffer_attr_write_bool(const struct iio_device *dev, const char *attr, bool val)
Set the value of the given buffer-specific attribute.
Definition: device.c:757
__api __check_ret __pure const char * iio_channel_attr_get_filename(const struct iio_channel *chn, const char *attr)
Retrieve the filename of an attribute.
Definition: channel.c:777
iio_modifier
IIO channel modifier.
Definition: iio.h:148
__api __check_ret size_t iio_channel_read_raw(const struct iio_channel *chn, struct iio_buffer *buffer, void *dst, size_t len)
Demultiplex the samples of a given channel.
Definition: channel.c:642
__api __check_ret struct iio_context * iio_create_xml_context(const char *xml_file)
Create a context from a XML file.
Definition: context.c:405
__api __check_ret int iio_device_debug_attr_read_double(const struct iio_device *dev, const char *attr, double *val)
Read the content of the given debug attribute.
Definition: device.c:839
__api __check_ret ssize_t iio_buffer_foreach_sample(struct iio_buffer *buf, ssize_t(*callback)(const struct iio_channel *chn, void *src, size_t bytes, void *d), void *data)
Call the supplied callback for each sample found in a buffer.
__api __check_ret ssize_t iio_scan_context_get_info_list(struct iio_scan_context *ctx, struct iio_context_info ***info)
Enumerate available contexts.
Definition: scan.c:47
__api struct iio_context_info * iio_scan_block_get_info(struct iio_scan_block *blk, unsigned int index)
Get the iio_context_info for a particular context.
Definition: scan.c:198
__api __check_ret ptrdiff_t iio_buffer_step(const struct iio_buffer *buf)
Get the step size between two samples of one channel.
Definition: buffer.c:298
__api void iio_buffer_destroy(struct iio_buffer *buf)
Destroy the given buffer.
Definition: buffer.c:114
__api __check_ret __pure struct iio_channel * iio_device_get_channel(const struct iio_device *dev, unsigned int index)
Get the channel present at the given index.
Definition: device.c:280
__api __check_ret const char * iio_context_get_attr_value(const struct iio_context *ctx, const char *name)
Retrieve the value of a context-specific attribute.
Definition: context.c:433
__api __check_ret ssize_t iio_buffer_push(struct iio_buffer *buf)
Send the samples to the hardware.
Definition: buffer.c:157
__api __check_ret struct iio_context * iio_create_default_context(void)
Create a context from local or remote IIO devices.
Definition: context.c:361
__api __check_ret int iio_device_debug_attr_read_longlong(const struct iio_device *dev, const char *attr, long long *val)
Read the content of the given debug attribute.
Definition: device.c:810
bool is_signed
Contains True if the sample is signed.
Definition: iio.h:1572
__api void * iio_buffer_start(const struct iio_buffer *buf)
Get the start address of the buffer.
Definition: buffer.c:255
unsigned int repeat
Number of times length repeats (added in v0.8)
Definition: iio.h:1587
__api __check_ret struct iio_buffer * iio_device_create_buffer(const struct iio_device *dev, size_t samples_count, bool cyclic)
Create an input or output buffer associated to the given device.
Definition: buffer.c:36
__api ssize_t iio_scan_block_scan(struct iio_scan_block *blk)
Enumerate available contexts via scan block.
Definition: scan.c:190
__api __check_ret __pure enum iio_modifier iio_channel_get_modifier(const struct iio_channel *chn)
Get the modifier type of the given channel.
Definition: channel.c:363
bool with_scale
Contains True if the sample should be scaled when converted.
Definition: iio.h:1581
__api __check_ret int iio_device_debug_attr_write_longlong(const struct iio_device *dev, const char *attr, long long val)
Set the value of the given debug attribute.
Definition: device.c:850
__api __check_ret int iio_device_buffer_attr_read_bool(const struct iio_device *dev, const char *attr, bool *val)
Read the content of the given buffer-specific attribute.
Definition: device.c:710
__api __check_ret __pure const char * iio_context_get_name(const struct iio_context *ctx)
Get the name of the given context.
Definition: context.c:190
__api void * iio_device_get_data(const struct iio_device *dev)
Retrieve a previously associated pointer of an iio_device structure.
Definition: device.c:498
__api __check_ret __pure const char * iio_device_find_buffer_attr(const struct iio_device *dev, const char *name)
Try to find a buffer-specific attribute by its name.
Definition: device.c:345
double scale
Contains the scale to apply if with_scale is set.
Definition: iio.h:1584
__api __check_ret __pure const char * iio_device_get_attr(const struct iio_device *dev, unsigned int index)
Get the device-specific attribute present at the given index.
Definition: device.c:310
__api __check_ret int iio_channel_attr_read_double(const struct iio_channel *chn, const char *attr, double *val)
Read the content of the given channel-specific attribute.
Definition: channel.c:733
__api __check_ret ssize_t iio_device_debug_attr_write_raw(const struct iio_device *dev, const char *attr, const void *src, size_t len)
Set the value of the given debug attribute.
Definition: device.c:780
__api __check_ret ssize_t iio_device_get_sample_size(const struct iio_device *dev)
Get the current sample size.
Definition: device.c:611
__api __check_ret int iio_device_attr_read_longlong(const struct iio_device *dev, const char *attr, long long *val)
Read the content of the given device-specific attribute.
Definition: device.c:616
__api __check_ret size_t iio_channel_write(const struct iio_channel *chn, struct iio_buffer *buffer, const void *src, size_t len)
Convert and multiplex the samples of a given channel.
Definition: channel.c:688
__api __check_ret int iio_device_debug_attr_read_all(struct iio_device *dev, int(*cb)(struct iio_device *dev, const char *attr, const char *value, size_t len, void *d), void *data)
Read the content of all debug attributes.
__api __check_ret __pure const char * iio_device_get_id(const struct iio_device *dev)
Retrieve the device ID (e.g. iio:device0)
Definition: device.c:265
__api __check_ret int iio_device_attr_read_double(const struct iio_device *dev, const char *attr, double *val)
Read the content of the given device-specific attribute.
Definition: device.c:645
__api struct iio_scan_block * iio_create_scan_block(const char *backend, unsigned int flags)
Create a scan block.
Definition: scan.c:208
__api __check_ret __pure const struct iio_context * iio_device_get_context(const struct iio_device *dev)
Retrieve a pointer to the iio_context structure.
Definition: device.c:1191
__api __check_ret int iio_device_identify_filename(const struct iio_device *dev, const char *filename, struct iio_channel **chn, const char **attr)
Identify the channel or debug attribute corresponding to a filename.
Definition: device.c:887
iio_chan_type
IIO channel type.
Definition: iio.h:102
__api __check_ret ssize_t iio_device_debug_attr_read(const struct iio_device *dev, const char *attr, char *dst, size_t len)
Read the content of the given debug attribute.
Definition: device.c:770
__api void * iio_buffer_first(const struct iio_buffer *buf, const struct iio_channel *chn)
Find the first sample of a channel in a buffer.
Definition: buffer.c:260
__api __check_ret __pure const char * iio_device_find_debug_attr(const struct iio_device *dev, const char *name)
Try to find a debug attribute by its name.
Definition: device.c:357
__api void iio_buffer_cancel(struct iio_buffer *buf)
Cancel all buffer operations.
Definition: buffer.c:323
__api __check_ret __pure long iio_channel_get_index(const struct iio_channel *chn)
Get the index of the given channel.
Definition: channel.c:435
__api __check_ret int iio_device_attr_write_all(struct iio_device *dev, ssize_t(*cb)(struct iio_device *dev, const char *attr, void *buf, size_t len, void *d), void *data)
Set the values of all device-specific attributes.
Definition: device.c:1183
__api __check_ret ssize_t iio_device_buffer_attr_write_raw(const struct iio_device *dev, const char *attr, const void *src, size_t len)
Set the value of the given buffer-specific attribute.
Definition: device.c:477
__api void iio_channel_convert(const struct iio_channel *chn, void *dst, const void *src)
Convert the sample from hardware format to host format.
Definition: channel.c:573
__api __check_ret ssize_t iio_channel_attr_write_raw(const struct iio_channel *chn, const char *attr, const void *src, size_t len)
Set the value of the given channel-specific attribute.
Definition: channel.c:409
__api __check_ret int iio_device_attr_read_bool(const struct iio_device *dev, const char *attr, bool *val)
Read the content of the given device-specific attribute.
Definition: device.c:633
__api void * iio_channel_get_data(const struct iio_channel *chn)
Retrieve a previously associated pointer of an iio_channel structure.
Definition: channel.c:430
__api __check_ret ssize_t iio_device_attr_write(const struct iio_device *dev, const char *attr, const char *src)
Set the value of the given device-specific attribute.
Definition: device.c:461
__api __check_ret bool iio_channel_is_enabled(const struct iio_channel *chn)
Returns True if the channel is enabled.
Definition: channel.c:446
__api void iio_channel_set_data(struct iio_channel *chn, void *data)
Associate a pointer to an iio_channel structure.
Definition: channel.c:425
bool is_fully_defined
Contains True if the sample is fully defined, sign extended, etc.
Definition: iio.h:1575
__api void iio_device_set_data(struct iio_device *dev, void *data)
Associate a pointer to an iio_device structure.
Definition: device.c:493
__api __check_ret __pure unsigned int iio_context_get_attrs_count(const struct iio_context *ctx)
Get the number of context-specific attributes.
Definition: context.c:415
__api __check_ret int iio_device_buffer_attr_write_double(const struct iio_device *dev, const char *attr, double val)
Set the value of the given buffer-specific attribute.
Definition: device.c:745
An input or output buffer, used to read or write samples.
__api __check_ret struct iio_context * iio_create_local_context(void)
Create a context from local IIO devices (Linux only)
Definition: context.c:375
__api void iio_strerror(int err, char *dst, size_t len)
Get a string description of an error code.
Definition: utilities.c:207
__api __check_ret ssize_t iio_buffer_push_partial(struct iio_buffer *buf, size_t samples_count)
Send a given number of samples to the hardware.
Definition: buffer.c:193
unsigned int shift
Right-shift to apply when converting sample.
Definition: iio.h:1569
__api __check_ret size_t iio_channel_read(const struct iio_channel *chn, struct iio_buffer *buffer, void *dst, size_t len)
Demultiplex and convert the samples of a given channel.
Definition: channel.c:657
__api __check_ret ssize_t iio_device_buffer_attr_write(const struct iio_device *dev, const char *attr, const char *src)
Set the value of the given buffer-specific attribute.
Definition: device.c:487
__api __check_ret int iio_channel_attr_write_longlong(const struct iio_channel *chn, const char *attr, long long val)
Set the value of the given channel-specific attribute.
Definition: channel.c:744
__api __check_ret __pure const char * iio_device_get_name(const struct iio_device *dev)
Retrieve the device name (e.g. xadc)
Definition: device.c:270
__api __check_ret int iio_device_attr_write_bool(const struct iio_device *dev, const char *attr, bool val)
Set the value of the given device-specific attribute.
Definition: device.c:680
__api __check_ret __pure const char * iio_context_get_xml(const struct iio_context *ctx)
Obtain a XML representation of the given context.
Definition: context.c:185
The information related to a discovered context.
__api void iio_context_info_list_free(struct iio_context_info **info)
Free a context info list.
Definition: scan.c:90
__api __check_ret ssize_t iio_channel_attr_write(const struct iio_channel *chn, const char *attr, const char *src)
Set the value of the given channel-specific attribute.
Definition: channel.c:419
__api __check_ret ssize_t iio_device_buffer_attr_read(const struct iio_device *dev, const char *attr, char *dst, size_t len)
Read the content of the given buffer-specific attribute.
Definition: device.c:467
__api __check_ret int iio_channel_attr_read_longlong(const struct iio_channel *chn, const char *attr, long long *val)
Read the content of the given channel-specific attribute.
Definition: channel.c:704
__api __check_ret __pure const char * iio_device_find_attr(const struct iio_device *dev, const char *name)
Try to find a device-specific attribute by its name.
Definition: device.c:319
__api __check_ret int iio_buffer_set_blocking_mode(struct iio_buffer *buf, bool blocking)
Make iio_buffer_refill() and iio_buffer_push() blocking or not.
Definition: buffer.c:128
__api __check_ret int iio_device_buffer_attr_read_double(const struct iio_device *dev, const char *attr, double *val)
Read the content of the given buffer-specific attribute.
Definition: device.c:722
__api __check_ret __cnst bool iio_has_backend(const char *backend)
Check if the specified backend is available.
Definition: backend.c:75
__api void iio_channel_enable(struct iio_channel *chn)
Enable the given channel.
Definition: channel.c:452
__api __check_ret ssize_t iio_device_attr_read(const struct iio_device *dev, const char *attr, char *dst, size_t len)
Read the content of the given device-specific attribute.
Definition: device.c:441
__api __check_ret __pure struct iio_device * iio_context_get_device(const struct iio_context *ctx, unsigned int index)
Get the device present at the given index.
Definition: context.c:233
__api __check_ret int iio_context_set_timeout(struct iio_context *ctx, unsigned int timeout_ms)
Set a timeout for I/O operations.
Definition: context.c:312
__api void iio_channel_disable(struct iio_channel *chn)
Disable the given channel.
Definition: channel.c:458
__api __check_ret __pure const char * iio_channel_get_attr(const struct iio_channel *chn, unsigned int index)
Get the channel-specific attribute present at the given index.
Definition: channel.c:378
__api __check_ret __cnst unsigned int iio_get_backends_count(void)
Get the number of available backends.
Definition: backend.c:23
__api __check_ret __pure const char * iio_channel_find_attr(const struct iio_channel *chn, const char *name)
Try to find a channel-specific attribute by its name.
Definition: channel.c:387
__api __check_ret int iio_device_set_trigger(const struct iio_device *dev, const struct iio_device *trigger)
Associate a trigger to a given device.
Definition: device.c:537
__api __check_ret __pure unsigned int iio_device_get_channels_count(const struct iio_device *dev)
Enumerate the channels of the given device.
Definition: device.c:275
__api __check_ret int iio_device_debug_attr_write_double(const struct iio_device *dev, const char *attr, double val)
Set the value of the given debug attribute.
Definition: device.c:862
__api __check_ret int iio_device_get_trigger(const struct iio_device *dev, const struct iio_device **trigger)
Retrieve the trigger of a given device.
Definition: device.c:526
__api __check_ret __pure const char * iio_context_get_description(const struct iio_context *ctx)
Get a description of the given context.
Definition: context.c:195
__api void iio_library_get_version(unsigned int *major, unsigned int *minor, char git_tag[8])
Get the version of the libiio library.
Definition: utilities.c:195
__api __check_ret __pure const char * iio_device_get_debug_attr(const struct iio_device *dev, unsigned int index)
Get the debug attribute present at the given index.
Definition: device.c:801
__api __check_ret int iio_device_debug_attr_write_all(struct iio_device *dev, ssize_t(*cb)(struct iio_device *dev, const char *attr, void *buf, size_t len, void *d), void *data)
Set the values of all debug attributes.
Definition: device.c:1167
__api __check_ret struct iio_context * iio_create_network_context(const char *host)
Create a context from the network.
Definition: context.c:385
Contains the format of a data sample.
Definition: iio.h:1561
__api __check_ret int iio_device_reg_read(struct iio_device *dev, uint32_t address, uint32_t *value)
Get the value of a hardware register.
Definition: device.c:939
__api __check_ret __pure enum iio_chan_type iio_channel_get_type(const struct iio_channel *chn)
Get the type of the given channel.
Definition: channel.c:368
__api __check_ret int iio_channel_attr_write_bool(const struct iio_channel *chn, const char *attr, bool val)
Set the value of the given channel-specific attribute.
Definition: channel.c:766
__api __check_ret __cnst const char * iio_get_backend(unsigned int index)
Retrieve the name of a given backend.
Definition: backend.c:46
Contains the representation of an IIO context.
__api __check_ret struct iio_context * iio_create_xml_context_mem(const char *xml, size_t len)
Create a context from XML data in memory.
Definition: context.c:395
__api __check_ret int iio_device_debug_attr_read_bool(const struct iio_device *dev, const char *attr, bool *val)
Read the content of the given debug attribute.
Definition: device.c:827
__api __check_ret __pure const char * iio_context_info_get_description(const struct iio_context_info *info)
Get a description of a discovered context.
Definition: scan.c:35