linux/drivers/iio/iio_core.h
<<
>>
Prefs
   1/* The industrial I/O core function defs.
   2 *
   3 * Copyright (c) 2008 Jonathan Cameron
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of the GNU General Public License version 2 as published by
   7 * the Free Software Foundation.
   8 *
   9 * These definitions are meant for use only within the IIO core, not individual
  10 * drivers.
  11 */
  12
  13#ifndef _IIO_CORE_H_
  14#define _IIO_CORE_H_
  15#include <linux/kernel.h>
  16#include <linux/device.h>
  17
  18struct iio_chan_spec;
  19struct iio_dev;
  20
  21extern struct device_type iio_device_type;
  22
  23int __iio_add_chan_devattr(const char *postfix,
  24                           struct iio_chan_spec const *chan,
  25                           ssize_t (*func)(struct device *dev,
  26                                           struct device_attribute *attr,
  27                                           char *buf),
  28                           ssize_t (*writefunc)(struct device *dev,
  29                                                struct device_attribute *attr,
  30                                                const char *buf,
  31                                                size_t len),
  32                           u64 mask,
  33                           bool generic,
  34                           struct device *dev,
  35                           struct list_head *attr_list);
  36
  37/* Event interface flags */
  38#define IIO_BUSY_BIT_POS 1
  39
  40#ifdef CONFIG_IIO_BUFFER
  41struct poll_table_struct;
  42
  43unsigned int iio_buffer_poll(struct file *filp,
  44                             struct poll_table_struct *wait);
  45ssize_t iio_buffer_read_first_n_outer(struct file *filp, char __user *buf,
  46                                      size_t n, loff_t *f_ps);
  47
  48
  49#define iio_buffer_poll_addr (&iio_buffer_poll)
  50#define iio_buffer_read_first_n_outer_addr (&iio_buffer_read_first_n_outer)
  51
  52void iio_disable_all_buffers(struct iio_dev *indio_dev);
  53
  54#else
  55
  56#define iio_buffer_poll_addr NULL
  57#define iio_buffer_read_first_n_outer_addr NULL
  58
  59static inline void iio_disable_all_buffers(struct iio_dev *indio_dev) {}
  60
  61#endif
  62
  63int iio_device_register_eventset(struct iio_dev *indio_dev);
  64void iio_device_unregister_eventset(struct iio_dev *indio_dev);
  65int iio_event_getfd(struct iio_dev *indio_dev);
  66
  67#endif
  68