#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/comedi/comedi_pci.h>
#include "plx9052.h"
#define ME2600_FIRMWARE …
#define XILINX_DOWNLOAD_RESET …
#define ME_CTRL1_REG …
#define ME_CTRL1_INT_ENA …
#define ME_CTRL1_COUNTER_B_IRQ …
#define ME_CTRL1_COUNTER_A_IRQ …
#define ME_CTRL1_CHANLIST_READY_IRQ …
#define ME_CTRL1_EXT_IRQ …
#define ME_CTRL1_ADFIFO_HALFFULL_IRQ …
#define ME_CTRL1_SCAN_COUNT_ENA …
#define ME_CTRL1_SIMULTANEOUS_ENA …
#define ME_CTRL1_TRIGGER_FALLING_EDGE …
#define ME_CTRL1_CONTINUOUS_MODE …
#define ME_CTRL1_ADC_MODE(x) …
#define ME_CTRL1_ADC_MODE_DISABLE …
#define ME_CTRL1_ADC_MODE_SOFT_TRIG …
#define ME_CTRL1_ADC_MODE_SCAN_TRIG …
#define ME_CTRL1_ADC_MODE_EXT_TRIG …
#define ME_CTRL1_ADC_MODE_MASK …
#define ME_CTRL2_REG …
#define ME_CTRL2_ADFIFO_ENA …
#define ME_CTRL2_CHANLIST_ENA …
#define ME_CTRL2_PORT_B_ENA …
#define ME_CTRL2_PORT_A_ENA …
#define ME_CTRL2_COUNTER_B_ENA …
#define ME_CTRL2_COUNTER_A_ENA …
#define ME_CTRL2_DAC_ENA …
#define ME_CTRL2_BUFFERED_DAC …
#define ME_STATUS_REG …
#define ME_STATUS_COUNTER_B_IRQ …
#define ME_STATUS_COUNTER_A_IRQ …
#define ME_STATUS_CHANLIST_READY_IRQ …
#define ME_STATUS_EXT_IRQ …
#define ME_STATUS_ADFIFO_HALFFULL_IRQ …
#define ME_STATUS_ADFIFO_FULL …
#define ME_STATUS_ADFIFO_HALFFULL …
#define ME_STATUS_ADFIFO_EMPTY …
#define ME_STATUS_CHANLIST_FULL …
#define ME_STATUS_FST_ACTIVE …
#define ME_DIO_PORT_A_REG …
#define ME_DIO_PORT_B_REG …
#define ME_TIMER_DATA_REG(x) …
#define ME_AI_FIFO_REG …
#define ME_AI_FIFO_CHANLIST_DIFF …
#define ME_AI_FIFO_CHANLIST_UNIPOLAR …
#define ME_AI_FIFO_CHANLIST_GAIN(x) …
#define ME_AI_FIFO_CHANLIST_CHAN(x) …
#define ME_DAC_CTRL_REG …
#define ME_DAC_CTRL_BIPOLAR(x) …
#define ME_DAC_CTRL_GAIN(x) …
#define ME_DAC_CTRL_MASK(x) …
#define ME_AO_DATA_REG(x) …
#define ME_COUNTER_ENDDATA_REG(x) …
#define ME_COUNTER_STARTDATA_REG(x) …
#define ME_COUNTER_VALUE_REG(x) …
static const struct comedi_lrange me_ai_range = …;
static const struct comedi_lrange me_ao_range = …;
enum me_boardid { … };
struct me_board { … };
static const struct me_board me_boards[] = …;
struct me_private_data { … };
static inline void sleep(unsigned int sec)
{ … }
static int me_dio_insn_config(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int me_dio_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int me_ai_eoc(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int me_ai_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int me_ao_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int me2600_xilinx_download(struct comedi_device *dev,
const u8 *data, size_t size,
unsigned long context)
{ … }
static int me_reset(struct comedi_device *dev)
{ … }
static int me_auto_attach(struct comedi_device *dev,
unsigned long context)
{ … }
static void me_detach(struct comedi_device *dev)
{ … }
static struct comedi_driver me_daq_driver = …;
static int me_daq_pci_probe(struct pci_dev *dev,
const struct pci_device_id *id)
{ … }
static const struct pci_device_id me_daq_pci_table[] = …;
MODULE_DEVICE_TABLE(pci, me_daq_pci_table);
static struct pci_driver me_daq_pci_driver = …;
module_comedi_pci_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_FIRMWARE(…);