#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/mutex.h>
#include <linux/module.h>
#include <linux/sysfs.h>
#include "iio_dummy_evgen.h"
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>
#include <linux/irq_sim.h>
#define IIO_EVENTGEN_NO …
struct iio_dummy_eventgen { … };
static struct iio_dummy_eventgen *iio_evgen;
static int iio_dummy_evgen_create(void)
{ … }
int iio_dummy_evgen_get_irq(void)
{ … }
EXPORT_SYMBOL_GPL(…);
void iio_dummy_evgen_release_irq(int irq)
{ … }
EXPORT_SYMBOL_GPL(…);
struct iio_dummy_regs *iio_dummy_evgen_get_regs(int irq)
{ … }
EXPORT_SYMBOL_GPL(…);
static void iio_dummy_evgen_free(void)
{ … }
static void iio_evgen_release(struct device *dev)
{ … }
static ssize_t iio_evgen_poke(struct device *dev,
struct device_attribute *attr,
const char *buf,
size_t len)
{ … }
static IIO_DEVICE_ATTR(poke_ev0, S_IWUSR, NULL, &iio_evgen_poke, 0);
static IIO_DEVICE_ATTR(poke_ev1, S_IWUSR, NULL, &iio_evgen_poke, 1);
static IIO_DEVICE_ATTR(poke_ev2, S_IWUSR, NULL, &iio_evgen_poke, 2);
static IIO_DEVICE_ATTR(poke_ev3, S_IWUSR, NULL, &iio_evgen_poke, 3);
static IIO_DEVICE_ATTR(poke_ev4, S_IWUSR, NULL, &iio_evgen_poke, 4);
static IIO_DEVICE_ATTR(poke_ev5, S_IWUSR, NULL, &iio_evgen_poke, 5);
static IIO_DEVICE_ATTR(poke_ev6, S_IWUSR, NULL, &iio_evgen_poke, 6);
static IIO_DEVICE_ATTR(poke_ev7, S_IWUSR, NULL, &iio_evgen_poke, 7);
static IIO_DEVICE_ATTR(poke_ev8, S_IWUSR, NULL, &iio_evgen_poke, 8);
static IIO_DEVICE_ATTR(poke_ev9, S_IWUSR, NULL, &iio_evgen_poke, 9);
static struct attribute *iio_evgen_attrs[] = …;
static const struct attribute_group iio_evgen_group = …;
static const struct attribute_group *iio_evgen_groups[] = …;
static struct device iio_evgen_dev = …;
static __init int iio_dummy_evgen_init(void)
{ … }
module_init(…) …;
static __exit void iio_dummy_evgen_exit(void)
{ … }
module_exit(iio_dummy_evgen_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;