Device Functions

const struct iio_context *iio_device_get_context(const struct iio_device *dev)

Retrieve a pointer to the iio_context structure.

Parameters:

dev – A pointer to an iio_device structure

Returns:

A pointer to an iio_context structure

const char *iio_device_get_id(const struct iio_device *dev)

Retrieve the device ID (e.g. )

Parameters:

dev – A pointer to an iio_device structure

Returns:

A pointer to a static NULL-terminated string

const char *iio_device_get_name(const struct iio_device *dev)

Retrieve the device name (e.g. )

NOTE: if the device has no name, NULL is returned.

Parameters:

dev – A pointer to an iio_device structure

Returns:

A pointer to a static NULL-terminated string

const char *iio_device_get_label(const struct iio_device *dev)

Retrieve the device label (e.g. )

NOTE: if the device has no label, NULL is returned.

Parameters:

dev – A pointer to an iio_device structure

Returns:

A pointer to a static NULL-terminated string

unsigned int iio_device_get_channels_count(const struct iio_device *dev)

Enumerate the channels of the given device.

Parameters:

dev – A pointer to an iio_device structure

Returns:

The number of channels found

unsigned int iio_device_get_attrs_count(const struct iio_device *dev)

Enumerate the device-specific attributes of the given device.

Parameters:

dev – A pointer to an iio_device structure

Returns:

The number of device-specific attributes found

unsigned int iio_device_get_buffers_count(const struct iio_device *dev)

Enumerate the buffers of the given device.

Parameters:

dev – A pointer to an iio_device structure

Returns:

The number of buffers found

struct iio_channel *iio_device_get_channel(const struct iio_device *dev, unsigned int index)

Get the channel present at the given index.

Parameters:
  • dev – A pointer to an iio_device structure

  • index – The index corresponding to the channel

Returns:

On success, a pointer to an iio_channel structure

Returns:

If the index is invalid, NULL is returned

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

Get the device-specific attribute present at the given index.

Parameters:
  • dev – A pointer to an iio_device structure

  • index – The index corresponding to the attribute

Returns:

On success, a pointer to an iio_attr structure

Returns:

If the index is invalid, NULL is returned

struct iio_buffer *iio_device_get_buffer(const struct iio_device *dev, unsigned int index)

Get the buffer present at the given index.

Parameters:
  • dev – A pointer to an iio_device structure

  • index – The index corresponding to the buffer

Returns:

On success, a pointer to an iio_buffer structure

Returns:

If the index is invalid, NULL is returned

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 ID, label or name.

Parameters:
  • dev – A pointer to an iio_device structure

  • name – A NULL-terminated string corresponding to ID, label or name of the channel to search for

  • output – True if the searched channel is output, False otherwise

Returns:

On success, a pointer to an iio_channel structure

Returns:

If the ID, label or name does not correspond to any known channel of the given device, NULL is returned

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

Try to find a device-specific attribute by its name.

NOTE: This function is useful to detect the presence of an attribute. It can also be used to retrieve the name of an attribute as a pointer to a static string from a dynamically allocated string.

Parameters:
  • dev – A pointer to an iio_device structure

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

Returns:

On success, a pointer to an iio_attr structure

Returns:

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

void iio_device_set_data(struct iio_device *dev, void *data)

Associate a pointer to an iio_device structure.

Parameters:
  • dev – A pointer to an iio_device structure

  • data – The pointer to be associated

void *iio_device_get_data(const struct iio_device *dev)

Retrieve a previously associated pointer of an iio_device structure.

Parameters:

dev – A pointer to an iio_device structure

Returns:

The pointer previously associated if present, or NULL

const struct iio_device *iio_device_get_trigger(const struct iio_device *dev)

Retrieve the trigger of a given device.

Parameters:

dev – A pointer to an iio_device structure

Returns:

On success, a pointer to the trigger’s iio_device structure is returned.

Returns:

On failure, a pointer-encoded error is returned. If no trigger has been associated with the given device, the error code will be -ENODEV.

int iio_device_set_trigger(const struct iio_device *dev, const struct iio_device *trigger)

Associate a trigger to a given device.

Parameters:
  • dev – A pointer to an iio_device structure

  • trigger – a pointer to the iio_device structure corresponding to the trigger that should be associated.

Returns:

On success, 0 is returned

Returns:

On error, a negative errno code is returned

bool iio_device_is_trigger(const struct iio_device *dev)

Return True if the given device is a trigger.

Parameters:

dev – A pointer to an iio_device structure

Returns:

True if the device is a trigger, False otherwise

struct iio_device
#include <iio.h>

Represents a device in the IIO context.