enum caldac_enum caldac[3];
 };
 
-#define MAX_N_AO_CHAN 8
-#define NUM_GPCT 2
-
-#define NI_PRIVATE_COMMON                                      \
-       uint16_t (*stc_readw)(struct comedi_device *dev, int register); \
-       uint32_t (*stc_readl)(struct comedi_device *dev, int register); \
-       void (*stc_writew)(struct comedi_device *dev, uint16_t value, int register);    \
-       void (*stc_writel)(struct comedi_device *dev, uint32_t value, int register);    \
-       \
-       unsigned short dio_output;                              \
-       unsigned short dio_control;                             \
-       int ao0p, ao1p;                                         \
-       int lastchan;                                           \
-       int last_do;                                            \
-       int rt_irq;                                             \
-       int irqmask;                                            \
-       int aimode;                                             \
-       int ai_continuous;                                      \
-       int blocksize;                                          \
-       int n_left;                                             \
-       unsigned int ai_calib_source;                           \
-       unsigned int ai_calib_source_enabled;                   \
-       spinlock_t window_lock; \
-       spinlock_t soft_reg_copy_lock; \
-       spinlock_t mite_channel_lock; \
-                                                               \
-       int changain_state;                                     \
-       unsigned int changain_spec;                             \
-                                                               \
-       unsigned int caldac_maxdata_list[MAX_N_CALDACS];        \
-       unsigned short ao[MAX_N_AO_CHAN];                                       \
-       unsigned short caldacs[MAX_N_CALDACS];                          \
-                                                               \
-       unsigned short ai_cmd2; \
-                                                               \
-       unsigned short ao_conf[MAX_N_AO_CHAN];                          \
-       unsigned short ao_mode1;                                \
-       unsigned short ao_mode2;                                \
-       unsigned short ao_mode3;                                \
-       unsigned short ao_cmd1;                                 \
-       unsigned short ao_cmd2;                                 \
-       unsigned short ao_cmd3;                                 \
-       unsigned short ao_trigger_select;                       \
-                                                               \
-       struct ni_gpct_device *counter_dev;     \
-       unsigned short an_trig_etc_reg;                         \
-                                                               \
-       unsigned ai_offset[512];                                \
-                                                               \
-       unsigned long serial_interval_ns;                       \
-       unsigned char serial_hw_mode;                           \
-       unsigned short clock_and_fout;                          \
-       unsigned short clock_and_fout2;                         \
-                                                               \
-       unsigned short int_a_enable_reg;                        \
-       unsigned short int_b_enable_reg;                        \
-       unsigned short io_bidirection_pin_reg;                  \
-       unsigned short rtsi_trig_direction_reg;                 \
-       unsigned short rtsi_trig_a_output_reg; \
-       unsigned short rtsi_trig_b_output_reg; \
-       unsigned short pfi_output_select_reg[NUM_PFI_OUTPUT_SELECT_REGS]; \
-       unsigned short ai_ao_select_reg; \
-       unsigned short g0_g1_select_reg; \
-       unsigned short cdio_dma_select_reg; \
-       \
-       unsigned clock_ns; \
-       unsigned clock_source; \
-       \
-       unsigned short atrig_mode;                              \
-       unsigned short atrig_high;                              \
-       unsigned short atrig_low;                               \
-       \
-       unsigned short pwm_up_count;    \
-       unsigned short pwm_down_count;  \
-       \
-       unsigned short ai_fifo_buffer[0x2000];                  \
-       uint8_t eeprom_buffer[M_SERIES_EEPROM_SIZE]; \
-       uint32_t serial_number; \
-       \
-       struct mite_struct *mite; \
-       struct mite_channel *ai_mite_chan; \
-       struct mite_channel *ao_mite_chan;\
-       struct mite_channel *cdo_mite_chan;\
-       struct mite_dma_descriptor_ring *ai_mite_ring; \
-       struct mite_dma_descriptor_ring *ao_mite_ring; \
-       struct mite_dma_descriptor_ring *cdo_mite_ring; \
+#define MAX_N_CALDACS  34
+#define MAX_N_AO_CHAN  8
+#define NUM_GPCT       2
+
+struct ni_private {
+       uint16_t (*stc_readw)(struct comedi_device *, int reg);
+       uint32_t (*stc_readl)(struct comedi_device *, int reg);
+       void (*stc_writew)(struct comedi_device *, uint16_t value, int reg);
+       void (*stc_writel)(struct comedi_device *, uint32_t value, int reg);
+
+       unsigned short dio_output;
+       unsigned short dio_control;
+       int ao0p, ao1p;
+       int lastchan;
+       int last_do;
+       int rt_irq;
+       int irqmask;
+       int aimode;
+       int ai_continuous;
+       int blocksize;
+       int n_left;
+       unsigned int ai_calib_source;
+       unsigned int ai_calib_source_enabled;
+       spinlock_t window_lock;
+       spinlock_t soft_reg_copy_lock;
+       spinlock_t mite_channel_lock;
+
+       int changain_state;
+       unsigned int changain_spec;
+
+       unsigned int caldac_maxdata_list[MAX_N_CALDACS];
+       unsigned short ao[MAX_N_AO_CHAN];
+       unsigned short caldacs[MAX_N_CALDACS];
+
+       unsigned short ai_cmd2;
+
+       unsigned short ao_conf[MAX_N_AO_CHAN];
+       unsigned short ao_mode1;
+       unsigned short ao_mode2;
+       unsigned short ao_mode3;
+       unsigned short ao_cmd1;
+       unsigned short ao_cmd2;
+       unsigned short ao_cmd3;
+       unsigned short ao_trigger_select;
+
+       struct ni_gpct_device *counter_dev;
+       unsigned short an_trig_etc_reg;
+
+       unsigned ai_offset[512];
+
+       unsigned long serial_interval_ns;
+       unsigned char serial_hw_mode;
+       unsigned short clock_and_fout;
+       unsigned short clock_and_fout2;
+
+       unsigned short int_a_enable_reg;
+       unsigned short int_b_enable_reg;
+       unsigned short io_bidirection_pin_reg;
+       unsigned short rtsi_trig_direction_reg;
+       unsigned short rtsi_trig_a_output_reg;
+       unsigned short rtsi_trig_b_output_reg;
+       unsigned short pfi_output_select_reg[NUM_PFI_OUTPUT_SELECT_REGS];
+       unsigned short ai_ao_select_reg;
+       unsigned short g0_g1_select_reg;
+       unsigned short cdio_dma_select_reg;
+
+       unsigned clock_ns;
+       unsigned clock_source;
+
+       unsigned short atrig_mode;
+       unsigned short atrig_high;
+       unsigned short atrig_low;
+
+       unsigned short pwm_up_count;
+       unsigned short pwm_down_count;
+
+       unsigned short ai_fifo_buffer[0x2000];
+       uint8_t eeprom_buffer[M_SERIES_EEPROM_SIZE];
+       uint32_t serial_number;
+
+       struct mite_struct *mite;
+       struct mite_channel *ai_mite_chan;
+       struct mite_channel *ao_mite_chan;
+       struct mite_channel *cdo_mite_chan;
+       struct mite_dma_descriptor_ring *ai_mite_ring;
+       struct mite_dma_descriptor_ring *ao_mite_ring;
+       struct mite_dma_descriptor_ring *cdo_mite_ring;
        struct mite_dma_descriptor_ring *gpct_mite_ring[NUM_GPCT];
+};
 
 #endif /* _COMEDI_NI_STC_H */