#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/comedi/comedi_pci.h>
#define CONV_UNIT_NS …
#define CONV_UNIT_US …
#define CONV_UNIT_MS …
static const struct comedi_lrange apci3xxx_ai_range = …;
static const struct comedi_lrange apci3xxx_ao_range = …;
enum apci3xxx_boardid { … };
struct apci3xxx_boardinfo { … };
static const struct apci3xxx_boardinfo apci3xxx_boardtypes[] = …;
struct apci3xxx_private { … };
static irqreturn_t apci3xxx_irq_handler(int irq, void *d)
{ … }
static int apci3xxx_ai_started(struct comedi_device *dev)
{ … }
static int apci3xxx_ai_setup(struct comedi_device *dev, unsigned int chanspec)
{ … }
static int apci3xxx_ai_eoc(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int apci3xxx_ai_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int apci3xxx_ai_ns_to_timer(struct comedi_device *dev,
unsigned int *ns, unsigned int flags)
{ … }
static int apci3xxx_ai_cmdtest(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_cmd *cmd)
{ … }
static int apci3xxx_ai_cmd(struct comedi_device *dev,
struct comedi_subdevice *s)
{ … }
static int apci3xxx_ai_cancel(struct comedi_device *dev,
struct comedi_subdevice *s)
{ … }
static int apci3xxx_ao_eoc(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int apci3xxx_ao_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int apci3xxx_di_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int apci3xxx_do_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int apci3xxx_dio_insn_config(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int apci3xxx_dio_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int apci3xxx_reset(struct comedi_device *dev)
{ … }
static int apci3xxx_auto_attach(struct comedi_device *dev,
unsigned long context)
{ … }
static void apci3xxx_detach(struct comedi_device *dev)
{ … }
static struct comedi_driver apci3xxx_driver = …;
static int apci3xxx_pci_probe(struct pci_dev *dev,
const struct pci_device_id *id)
{ … }
static const struct pci_device_id apci3xxx_pci_table[] = …;
MODULE_DEVICE_TABLE(pci, apci3xxx_pci_table);
static struct pci_driver apci3xxx_pci_driver = …;
module_comedi_pci_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;