#define DT2801_STATUS 1
#define DT2801_CMD 1
-static int dt2801_attach(comedi_device * dev, comedi_devconfig * it);
-static int dt2801_detach(comedi_device * dev);
-static comedi_driver driver_dt2801 = {
+static int dt2801_attach(struct comedi_device * dev, comedi_devconfig * it);
+static int dt2801_detach(struct comedi_device * dev);
+static struct comedi_driver driver_dt2801 = {
driver_name:"dt2801",
module:THIS_MODULE,
attach:dt2801_attach,
#if 0
// ignore 'defined but not used' warning
-static const comedi_lrange range_dt2801_ai_pgh_bipolar = { 4, {
+static const struct comedi_lrange range_dt2801_ai_pgh_bipolar = { 4, {
RANGE(-10, 10),
RANGE(-5, 5),
RANGE(-2.5, 2.5),
}
};
#endif
-static const comedi_lrange range_dt2801_ai_pgl_bipolar = { 4, {
+static const struct comedi_lrange range_dt2801_ai_pgl_bipolar = { 4, {
RANGE(-10, 10),
RANGE(-1, 1),
RANGE(-0.1, 0.1),
#if 0
// ignore 'defined but not used' warning
-static const comedi_lrange range_dt2801_ai_pgh_unipolar = { 4, {
+static const struct comedi_lrange range_dt2801_ai_pgh_unipolar = { 4, {
RANGE(0, 10),
RANGE(0, 5),
RANGE(0, 2.5),
}
};
#endif
-static const comedi_lrange range_dt2801_ai_pgl_unipolar = { 4, {
+static const struct comedi_lrange range_dt2801_ai_pgl_unipolar = { 4, {
RANGE(0, 10),
RANGE(0, 1),
RANGE(0, 0.1),
#define boardtype (*(const boardtype_t *)dev->board_ptr)
typedef struct {
- const comedi_lrange *dac_range_types[2];
- lsampl_t ao_readback[2];
+ const struct comedi_lrange *dac_range_types[2];
+ unsigned int ao_readback[2];
} dt2801_private;
#define devpriv ((dt2801_private *)dev->private)
-static int dt2801_ai_insn_read(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int dt2801_ao_insn_read(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int dt2801_ao_insn_write(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int dt2801_dio_insn_bits(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
-static int dt2801_dio_insn_config(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data);
+static int dt2801_ai_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data);
+static int dt2801_ao_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data);
+static int dt2801_ao_insn_write(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data);
+static int dt2801_dio_insn_bits(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data);
+static int dt2801_dio_insn_config(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data);
/* These are the low-level routines:
writecommand: write a command to the board
/* Only checks DataOutReady-flag, not the Ready-flag as it is done
in the examples of the manual. I don't see why this should be
necessary. */
-static int dt2801_readdata(comedi_device * dev, int *data)
+static int dt2801_readdata(struct comedi_device * dev, int *data)
{
int stat = 0;
int timeout = DT2801_TIMEOUT;
return -ETIME;
}
-static int dt2801_readdata2(comedi_device * dev, int *data)
+static int dt2801_readdata2(struct comedi_device * dev, int *data)
{
int lb, hb;
int ret;
return 0;
}
-static int dt2801_writedata(comedi_device * dev, unsigned int data)
+static int dt2801_writedata(struct comedi_device * dev, unsigned int data)
{
int stat = 0;
int timeout = DT2801_TIMEOUT;
return -ETIME;
}
-static int dt2801_writedata2(comedi_device * dev, unsigned int data)
+static int dt2801_writedata2(struct comedi_device * dev, unsigned int data)
{
int ret;
return 0;
}
-static int dt2801_wait_for_ready(comedi_device * dev)
+static int dt2801_wait_for_ready(struct comedi_device * dev)
{
int timeout = DT2801_TIMEOUT;
int stat;
return -ETIME;
}
-static int dt2801_writecmd(comedi_device * dev, int command)
+static int dt2801_writecmd(struct comedi_device * dev, int command)
{
int stat;
return 0;
}
-static int dt2801_reset(comedi_device * dev)
+static int dt2801_reset(struct comedi_device * dev)
{
int board_code = 0;
unsigned int stat;
return board_code;
}
-static int probe_number_of_ai_chans(comedi_device * dev)
+static int probe_number_of_ai_chans(struct comedi_device * dev)
{
int n_chans;
int stat;
return n_chans;
}
-static const comedi_lrange *dac_range_table[] = {
+static const struct comedi_lrange *dac_range_table[] = {
&range_bipolar10,
&range_bipolar5,
&range_bipolar2_5,
&range_unipolar5
};
-static const comedi_lrange *dac_range_lkup(int opt)
+static const struct comedi_lrange *dac_range_lkup(int opt)
{
if (opt < 0 || opt > 5)
return &range_unknown;
return dac_range_table[opt];
}
-static const comedi_lrange *ai_range_lkup(int type, int opt)
+static const struct comedi_lrange *ai_range_lkup(int type, int opt)
{
switch (type) {
case 0:
[4] - dac0 range 0=[-10,10], 1=[-5,5], 2=[-2.5,2.5] 3=[0,10], 4=[0,5]
[5] - dac1 range 0=[-10,10], 1=[-5,5], 2=[-2.5,2.5] 3=[0,10], 4=[0,5]
*/
-static int dt2801_attach(comedi_device * dev, comedi_devconfig * it)
+static int dt2801_attach(struct comedi_device * dev, comedi_devconfig * it)
{
- comedi_subdevice *s;
+ struct comedi_subdevice *s;
unsigned long iobase;
int board_code, type;
int ret = 0;
return ret;
}
-static int dt2801_detach(comedi_device * dev)
+static int dt2801_detach(struct comedi_device * dev)
{
if (dev->iobase)
release_region(dev->iobase, DT2801_IOSIZE);
return 0;
}
-static int dt2801_error(comedi_device * dev, int stat)
+static int dt2801_error(struct comedi_device * dev, int stat)
{
if (stat < 0) {
if (stat == -ETIME) {
return -EIO;
}
-static int dt2801_ai_insn_read(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int dt2801_ai_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
int d;
int stat;
return i;
}
-static int dt2801_ao_insn_read(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int dt2801_ao_insn_read(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
data[0] = devpriv->ao_readback[CR_CHAN(insn->chanspec)];
return 1;
}
-static int dt2801_ao_insn_write(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int dt2801_ao_insn_write(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
dt2801_writecmd(dev, DT_C_WRITE_DAIM);
dt2801_writedata(dev, CR_CHAN(insn->chanspec));
return 1;
}
-static int dt2801_dio_insn_bits(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int dt2801_dio_insn_bits(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
int which = 0;
return 2;
}
-static int dt2801_dio_insn_config(comedi_device * dev, comedi_subdevice * s,
- comedi_insn * insn, lsampl_t * data)
+static int dt2801_dio_insn_config(struct comedi_device * dev, struct comedi_subdevice * s,
+ struct comedi_insn * insn, unsigned int * data)
{
int which = 0;