Debug and Low-Level Functions

struct iio_channels_mask *iio_create_channels_mask(unsigned int nb_channels)

Create a new empty channels mask.

Parameters:

nb_channels – The number of channels in the mask

Returns:

On success, a pointer to an iio_channels_mask structure

Returns:

On error, NULL is returned

void iio_channels_mask_destroy(struct iio_channels_mask *mask)

Destroy a channels mask.

Parameters:

mask – A pointer to an iio_channels_mask structure

ssize_t iio_device_get_sample_size(const struct iio_device *dev, const struct iio_channels_mask *mask)

Get the current sample size.

NOTE: The sample size is not constant and will change when channels get enabled or disabled.

Parameters:
  • dev – A pointer to an iio_device structure

  • mask – A pointer to an iio_channels_mask structure.

Returns:

On success, the sample size in bytes

Returns:

On error, a negative errno code is returned

long iio_channel_get_index(const struct iio_channel *chn)

Get the index of the given channel.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

On success, the index of the specified channel

Returns:

On error, a negative errno code is returned

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.

Parameters:

chn – A pointer to an iio_channel structure

Returns:

A pointer to the channel’s iio_data_format structure

void iio_channel_convert(const struct iio_channel *chn, void *dst, const void *src)

Convert the sample from hardware format to host format.

Parameters:
  • chn – A pointer to an iio_channel structure

  • dst – A pointer to the destination buffer where the converted sample should be written

  • src – A pointer to the source buffer containing the sample

void iio_channel_convert_inverse(const struct iio_channel *chn, void *dst, const void *src)

Convert the sample from host format to hardware format.

Parameters:
  • chn – A pointer to an iio_channel structure

  • dst – A pointer to the destination buffer where the converted sample should be written

  • src – A pointer to the source buffer containing the sample

unsigned int iio_device_get_event_attrs_count(const struct iio_device *dev)

Enumerate the event attributes of the given device.

Parameters:

dev – A pointer to an iio_device structure

Returns:

The number of event attributes found

const struct iio_attr *iio_device_get_event_attr(const struct iio_device *dev, unsigned int index)

Get the event attribute present at the given index.

Parameters:
  • dev – A pointer to an iio_device structure

  • index – The index corresponding to the event attribute

Returns:

On success, a pointer to an iio_attr structure

Returns:

If the index is invalid, NULL is returned

const struct iio_attr *iio_device_find_event_attr(const struct iio_device *dev, const char *name)

Try to find an event attribute by its name.

Parameters:
  • dev – A pointer to an iio_device structure

  • name – A NULL-terminated string corresponding to the name of the event attribute

Returns:

On success, a pointer to an iio_attr structure

Returns:

If the name does not correspond to any known event attribute of the given device, NULL is returned

unsigned int iio_device_get_debug_attrs_count(const struct iio_device *dev)

Enumerate the debug attributes of the given device.

Parameters:

dev – A pointer to an iio_device structure

Returns:

The number of debug attributes found

const struct iio_attr *iio_device_get_debug_attr(const struct iio_device *dev, unsigned int index)

Get the debug attribute present at the given index.

Parameters:
  • dev – A pointer to an iio_device structure

  • index – The index corresponding to the debug attribute

Returns:

On success, a pointer to a static NULL-terminated string

Returns:

If the index is invalid, NULL is returned

const struct iio_attr *iio_device_find_debug_attr(const struct iio_device *dev, const char *name)

Try to find a debug attribute by its name.

Parameters:
  • dev – A pointer to an iio_device structure

  • name – A NULL-terminated string corresponding to the name of the debug attribute

Returns:

On success, a pointer to a static NULL-terminated string

Returns:

If the name does not correspond to any known debug attribute of the given device, NULL is returned

int iio_device_reg_write(struct iio_device *dev, uint32_t address, uint32_t value)

Set the value of a hardware register.

Parameters:
  • dev – A pointer to an iio_device structure

  • address – The address of the register

  • value – The value to set the register to

Returns:

On success, 0 is returned

Returns:

On error, a negative errno code is returned

int iio_device_reg_read(struct iio_device *dev, uint32_t address, uint32_t *value)

Get the value of a hardware register.

Parameters:
  • dev – A pointer to an iio_device structure

  • address – The address of the register

  • value – A pointer to the variable where the value will be written

Returns:

On success, 0 is returned

Returns:

On error, a negative errno code is returned

struct iio_data_format
#include <iio.h>

Contains the format of a data sample.

The different fields inform about the correct way to convert one sample from its raw format (as read from / generated by the hardware) to its real-world value.