IIO data structures
An IIO device is represented in the kernel as an instance of struct iio_dev
, and described by a struct iio_info
structure. All of the important IIO structures are defined in include/linux/iio/iio.h
.
iio_dev structure
This structure represents the IIO device, describing the device and the driver. It tells us about:
- How many channels are available on the device
- What modes can the device operate in: one-shot, triggered buffer
- What hooks are available for this driver
struct iio_dev { [...] int modes; int currentmode; struct device dev; struct iio_buffer *buffer; int scan_bytes; const unsigned long *available_scan_masks; const unsigned long *active_scan_mask; bool scan_timestamp; struct iio_trigger *trig; struct iio_poll_func *pollfunc; struct iio_chan_spec const *channels; int num_channels; const char *name; const struct iio_info *info; const struct iio_buffer_setup_ops *setup_ops; struct cdev chrdev; ...