libiio 0.26
Library for interfacing with IIO devices
Loading...
Searching...
No Matches
iio.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * libiio - Library for interfacing industrial I/O (IIO) devices
4 *
5 * Copyright (C) 2014 Analog Devices, Inc.
6 * Author: Paul Cercueil <paul.cercueil@analog.com>
7 */
8
12#ifndef __IIO_H__
13#define __IIO_H__
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#include <limits.h>
20#include <stdint.h>
21#include <stdlib.h>
22#include <stddef.h>
23
24#if (defined(_WIN32) || defined(__MBED__))
25#ifndef _SSIZE_T_DEFINED
26typedef ptrdiff_t ssize_t;
27#define _SSIZE_T_DEFINED
28#endif
29#else
30#include <sys/types.h>
31#endif
32
33#if defined(_MSC_VER) && (_MSC_VER < 1800) && !defined(__BOOL_DEFINED)
34#undef bool
35#undef false
36#undef true
37#define bool char
38#define false 0
39#define true 1
40#else
41#include <stdbool.h>
42#endif
43
44#if defined(__GNUC__) && !defined(MATLAB_MEX_FILE) && !defined(MATLAB_LOADLIBRARY)
45#ifndef __cnst
46#define __cnst __attribute__((const))
47#endif
48#ifndef __pure
49#define __pure __attribute__((pure))
50#endif
51#define __notused __attribute__((unused))
52#ifdef IIO_CHECK_RET
53#define __check_ret __attribute__((warn_unused_result))
54#else
55#define __check_ret
56#endif
57#else
58#define __cnst
59#define __pure
60#define __notused
61#define __check_ret
62#endif
63
64#ifdef _WIN32
65# ifdef LIBIIO_STATIC
66# define __api
67# elif defined(LIBIIO_EXPORTS)
68# define __api __declspec(dllexport)
69# else
70# define __api __declspec(dllimport)
71# endif
72#elif __GNUC__ >= 4 && !defined(MATLAB_MEX_FILE) && !defined(MATLAB_LOADLIBRARY)
73# define __api __attribute__((visibility ("default")))
74#else
75# define __api
76#endif
77
78struct iio_context;
79struct iio_device;
80struct iio_channel;
81struct iio_buffer;
82
83struct iio_context_info;
84struct iio_scan_context;
85struct iio_scan_block;
86
87/*
88 * <linux/iio/types.h> header guard to protect these enums from being defined
89 * twice
90 */
91#ifndef _IIO_TYPES_H_
92#define _IIO_TYPES_H_
93
102 IIO_VOLTAGE,
103 IIO_CURRENT,
104 IIO_POWER,
105 IIO_ACCEL,
106 IIO_ANGL_VEL,
107 IIO_MAGN,
108 IIO_LIGHT,
109 IIO_INTENSITY,
110 IIO_PROXIMITY,
111 IIO_TEMP,
112 IIO_INCLI,
113 IIO_ROT,
114 IIO_ANGL,
115 IIO_TIMESTAMP,
116 IIO_CAPACITANCE,
117 IIO_ALTVOLTAGE,
118 IIO_CCT,
119 IIO_PRESSURE,
120 IIO_HUMIDITYRELATIVE,
121 IIO_ACTIVITY,
122 IIO_STEPS,
123 IIO_ENERGY,
124 IIO_DISTANCE,
125 IIO_VELOCITY,
126 IIO_CONCENTRATION,
127 IIO_RESISTANCE,
128 IIO_PH,
129 IIO_UVINDEX,
130 IIO_ELECTRICALCONDUCTIVITY,
131 IIO_COUNT,
132 IIO_INDEX,
133 IIO_GRAVITY,
134 IIO_POSITIONRELATIVE,
135 IIO_PHASE,
136 IIO_MASSCONCENTRATION,
137 IIO_CHAN_TYPE_UNKNOWN = INT_MAX
138};
139
148 IIO_NO_MOD,
149 IIO_MOD_X,
150 IIO_MOD_Y,
151 IIO_MOD_Z,
152 IIO_MOD_X_AND_Y,
153 IIO_MOD_X_AND_Z,
154 IIO_MOD_Y_AND_Z,
155 IIO_MOD_X_AND_Y_AND_Z,
156 IIO_MOD_X_OR_Y,
157 IIO_MOD_X_OR_Z,
158 IIO_MOD_Y_OR_Z,
159 IIO_MOD_X_OR_Y_OR_Z,
160 IIO_MOD_LIGHT_BOTH,
161 IIO_MOD_LIGHT_IR,
162 IIO_MOD_ROOT_SUM_SQUARED_X_Y,
163 IIO_MOD_SUM_SQUARED_X_Y_Z,
164 IIO_MOD_LIGHT_CLEAR,
165 IIO_MOD_LIGHT_RED,
166 IIO_MOD_LIGHT_GREEN,
167 IIO_MOD_LIGHT_BLUE,
168 IIO_MOD_QUATERNION,
169 IIO_MOD_TEMP_AMBIENT,
170 IIO_MOD_TEMP_OBJECT,
171 IIO_MOD_NORTH_MAGN,
172 IIO_MOD_NORTH_TRUE,
173 IIO_MOD_NORTH_MAGN_TILT_COMP,
174 IIO_MOD_NORTH_TRUE_TILT_COMP,
175 IIO_MOD_RUNNING,
176 IIO_MOD_JOGGING,
177 IIO_MOD_WALKING,
178 IIO_MOD_STILL,
179 IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
180 IIO_MOD_I,
181 IIO_MOD_Q,
182 IIO_MOD_CO2,
183 IIO_MOD_VOC,
184 IIO_MOD_LIGHT_UV,
185 IIO_MOD_LIGHT_DUV,
186 IIO_MOD_PM1,
187 IIO_MOD_PM2P5,
188 IIO_MOD_PM4,
189 IIO_MOD_PM10,
190 IIO_MOD_ETHANOL,
191 IIO_MOD_H2,
192 IIO_MOD_O2,
193 IIO_MOD_LINEAR_X,
194 IIO_MOD_LINEAR_Y,
195 IIO_MOD_LINEAR_Z,
196 IIO_MOD_PITCH,
197 IIO_MOD_YAW,
198 IIO_MOD_ROLL,
199};
200
209 IIO_EV_TYPE_THRESH,
210 IIO_EV_TYPE_MAG,
211 IIO_EV_TYPE_ROC,
212 IIO_EV_TYPE_THRESH_ADAPTIVE,
213 IIO_EV_TYPE_MAG_ADAPTIVE,
214 IIO_EV_TYPE_CHANGE,
215 IIO_EV_TYPE_MAG_REFERENCED,
216 IIO_EV_TYPE_GESTURE,
217};
218
226 IIO_EV_DIR_EITHER,
227 IIO_EV_DIR_RISING,
228 IIO_EV_DIR_FALLING,
229 IIO_EV_DIR_NONE,
230 IIO_EV_DIR_SINGLETAP,
231 IIO_EV_DIR_DOUBLETAP,
232};
233
234#endif /* _IIO_TYPES_H_ */
235
236/* ---------------------------------------------------------------------------*/
237/* ------------------------- Scan functions ----------------------------------*/
265__api __check_ret struct iio_scan_context * iio_create_scan_context(
266 const char *backend, unsigned int flags);
267
268
273__api void iio_scan_context_destroy(struct iio_scan_context *ctx);
274
275
283__api __check_ret ssize_t iio_scan_context_get_info_list(struct iio_scan_context *ctx,
284 struct iio_context_info ***info);
285
286
290__api void iio_context_info_list_free(struct iio_context_info **info);
291
292
297__api __check_ret __pure const char * iio_context_info_get_description(
298 const struct iio_context_info *info);
299
300
305__api __check_ret __pure const char * iio_context_info_get_uri(
306 const struct iio_context_info *info);
307
308
317__api struct iio_scan_block * iio_create_scan_block(
318 const char *backend, unsigned int flags);
319
320
327__api void iio_scan_block_destroy(struct iio_scan_block *blk);
328
329
336__api ssize_t iio_scan_block_scan(struct iio_scan_block *blk);
337
338
348 struct iio_scan_block *blk, unsigned int index);
349
350
351/* ------------------------------------------------------------------*/
352/* ------------------------- Top-level functions -----------------------------*/
361__api void iio_library_get_version(unsigned int *major,
362 unsigned int *minor, char git_tag[8]);
363
364
370__api void iio_strerror(int err, char *dst, size_t len);
371
372
378__api __check_ret __cnst bool iio_has_backend(const char *backend);
379
380
385__api __check_ret __cnst unsigned int iio_get_backends_count(void);
386
387
394__api __check_ret __cnst const char * iio_get_backend(unsigned int index);
395
396
397/* ------------------------------------------------------------------*/
398/* ------------------------- Context functions -------------------------------*/
412__api __check_ret struct iio_context * iio_create_default_context(void);
413
414
418__api __check_ret struct iio_context * iio_create_local_context(void);
419
420
428__api __check_ret struct iio_context * iio_create_xml_context(const char *xml_file);
429
430
439__api __check_ret struct iio_context * iio_create_xml_context_mem(
440 const char *xml, size_t len);
441
442
447__api __check_ret struct iio_context * iio_create_network_context(const char *host);
448
449
494__api __check_ret struct iio_context * iio_create_context_from_uri(const char *uri);
495
496
505__api __check_ret struct iio_context * iio_context_clone(const struct iio_context *ctx);
506
507
512__api void iio_context_destroy(struct iio_context *ctx);
513
514
522__api __check_ret int iio_context_get_version(const struct iio_context *ctx,
523 unsigned int *major, unsigned int *minor, char git_tag[8]);
524
525
529__api __check_ret __pure const char * iio_context_get_xml(const struct iio_context *ctx);
530
531
539__api __check_ret __pure const char * iio_context_get_name(const struct iio_context *ctx);
540
541
548__api __check_ret __pure const char * iio_context_get_description(
549 const struct iio_context *ctx);
550
551
557__api __check_ret __pure unsigned int iio_context_get_attrs_count(
558 const struct iio_context *ctx);
559
560
570__api __check_ret int iio_context_get_attr(
571 const struct iio_context *ctx, unsigned int index,
572 const char **name, const char **value);
573
574
583__api __check_ret const char * iio_context_get_attr_value(
584 const struct iio_context *ctx, const char *name);
585
586
590__api __check_ret __pure unsigned int iio_context_get_devices_count(
591 const struct iio_context *ctx);
592
593
599__api __check_ret __pure struct iio_device * iio_context_get_device(
600 const struct iio_context *ctx, unsigned int index);
601
602
610__api __check_ret __pure struct iio_device * iio_context_find_device(
611 const struct iio_context *ctx, const char *name);
612
613
621__api __check_ret int iio_context_set_timeout(
622 struct iio_context *ctx, unsigned int timeout_ms);
623
624
625/* ------------------------------------------------------------------*/
626/* ------------------------- Device functions --------------------------------*/
636__api __check_ret __pure const struct iio_context * iio_device_get_context(
637 const struct iio_device *dev);
638
639
643__api __check_ret __pure const char * iio_device_get_id(const struct iio_device *dev);
644
645
651__api __check_ret __pure const char * iio_device_get_name(const struct iio_device *dev);
652
653
659__api __check_ret __pure const char * iio_device_get_label(const struct iio_device *dev);
660
661
665__api __check_ret __pure unsigned int iio_device_get_channels_count(
666 const struct iio_device *dev);
667
668
672__api __check_ret __pure unsigned int iio_device_get_attrs_count(
673 const struct iio_device *dev);
674
678__api __check_ret __pure unsigned int iio_device_get_buffer_attrs_count(
679 const struct iio_device *dev);
680
686__api __check_ret __pure struct iio_channel * iio_device_get_channel(
687 const struct iio_device *dev, unsigned int index);
688
689
695__api __check_ret __pure const char * iio_device_get_attr(
696 const struct iio_device *dev, unsigned int index);
697
703__api __check_ret __pure const char * iio_device_get_buffer_attr(
704 const struct iio_device *dev, unsigned int index);
705
714__api __check_ret __pure struct iio_channel * iio_device_find_channel(
715 const struct iio_device *dev, const char *name, bool output);
716
717
729__api __check_ret __pure const char * iio_device_find_attr(
730 const struct iio_device *dev, const char *name);
731
743__api __check_ret __pure const char * iio_device_find_buffer_attr(
744 const struct iio_device *dev, const char *name);
745
767__api __check_ret ssize_t iio_device_attr_read(const struct iio_device *dev,
768 const char *attr, char *dst, size_t len);
769
770
781__api __check_ret int iio_device_attr_read_all(struct iio_device *dev,
782 int (*cb)(struct iio_device *dev, const char *attr,
783 const char *value, size_t len, void *d),
784 void *data);
785
786
794__api __check_ret int iio_device_attr_read_bool(const struct iio_device *dev,
795 const char *attr, bool *val);
796
797
805__api __check_ret int iio_device_attr_read_longlong(const struct iio_device *dev,
806 const char *attr, long long *val);
807
808
816__api __check_ret int iio_device_attr_read_double(const struct iio_device *dev,
817 const char *attr, double *val);
818
819
838__api __check_ret ssize_t iio_device_attr_write(const struct iio_device *dev,
839 const char *attr, const char *src);
840
841
850__api __check_ret ssize_t iio_device_attr_write_raw(const struct iio_device *dev,
851 const char *attr, const void *src, size_t len);
852
853
864__api __check_ret int iio_device_attr_write_all(struct iio_device *dev,
865 ssize_t (*cb)(struct iio_device *dev,
866 const char *attr, void *buf, size_t len, void *d),
867 void *data);
868
869
877__api __check_ret int iio_device_attr_write_bool(const struct iio_device *dev,
878 const char *attr, bool val);
879
880
888__api __check_ret int iio_device_attr_write_longlong(const struct iio_device *dev,
889 const char *attr, long long val);
890
891
899__api __check_ret int iio_device_attr_write_double(const struct iio_device *dev,
900 const char *attr, double val);
901
924__api __check_ret ssize_t iio_device_buffer_attr_read(const struct iio_device *dev,
925 const char *attr, char *dst, size_t len);
926
937__api __check_ret int iio_device_buffer_attr_read_all(struct iio_device *dev,
938 int (*cb)(struct iio_device *dev, const char *attr,
939 const char *value, size_t len, void *d),
940 void *data);
941
942
950__api __check_ret int iio_device_buffer_attr_read_bool(const struct iio_device *dev,
951 const char *attr, bool *val);
952
953
961__api __check_ret int iio_device_buffer_attr_read_longlong(const struct iio_device *dev,
962 const char *attr, long long *val);
963
964
972__api __check_ret int iio_device_buffer_attr_read_double(const struct iio_device *dev,
973 const char *attr, double *val);
974
975
995__api __check_ret ssize_t iio_device_buffer_attr_write(const struct iio_device *dev,
996 const char *attr, const char *src);
997
998
1007__api __check_ret ssize_t iio_device_buffer_attr_write_raw(const struct iio_device *dev,
1008 const char *attr, const void *src, size_t len);
1009
1010
1021__api __check_ret int iio_device_buffer_attr_write_all(struct iio_device *dev,
1022 ssize_t (*cb)(struct iio_device *dev,
1023 const char *attr, void *buf, size_t len, void *d),
1024 void *data);
1025
1026
1034__api __check_ret int iio_device_buffer_attr_write_bool(const struct iio_device *dev,
1035 const char *attr, bool val);
1036
1037
1045__api __check_ret int iio_device_buffer_attr_write_longlong(const struct iio_device *dev,
1046 const char *attr, long long val);
1047
1048
1056__api __check_ret int iio_device_buffer_attr_write_double(const struct iio_device *dev,
1057 const char *attr, double val);
1058
1059
1063__api void iio_device_set_data(struct iio_device *dev, void *data);
1064
1065
1069__api void * iio_device_get_data(const struct iio_device *dev);
1070
1071
1079__api __check_ret int iio_device_get_trigger(const struct iio_device *dev,
1080 const struct iio_device **trigger);
1081
1082
1089__api __check_ret int iio_device_set_trigger(const struct iio_device *dev,
1090 const struct iio_device *trigger);
1091
1092
1096__api __check_ret __pure bool iio_device_is_trigger(const struct iio_device *dev);
1097
1105__api __check_ret int iio_device_set_kernel_buffers_count(const struct iio_device *dev,
1106 unsigned int nb_buffers);
1107
1108/* ------------------------------------------------------------------*/
1109/* ------------------------- Channel functions -------------------------------*/
1119__api __check_ret __pure const struct iio_device * iio_channel_get_device(
1120 const struct iio_channel *chn);
1121
1122
1126__api __check_ret __pure const char * iio_channel_get_id(const struct iio_channel *chn);
1127
1128
1134__api __check_ret __pure const char * iio_channel_get_name(const struct iio_channel *chn);
1135
1136
1140__api __check_ret __pure bool iio_channel_is_output(const struct iio_channel *chn);
1141
1142
1150__api __check_ret __pure bool iio_channel_is_scan_element(const struct iio_channel *chn);
1151
1152
1156__api __check_ret __pure unsigned int iio_channel_get_attrs_count(
1157 const struct iio_channel *chn);
1158
1159
1165__api __check_ret __pure const char * iio_channel_get_attr(
1166 const struct iio_channel *chn, unsigned int index);
1167
1168
1180__api __check_ret __pure const char * iio_channel_find_attr(
1181 const struct iio_channel *chn, const char *name);
1182
1183
1190__api __check_ret __pure const char * iio_channel_attr_get_filename(
1191 const struct iio_channel *chn, const char *attr);
1192
1193
1215__api __check_ret ssize_t iio_channel_attr_read(const struct iio_channel *chn,
1216 const char *attr, char *dst, size_t len);
1217
1218
1229__api __check_ret int iio_channel_attr_read_all(struct iio_channel *chn,
1230 int (*cb)(struct iio_channel *chn,
1231 const char *attr, const char *val, size_t len, void *d),
1232 void *data);
1233
1234
1242__api __check_ret int iio_channel_attr_read_bool(const struct iio_channel *chn,
1243 const char *attr, bool *val);
1244
1245
1253__api __check_ret int iio_channel_attr_read_longlong(const struct iio_channel *chn,
1254 const char *attr, long long *val);
1255
1256
1264__api __check_ret int iio_channel_attr_read_double(const struct iio_channel *chn,
1265 const char *attr, double *val);
1266
1267
1286__api __check_ret ssize_t iio_channel_attr_write(const struct iio_channel *chn,
1287 const char *attr, const char *src);
1288
1289
1298__api __check_ret ssize_t iio_channel_attr_write_raw(const struct iio_channel *chn,
1299 const char *attr, const void *src, size_t len);
1300
1301
1312__api __check_ret int iio_channel_attr_write_all(struct iio_channel *chn,
1313 ssize_t (*cb)(struct iio_channel *chn,
1314 const char *attr, void *buf, size_t len, void *d),
1315 void *data);
1316
1317
1325__api __check_ret int iio_channel_attr_write_bool(const struct iio_channel *chn,
1326 const char *attr, bool val);
1327
1328
1336__api __check_ret int iio_channel_attr_write_longlong(const struct iio_channel *chn,
1337 const char *attr, long long val);
1338
1339
1347__api __check_ret int iio_channel_attr_write_double(const struct iio_channel *chn,
1348 const char *attr, double val);
1349
1350
1357__api void iio_channel_enable(struct iio_channel *chn);
1358
1359
1362__api void iio_channel_disable(struct iio_channel *chn);
1363
1364
1368__api __check_ret bool iio_channel_is_enabled(const struct iio_channel *chn);
1369
1370
1378__api __check_ret size_t iio_channel_read_raw(const struct iio_channel *chn,
1379 struct iio_buffer *buffer, void *dst, size_t len);
1380
1381
1389__api __check_ret size_t iio_channel_read(const struct iio_channel *chn,
1390 struct iio_buffer *buffer, void *dst, size_t len);
1391
1392
1400__api __check_ret size_t iio_channel_write_raw(const struct iio_channel *chn,
1401 struct iio_buffer *buffer, const void *src, size_t len);
1402
1403
1411__api __check_ret size_t iio_channel_write(const struct iio_channel *chn,
1412 struct iio_buffer *buffer, const void *src, size_t len);
1413
1414
1418__api void iio_channel_set_data(struct iio_channel *chn, void *data);
1419
1420
1424__api void * iio_channel_get_data(const struct iio_channel *chn);
1425
1426
1430__api __check_ret __pure enum iio_chan_type iio_channel_get_type(
1431 const struct iio_channel *chn);
1432
1433
1437__api __check_ret __pure enum iio_modifier iio_channel_get_modifier(
1438 const struct iio_channel *chn);
1439
1440
1441/* ------------------------------------------------------------------*/
1442/* ------------------------- Buffer functions --------------------------------*/
1452__api __check_ret __pure const struct iio_device * iio_buffer_get_device(
1453 const struct iio_buffer *buf);
1454
1455
1465__api __check_ret struct iio_buffer * iio_device_create_buffer(const struct iio_device *dev,
1466 size_t samples_count, bool cyclic);
1467
1468
1473__api void iio_buffer_destroy(struct iio_buffer *buf);
1474
1483__api __check_ret int iio_buffer_get_poll_fd(struct iio_buffer *buf);
1484
1496__api __check_ret int iio_buffer_set_blocking_mode(struct iio_buffer *buf, bool blocking);
1497
1498
1505__api __check_ret ssize_t iio_buffer_refill(struct iio_buffer *buf);
1506
1507
1514__api __check_ret ssize_t iio_buffer_push(struct iio_buffer *buf);
1515
1516
1524__api __check_ret ssize_t iio_buffer_push_partial(struct iio_buffer *buf,
1525 size_t samples_count);
1526
1550__api void iio_buffer_cancel(struct iio_buffer *buf);
1551
1552
1556__api void * iio_buffer_start(const struct iio_buffer *buf);
1557
1558
1574__api void * iio_buffer_first(const struct iio_buffer *buf,
1575 const struct iio_channel *chn);
1576
1577
1582__api __check_ret ptrdiff_t iio_buffer_step(const struct iio_buffer *buf);
1583
1584
1589__api void * iio_buffer_end(const struct iio_buffer *buf);
1590
1591
1603__api __check_ret ssize_t iio_buffer_foreach_sample(struct iio_buffer *buf,
1604 ssize_t (*callback)(const struct iio_channel *chn,
1605 void *src, size_t bytes, void *d), void *data);
1606
1607
1611__api void iio_buffer_set_data(struct iio_buffer *buf, void *data);
1612
1613
1617__api void * iio_buffer_get_data(const struct iio_buffer *buf);
1618
1619/* ------------------------------------------------------------------*/
1620/* ---------------------------- HWMON support --------------------------------*/
1634 HWMON_VOLTAGE,
1635 HWMON_FAN,
1636 HWMON_PWM,
1637 HWMON_TEMP,
1638 HWMON_CURRENT,
1639 HWMON_POWER,
1640 HWMON_ENERGY,
1641 HWMON_HUMIDITY,
1642 HWMON_INTRUSION,
1643 HWMON_CHAN_TYPE_UNKNOWN = IIO_CHAN_TYPE_UNKNOWN,
1644};
1645
1650static inline enum hwmon_chan_type
1651hwmon_channel_get_type(const struct iio_channel *chn)
1652{
1653 return (enum hwmon_chan_type) iio_channel_get_type(chn);
1654}
1655
1661static inline bool iio_device_is_hwmon(const struct iio_device *dev)
1662{
1663 const char *id = iio_device_get_id(dev);
1664
1665 return id[0] == 'h';
1666}
1667
1668
1669/* ------------------------------------------------------------------*/
1670/* ------------------------- Low-level functions -----------------------------*/
1682 unsigned int length;
1683
1685 unsigned int bits;
1686
1688 unsigned int shift;
1689
1692
1695
1697 bool is_be;
1698
1701
1703 double scale;
1704
1706 unsigned int repeat;
1707};
1708
1709
1717__api __check_ret ssize_t iio_device_get_sample_size(const struct iio_device *dev);
1718
1719
1724__api __check_ret __pure long iio_channel_get_index(const struct iio_channel *chn);
1725
1726
1730__api __check_ret __cnst const struct iio_data_format * iio_channel_get_data_format(
1731 const struct iio_channel *chn);
1732
1733
1739__api void iio_channel_convert(const struct iio_channel *chn,
1740 void *dst, const void *src);
1741
1742
1748__api void iio_channel_convert_inverse(const struct iio_channel *chn,
1749 void *dst, const void *src);
1750
1751
1755__api __check_ret __pure unsigned int iio_device_get_debug_attrs_count(
1756 const struct iio_device *dev);
1757
1758
1764__api __check_ret __pure const char * iio_device_get_debug_attr(
1765 const struct iio_device *dev, unsigned int index);
1766
1767
1780__api __check_ret __pure const char * iio_device_find_debug_attr(
1781 const struct iio_device *dev, const char *name);
1782
1783
1806__api __check_ret ssize_t iio_device_debug_attr_read(const struct iio_device *dev,
1807 const char *attr, char *dst, size_t len);
1808
1809
1819__api __check_ret int iio_device_debug_attr_read_all(struct iio_device *dev,
1820 int (*cb)(struct iio_device *dev, const char *attr,
1821 const char *value, size_t len, void *d),
1822 void *data);
1823
1824
1844__api __check_ret ssize_t iio_device_debug_attr_write(const struct iio_device *dev,
1845 const char *attr, const char *src);
1846
1847
1856__api __check_ret ssize_t iio_device_debug_attr_write_raw(const struct iio_device *dev,
1857 const char *attr, const void *src, size_t len);
1858
1859
1869__api __check_ret int iio_device_debug_attr_write_all(struct iio_device *dev,
1870 ssize_t (*cb)(struct iio_device *dev,
1871 const char *attr, void *buf, size_t len, void *d),
1872 void *data);
1873
1874
1882__api __check_ret int iio_device_debug_attr_read_bool(const struct iio_device *dev,
1883 const char *attr, bool *val);
1884
1885
1893__api __check_ret int iio_device_debug_attr_read_longlong(const struct iio_device *dev,
1894 const char *attr, long long *val);
1895
1896
1904__api __check_ret int iio_device_debug_attr_read_double(const struct iio_device *dev,
1905 const char *attr, double *val);
1906
1907
1915__api __check_ret int iio_device_debug_attr_write_bool(const struct iio_device *dev,
1916 const char *attr, bool val);
1917
1918
1926__api __check_ret int iio_device_debug_attr_write_longlong(const struct iio_device *dev,
1927 const char *attr, long long val);
1928
1929
1937__api __check_ret int iio_device_debug_attr_write_double(const struct iio_device *dev,
1938 const char *attr, double val);
1939
1940
1953__api __check_ret int iio_device_identify_filename(const struct iio_device *dev,
1954 const char *filename, struct iio_channel **chn,
1955 const char **attr);
1956
1957
1964__api __check_ret int iio_device_reg_write(struct iio_device *dev,
1965 uint32_t address, uint32_t value);
1966
1967
1974__api __check_ret int iio_device_reg_read(struct iio_device *dev,
1975 uint32_t address, uint32_t *value);
1976
1977
1980#ifdef __cplusplus
1981}
1982#endif
1983
1984#undef __api
1985
1986#endif /* __IIO_H__ */
__api void iio_buffer_set_data(struct iio_buffer *buf, void *data)
Associate a pointer to an iio_buffer structure.
Definition buffer.c:298
__api void iio_buffer_cancel(struct iio_buffer *buf)
Cancel all buffer operations.
Definition buffer.c:313
__api void * iio_buffer_end(const struct iio_buffer *buf)
Get the address that follows the last sample in a buffer.
Definition buffer.c:293
__api __check_ret int iio_buffer_get_poll_fd(struct iio_buffer *buf)
Get a pollable file descriptor.
Definition buffer.c:113
__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:183
__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:288
__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.
Definition buffer.c:194
__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:26
__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:308
__api void iio_buffer_destroy(struct iio_buffer *buf)
Destroy the given buffer.
Definition buffer.c:104
__api __check_ret ssize_t iio_buffer_refill(struct iio_buffer *buf)
Fetch more samples from the hardware.
Definition buffer.c:123
__api void * iio_buffer_start(const struct iio_buffer *buf)
Get the start address of the buffer.
Definition buffer.c:245
__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:250
__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:118
__api void * iio_buffer_get_data(const struct iio_buffer *buf)
Retrieve a previously associated pointer of an iio_buffer structure.
Definition buffer.c:303
__api __check_ret ssize_t iio_buffer_push(struct iio_buffer *buf)
Send the samples to the hardware.
Definition buffer.c:147
__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:318
__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:689
__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:333
__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:328
__api void iio_channel_enable(struct iio_channel *chn)
Enable the given channel.
Definition channel.c:452
__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:387
__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:762
__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:706
__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:658
__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 __pure bool iio_channel_is_output(const struct iio_channel *chn)
Return True if the given channel is an output channel.
Definition channel.c:313
__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 __pure enum iio_modifier iio_channel_get_modifier(const struct iio_channel *chn)
Get the modifier type of the given channel.
Definition channel.c:323
__api void iio_channel_set_data(struct iio_channel *chn, void *data)
Associate a pointer to an iio_channel structure.
Definition channel.c:425
__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:673
__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:642
__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:832
__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:718
__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:875
__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:751
__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:338
__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:303
__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:773
__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:361
__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:729
__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:308
__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:403
__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:627
__api void iio_channel_disable(struct iio_channel *chn)
Disable the given channel.
Definition channel.c:458
__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:739
__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 __check_ret struct iio_context * iio_create_default_context(void)
Create a context from local or remote IIO devices.
Definition context.c:415
__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:250
__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 ID, label or name.
Definition context.c:294
__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:355
__api __check_ret struct iio_context * iio_create_local_context(void)
Create a context from local IIO devices (Linux only)
Definition context.c:429
__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:470
__api __check_ret struct iio_context * iio_create_context_from_uri(const char *uri)
Create a context from a URI description.
Definition context.c:394
__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:240
__api __check_ret struct iio_context * iio_context_clone(const struct iio_context *ctx)
Duplicate a pre-existing IIO context.
Definition context.c:384
__api __check_ret struct iio_context * iio_create_network_context(const char *host)
Create a context from the network.
Definition context.c:438
__api void iio_context_destroy(struct iio_context *ctx)
Destroy the given context.
Definition context.c:258
__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:447
__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:285
__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:465
__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:280
__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:245
__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:376
__api __check_ret struct iio_context * iio_create_xml_context(const char *xml_file)
Create a context from a XML file.
Definition context.c:456
__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:483
__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:708
__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:795
__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:652
__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.
Definition device.c:1012
__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:719
__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:731
__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:743
__api __check_ret ssize_t iio_device_get_sample_size(const struct iio_device *dev)
Get the current sample size.
Definition device.c:483
__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:1036
__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:673
__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:808
__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:756
__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:228
__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:642
__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'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:668
__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:696
__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:662
__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:598
__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:566
__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_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:679
__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:216
__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:488
__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:617
__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:1060
__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:128
__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:316
__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:194
__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:157
__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:402
__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:1044
__api __check_ret __pure const char * iio_device_get_label(const struct iio_device *dev)
Retrieve the device label (e.g. lo_pll0_rx_adf4351)
Definition device.c:138
__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:629
__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:528
__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:199
__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:594
__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:222
__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.
Definition device.c:1028
__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:211
__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:368
__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:352
__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:380
__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:582
__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:505
__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:342
__api void * iio_device_get_data(const struct iio_device *dev)
Retrieve a previously associated pointer of an iio_device structure.
Definition device.c:363
__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:552
__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:205
__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:332
__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:326
__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.
Definition device.c:1020
__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:517
__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:148
__api void iio_device_set_data(struct iio_device *dev, void *data)
Associate a pointer to an iio_device structure.
Definition device.c:358
__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:133
__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:605
__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:540
__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:1052
__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:143
__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:391
__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:565
__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:306
hwmon_chan_type
Hwmon channel type.
Definition iio.h:1633
__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:27
__api struct iio_scan_block * iio_create_scan_block(const char *backend, unsigned int flags)
Create a scan block.
Definition scan.c:218
__api void iio_context_info_list_free(struct iio_context_info **info)
Free a context info list.
Definition scan.c:103
__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:33
__api void iio_scan_context_destroy(struct iio_scan_context *ctx)
Destroy the given scan context.
Definition scan.c:188
__api void iio_scan_block_destroy(struct iio_scan_block *blk)
Destroy the given scan block.
Definition scan.c:238
__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:208
__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 ssize_t iio_scan_block_scan(struct iio_scan_block *blk)
Enumerate available contexts via scan block.
Definition scan.c:200
__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:21
__api void iio_strerror(int err, char *dst, size_t len)
Get a string description of an error code.
Definition utilities.c:204
__api __check_ret __cnst const char * iio_get_backend(unsigned int index)
Retrieve the name of a given backend.
Definition backend.c:27
__api __check_ret __cnst bool iio_has_backend(const char *backend)
Check if the specified backend is available.
Definition backend.c:62
__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:192
__api __check_ret __cnst unsigned int iio_get_backends_count(void)
Get the number of available backends.
Definition backend.c:14
iio_event_type
IIO event type.
Definition iio.h:208
iio_chan_type
IIO channel type.
Definition iio.h:101
iio_event_direction
IIO event direction.
Definition iio.h:225
iio_modifier
IIO channel modifier.
Definition iio.h:147
An input or output buffer, used to read or write samples.
Represents an input or output channel of a device.
The information related to a discovered context.
Contains the representation of an IIO context.
Contains the format of a data sample.
Definition iio.h:1680
bool is_signed
Contains True if the sample is signed.
Definition iio.h:1691
bool is_be
Contains True if the sample is in big-endian format.
Definition iio.h:1697
bool with_scale
Contains True if the sample should be scaled when converted.
Definition iio.h:1700
double scale
Contains the scale to apply if with_scale is set.
Definition iio.h:1703
unsigned int repeat
Number of times length repeats (added in v0.8)
Definition iio.h:1706
unsigned int length
Total length of the sample, in bits.
Definition iio.h:1682
bool is_fully_defined
Contains True if the sample is fully defined, sign extended, etc.
Definition iio.h:1694
unsigned int shift
Right-shift to apply when converting sample.
Definition iio.h:1688
unsigned int bits
Length of valuable data in the sample, in bits.
Definition iio.h:1685
Represents a device in the IIO context.