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; };
The complete structure is defined ...