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
  21
  22int __iio_add_chan_devattr(const char *postfix,
  23                           struct iio_chan_spec const *chan,
  24                           ssize_t (*func)(struct device *dev,
  25                                           struct device_attribute *attr,
  26                                           char *buf),
  27                           ssize_t (*writefunc)(struct device *dev,
  28                                                struct device_attribute *attr,
  29                                                const char *buf,
  30                                                size_t len),
  31                           u64 mask,
  32                           bool generic,
  33                           struct device *dev,
  34                           struct list_head *attr_list);
  35
  36/* Event interface flags */
  37#define IIO_BUSY_BIT_POS 1
  38
  39#ifdef CONFIG_IIO_BUFFER
  40struct poll_table_struct;
  41
  42unsigned int iio_buffer_poll(struct file *filp,
  43                             struct poll_table_struct *wait);
  44ssize_t iio_buffer_read_first_n_outer(struct file *filp, char __user *buf,
  45                                      size_t n, loff_t *f_ps);
  46
  47
  48#define iio_buffer_poll_addr (&iio_buffer_poll)
  49#define iio_buffer_read_first_n_outer_addr (&iio_buffer_read_first_n_outer)
  50
  51#else
  52
  53#define iio_buffer_poll_addr NULL
  54#define iio_buffer_read_first_n_outer_addr NULL
  55
  56#endif
  57
  58int iio_device_register_eventset(struct iio_dev *indio_dev);
  59void iio_device_unregister_eventset(struct iio_dev *indio_dev);
  60int iio_event_getfd(struct iio_dev *indio_dev);
  61
  62#endif
  63