* boards in this way is optional, and completely driver-dependent.
* Some drivers use arrays such as this, other do not.
*/
-typedef struct serial2002_board_struct {
+struct serial2002_board {
const char *name;
-} serial2002_board;
+};
-static const serial2002_board serial2002_boards[] = {
+static const struct serial2002_board serial2002_boards[] = {
{
name: "serial2002"}
};
/*
* Useful for shorthand access to the particular board structure
*/
-#define thisboard ((const serial2002_board *)dev->board_ptr)
+#define thisboard ((const struct serial2002_board *)dev->board_ptr)
struct serial2002_range_table_t {
};
-typedef struct {
+struct serial2002_private {
+
int port; // /dev/ttyS<port>
int speed; // baudrate
struct file *tty;
unsigned char analog_out_mapping[32];
unsigned char encoder_in_mapping[32];
struct serial2002_range_table_t in_range[32], out_range[32];
-} serial2002_private;
+};
+
/*
* most drivers define the following macro to make it easy to
* access the private structure.
*/
-#define devpriv ((serial2002_private *)dev->private)
+#define devpriv ((struct serial2002_private *)dev->private)
static int serial2002_attach(struct comedi_device * dev, struct comedi_devconfig * it);
static int serial2002_detach(struct comedi_device * dev);
attach:serial2002_attach,
detach:serial2002_detach,
board_name:&serial2002_boards[0].name,
- offset:sizeof(serial2002_board),
- num_names:sizeof(serial2002_boards) / sizeof(serial2002_board),
+ offset:sizeof(struct serial2002_board),
+ num_names:sizeof(serial2002_boards) / sizeof(struct serial2002_board),
};
static int serial2002_di_rinsn(struct comedi_device * dev, struct comedi_subdevice * s,
printk("comedi%d: serial2002: ", dev->minor);
dev->board_name = thisboard->name;
- if (alloc_private(dev, sizeof(serial2002_private)) < 0) {
+ if (alloc_private(dev, sizeof(struct serial2002_private)) < 0) {
return -ENOMEM;
}
dev->open = serial_2002_open;