__api __pure struct iio_channel * iio_device_find_channel(
                const struct iio_device *dev, const char *name, bool output);
__api struct iio_context * iio_create_default_context(void);
__api struct iio_context * iio_create_local_context(void);
__api struct iio_context * iio_create_network_context(const char *host);
__api __pure const char * iio_context_get_name(const struct iio_context *ctx);
__api __pure unsigned int iio_context_get_devices_count(
                const struct iio_context *ctx);
__api __pure struct iio_device * iio_context_find_device(
                const struct iio_context *ctx, const char *name);
__api ssize_t iio_channel_attr_write(const struct iio_channel *chn,
                const char *attr, const char *src);
__api int iio_device_attr_write_longlong(const struct iio_device *dev,
                const char *attr, long long val);
__api struct iio_buffer * iio_device_create_buffer(const struct iio_device *dev,
                size_t samples_count, bool cyclic);
__api int iio_buffer_set_blocking_mode(struct iio_buffer *buf, bool blocking);
__api void iio_buffer_destroy (struct iio_buffer *buf);
__api void iio_context_destroy(struct iio_context *ctx);
__api ssize_t iio_buffer_refill(struct iio_buffer *buf);
__api ptrdiff_t iio_buffer_step(const struct iio_buffer *buf);
__api void * iio_buffer_end(const struct iio_buffer *buf);
__api void * iio_buffer_first(const struct iio_buffer *buf,
                const struct iio_channel *chn);

