* boards in this way is optional, and completely driver-dependent.
  * Some drivers use arrays such as this, other do not.
  */
-typedef struct dmm32at_board_struct {
+struct dmm32at_board {
        const char *name;
        int ai_chans;
        int ai_bits;
        const struct comedi_lrange *ao_ranges;
        int have_dio;
        int dio_chans;
-} dmm32at_board;
-static const dmm32at_board dmm32at_boards[] = {
+};
+static const struct dmm32at_board dmm32at_boards[] = {
        {
              name:     "dmm32at",
              ai_chans:32,
 /*
  * Useful for shorthand access to the particular board structure
  */
-#define thisboard ((const dmm32at_board *)dev->board_ptr)
+#define thisboard ((const struct dmm32at_board *)dev->board_ptr)
 
 /* this structure is for data unique to this hardware driver.  If
  * several hardware drivers keep similar information in this structure,
  * devices are such boards.
  */
       board_name:&dmm32at_boards[0].name,
-      offset:sizeof(dmm32at_board),
-      num_names:sizeof(dmm32at_boards) / sizeof(dmm32at_board),
+      offset:sizeof(struct dmm32at_board),
+      num_names:sizeof(dmm32at_boards) / sizeof(struct dmm32at_board),
 };
 
 /* prototypes for driver functions below */