#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/slab.h>
#include <linux/comedi/comedi_pci.h>
#define AO_VALUE_OFFSET …
#define AO_CHAN_OFFSET …
#define AO_STATUS_OFFSET …
#define AO_CONTROL_OFFSET …
#define DIO_PORT0_DIR_OFFSET …
#define DIO_PORT0_DATA_OFFSET …
#define DIO_PORT1_DIR_OFFSET …
#define DIO_PORT1_DATA_OFFSET …
#define MISC_STATUS_OFFSET …
#define MISC_CONTROL_OFFSET …
enum ni_670x_boardid { … };
struct ni_670x_board { … };
static const struct ni_670x_board ni_670x_boards[] = …;
struct ni_670x_private { … };
static int ni_670x_ao_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int ni_670x_dio_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int ni_670x_dio_insn_config(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
#define MITE_IODWBSR …
#define WENAB …
static int ni_670x_mite_init(struct pci_dev *pcidev)
{ … }
static int ni_670x_auto_attach(struct comedi_device *dev,
unsigned long context)
{ … }
static void ni_670x_detach(struct comedi_device *dev)
{ … }
static struct comedi_driver ni_670x_driver = …;
static int ni_670x_pci_probe(struct pci_dev *dev,
const struct pci_device_id *id)
{ … }
static const struct pci_device_id ni_670x_pci_table[] = …;
MODULE_DEVICE_TABLE(pci, ni_670x_pci_table);
static struct pci_driver ni_670x_pci_driver = …;
module_comedi_pci_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;