aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iio/iio_core.h
diff options
context:
space:
mode:
authorJonathan Cameron <jic23@kernel.org>2012-04-25 10:54:59 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-04-25 14:11:38 -0400
commita980e046098b0a40eaff5e4e7fcde6cf035b7c06 (patch)
tree23375fc2bba39f088974cf621f7abf006d43d087 /drivers/iio/iio_core.h
parent06458e277eac2b8761b0a04d3c808d57be281a2e (diff)
IIO: Move the core files to drivers/iio
Take the core support + the kfifo buffer implentation out of staging. Whilst we are far from done in improving this subsystem it is now at a stage where the userspae interfaces (provided by the core) can be considered stable. Drivers will follow over a longer time scale. Signed-off-by: Jonathan Cameron <jic23@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/iio/iio_core.h')
-rw-r--r--drivers/iio/iio_core.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/drivers/iio/iio_core.h b/drivers/iio/iio_core.h
new file mode 100644
index 000000000000..f652e6ae5a35
--- /dev/null
+++ b/drivers/iio/iio_core.h
@@ -0,0 +1,62 @@
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