#include <linux/anon_inodes.h>
#include <linux/device.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/kfifo.h>
#include <linux/module.h>
#include <linux/poll.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/wait.h>
#include <linux/iio/iio.h>
#include <linux/iio/iio-opaque.h>
#include "iio_core.h"
#include <linux/iio/sysfs.h>
#include <linux/iio/events.h>
struct iio_event_interface { … };
bool iio_event_enabled(const struct iio_event_interface *ev_int)
{ … }
int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp)
{ … }
EXPORT_SYMBOL(…);
static __poll_t iio_event_poll(struct file *filep,
struct poll_table_struct *wait)
{ … }
static ssize_t iio_event_chrdev_read(struct file *filep,
char __user *buf,
size_t count,
loff_t *f_ps)
{ … }
static int iio_event_chrdev_release(struct inode *inode, struct file *filep)
{ … }
static const struct file_operations iio_event_chrdev_fileops = …;
static int iio_event_getfd(struct iio_dev *indio_dev)
{ … }
static const char * const iio_ev_type_text[] = …;
static const char * const iio_ev_dir_text[] = …;
static const char * const iio_ev_info_text[] = …;
static enum iio_event_direction iio_ev_attr_dir(struct iio_dev_attr *attr)
{ … }
static enum iio_event_type iio_ev_attr_type(struct iio_dev_attr *attr)
{ … }
static enum iio_event_info iio_ev_attr_info(struct iio_dev_attr *attr)
{ … }
static ssize_t iio_ev_state_store(struct device *dev,
struct device_attribute *attr,
const char *buf,
size_t len)
{ … }
static ssize_t iio_ev_state_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{ … }
static ssize_t iio_ev_value_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{ … }
static ssize_t iio_ev_value_store(struct device *dev,
struct device_attribute *attr,
const char *buf,
size_t len)
{ … }
static ssize_t iio_ev_label_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{ … }
static int iio_device_add_event(struct iio_dev *indio_dev,
const struct iio_chan_spec *chan, unsigned int spec_index,
enum iio_event_type type, enum iio_event_direction dir,
enum iio_shared_by shared_by, const unsigned long *mask)
{ … }
static int iio_device_add_event_label(struct iio_dev *indio_dev,
const struct iio_chan_spec *chan,
unsigned int spec_index,
enum iio_event_type type,
enum iio_event_direction dir)
{ … }
static int iio_device_add_event_sysfs(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan)
{ … }
static inline int __iio_add_event_config_attrs(struct iio_dev *indio_dev)
{ … }
static bool iio_check_for_dynamic_events(struct iio_dev *indio_dev)
{ … }
static void iio_setup_ev_int(struct iio_event_interface *ev_int)
{ … }
static long iio_event_ioctl(struct iio_dev *indio_dev, struct file *filp,
unsigned int cmd, unsigned long arg)
{ … }
static const char *iio_event_group_name = …;
int iio_device_register_eventset(struct iio_dev *indio_dev)
{ … }
void iio_device_wakeup_eventset(struct iio_dev *indio_dev)
{ … }
void iio_device_unregister_eventset(struct iio_dev *indio_dev)
{ … }