linux iio_dev iio_inio 成员

来源:互联网 发布:守望先锋吧被关 知乎 编辑:程序博客网 时间:2024/06/05 06:19

struct iio_dev {intid;intmodes;intcurrentmode;struct devicedev;struct iio_event_interface*event_interface;struct iio_buffer*buffer;struct list_headbuffer_list;intscan_bytes;struct mutexmlock;const unsigned long*available_scan_masks;unsignedmasklength;const unsigned long*active_scan_mask;boolscan_timestamp;unsignedscan_index_timestamp;struct iio_trigger*trig;booltrig_readonly;struct iio_poll_func*pollfunc;struct iio_poll_func*pollfunc_event;struct iio_chan_spec const*channels;intnum_channels;struct list_headchannel_attr_list;struct attribute_groupchan_attr_group;const char*name;const struct iio_info*info;clockid_tclock_id;struct mutexinfo_exist_lock;const struct iio_buffer_setup_ops*setup_ops;struct cdevchrdev;#define IIO_MAX_GROUPS 6const struct attribute_group*groups[IIO_MAX_GROUPS + 1];intgroupcounter;unsigned longflags;#if defined(CONFIG_DEBUG_FS)struct dentry*debugfs_dentry;unsignedcached_reg_addr;#endif};

/**?
struct iio_info {struct module*driver_module;const struct attribute_group*event_attrs;const struct attribute_group*attrs;int (*read_raw)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan,int *val,int *val2,long mask);int (*read_raw_multi)(struct iio_dev *indio_dev,struct iio_chan_spec const *chan,int max_len,int *vals,int *val_len,long mask);int (*read_avail)(struct iio_dev *indio_dev,  struct iio_chan_spec const *chan,  const int **vals,  int *type,  int *length,  long mask);int (*write_raw)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int val, int val2, long mask);int (*write_raw_get_fmt)(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, long mask);int (*read_event_config)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir);int (*write_event_config)(struct iio_dev *indio_dev,  const struct iio_chan_spec *chan,  enum iio_event_type type,  enum iio_event_direction dir,  int state);int (*read_event_value)(struct iio_dev *indio_dev,const struct iio_chan_spec *chan,enum iio_event_type type,enum iio_event_direction dir,enum iio_event_info info, int *val, int *val2);int (*write_event_value)(struct iio_dev *indio_dev, const struct iio_chan_spec *chan, enum iio_event_type type, enum iio_event_direction dir, enum iio_event_info info, int val, int val2);int (*validate_trigger)(struct iio_dev *indio_dev,struct iio_trigger *trig);int (*update_scan_mode)(struct iio_dev *indio_dev,const unsigned long *scan_mask);int (*debugfs_reg_access)(struct iio_dev *indio_dev,  unsigned reg, unsigned writeval,  unsigned *readval);int (*of_xlate)(struct iio_dev *indio_dev,const struct of_phandle_args *iiospec);int (*hwfifo_set_watermark)(struct iio_dev *indio_dev, unsigned val);int (*hwfifo_flush_to_buffer)(struct iio_dev *indio_dev,      unsigned count);};

 
阅读全文
0 0
原创粉丝点击