#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/comedi/comedi_pci.h>
#include <linux/comedi/comedi_8254.h>
#include "amcc_s5933.h"
#define PCI171X_AD_DATA_REG …
#define PCI171X_SOFTTRG_REG …
#define PCI171X_RANGE_REG …
#define PCI171X_RANGE_DIFF …
#define PCI171X_RANGE_UNI …
#define PCI171X_RANGE_GAIN(x) …
#define PCI171X_MUX_REG …
#define PCI171X_MUX_CHANH(x) …
#define PCI171X_MUX_CHANL(x) …
#define PCI171X_MUX_CHAN(x) …
#define PCI171X_STATUS_REG …
#define PCI171X_STATUS_IRQ …
#define PCI171X_STATUS_FF …
#define PCI171X_STATUS_FH …
#define PCI171X_STATUS_FE …
#define PCI171X_CTRL_REG …
#define PCI171X_CTRL_CNT0 …
#define PCI171X_CTRL_ONEFH …
#define PCI171X_CTRL_IRQEN …
#define PCI171X_CTRL_GATE …
#define PCI171X_CTRL_EXT …
#define PCI171X_CTRL_PACER …
#define PCI171X_CTRL_SW …
#define PCI171X_CLRINT_REG …
#define PCI171X_CLRFIFO_REG …
#define PCI171X_DA_REG(x) …
#define PCI171X_DAREF_REG …
#define PCI171X_DAREF(c, r) …
#define PCI171X_DAREF_MASK(c) …
#define PCI171X_DI_REG …
#define PCI171X_DO_REG …
#define PCI171X_TIMER_BASE …
static const struct comedi_lrange pci1710_ai_range = …;
static const struct comedi_lrange pci1710hg_ai_range = …;
static const struct comedi_lrange pci1711_ai_range = …;
static const struct comedi_lrange pci171x_ao_range = …;
enum pci1710_boardid { … };
struct boardtype { … };
static const struct boardtype boardtypes[] = …;
struct pci1710_private { … };
static int pci1710_ai_check_chanlist(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_cmd *cmd)
{ … }
static void pci1710_ai_setup_chanlist(struct comedi_device *dev,
struct comedi_subdevice *s,
unsigned int *chanlist,
unsigned int n_chan,
unsigned int seglen)
{ … }
static int pci1710_ai_eoc(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int pci1710_ai_read_sample(struct comedi_device *dev,
struct comedi_subdevice *s,
unsigned int cur_chan,
unsigned short *val)
{ … }
static int pci1710_ai_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int pci1710_ai_cancel(struct comedi_device *dev,
struct comedi_subdevice *s)
{ … }
static void pci1710_handle_every_sample(struct comedi_device *dev,
struct comedi_subdevice *s)
{ … }
static void pci1710_handle_fifo(struct comedi_device *dev,
struct comedi_subdevice *s)
{ … }
static irqreturn_t pci1710_irq_handler(int irq, void *d)
{ … }
static int pci1710_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
{ … }
static int pci1710_ai_cmdtest(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_cmd *cmd)
{ … }
static int pci1710_ao_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int pci1710_di_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int pci1710_do_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int pci1710_counter_insn_config(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static void pci1710_reset(struct comedi_device *dev)
{ … }
static int pci1710_auto_attach(struct comedi_device *dev,
unsigned long context)
{ … }
static struct comedi_driver adv_pci1710_driver = …;
static int adv_pci1710_pci_probe(struct pci_dev *dev,
const struct pci_device_id *id)
{ … }
static const struct pci_device_id adv_pci1710_pci_table[] = …;
MODULE_DEVICE_TABLE(pci, adv_pci1710_pci_table);
static struct pci_driver adv_pci1710_pci_driver = …;
module_comedi_pci_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;