#include <linux/module.h>
#include <linux/comedi/comedi_pci.h>
#define KE_RESET_REG(x) …
#define KE_LATCH_REG(x) …
#define KE_LSB_REG(x) …
#define KE_MID_REG(x) …
#define KE_MSB_REG(x) …
#define KE_SIGN_REG(x) …
#define KE_OSC_SEL_REG …
#define KE_OSC_SEL_CLK(x) …
#define KE_OSC_SEL_EXT …
#define KE_OSC_SEL_4MHZ …
#define KE_OSC_SEL_20MHZ …
#define KE_DO_REG …
static int ke_counter_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int ke_counter_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static void ke_counter_reset(struct comedi_device *dev)
{ … }
static int ke_counter_insn_config(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int ke_counter_do_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int ke_counter_auto_attach(struct comedi_device *dev,
unsigned long context_unused)
{ … }
static struct comedi_driver ke_counter_driver = …;
static int ke_counter_pci_probe(struct pci_dev *dev,
const struct pci_device_id *id)
{ … }
static const struct pci_device_id ke_counter_pci_table[] = …;
MODULE_DEVICE_TABLE(pci, ke_counter_pci_table);
static struct pci_driver ke_counter_pci_driver = …;
module_comedi_pci_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;