瀏覽代碼

Staging: Fixes for me4000 pci data collection driver

Following Andrew Morton's review for this patch I made a patch that
fixes most of the remarks.
I've converted the sleep_on_timeout to wait_event_timeout but I
probably not in the right way.
Also I don't know what's the problem with the calls for get_user() so
I left them untouched.

Signed-off-by: Lior Dotan <liodot@gmail.com>
Cc: Andrew Morton <akpm@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Lior Dotan 16 年之前
父節點
當前提交
0b65d3cc77
共有 2 個文件被更改,包括 332 次插入349 次删除
  1. 229 258
      drivers/staging/me4000/me4000.c
  2. 103 91
      drivers/staging/me4000/me4000.h

File diff suppressed because it is too large
+ 229 - 258
drivers/staging/me4000/me4000.c


+ 103 - 91
drivers/staging/me4000/me4000.h

@@ -329,46 +329,46 @@
   Circular buffer used for analog input/output reads/writes.
   Circular buffer used for analog input/output reads/writes.
   ===========================================================================*/
   ===========================================================================*/
 
 
-typedef struct me4000_circ_buf {
+struct me4000_circ_buf {
 	s16 *buf;
 	s16 *buf;
 	int volatile head;
 	int volatile head;
 	int volatile tail;
 	int volatile tail;
-} me4000_circ_buf_t;
+};
 
 
 /*=============================================================================
 /*=============================================================================
   Information about the hardware capabilities
   Information about the hardware capabilities
   ===========================================================================*/
   ===========================================================================*/
 
 
-typedef struct me4000_ao_info {
+struct me4000_ao_info {
 	int count;
 	int count;
 	int fifo_count;
 	int fifo_count;
-} me4000_ao_info_t;
+};
 
 
-typedef struct me4000_ai_info {
+struct me4000_ai_info {
 	int count;
 	int count;
 	int sh_count;
 	int sh_count;
 	int diff_count;
 	int diff_count;
 	int ex_trig_analog;
 	int ex_trig_analog;
-} me4000_ai_info_t;
+};
 
 
-typedef struct me4000_dio_info {
+struct me4000_dio_info {
 	int count;
 	int count;
-} me4000_dio_info_t;
+};
 
 
-typedef struct me4000_cnt_info {
+struct me4000_cnt_info {
 	int count;
 	int count;
-} me4000_cnt_info_t;
+};
 
 
-typedef struct me4000_board {
+struct me4000_board {
 	u16 vendor_id;
 	u16 vendor_id;
 	u16 device_id;
 	u16 device_id;
-	me4000_ao_info_t ao;
-	me4000_ai_info_t ai;
-	me4000_dio_info_t dio;
-	me4000_cnt_info_t cnt;
-} me4000_board_t;
+	struct me4000_ao_info ao;
+	struct me4000_ai_info ai;
+	struct me4000_dio_info dio;
+	struct me4000_cnt_info cnt;
+};
 
 
-static me4000_board_t me4000_boards[] = {
+static struct me4000_board me4000_boards[] = {
 	{PCI_VENDOR_ID_MEILHAUS, 0x4610, {0, 0}, {16, 0, 0, 0}, {4}, {3}},
 	{PCI_VENDOR_ID_MEILHAUS, 0x4610, {0, 0}, {16, 0, 0, 0}, {4}, {3}},
 
 
 	{PCI_VENDOR_ID_MEILHAUS, 0x4650, {0, 0}, {16, 0, 0, 0}, {4}, {0}},
 	{PCI_VENDOR_ID_MEILHAUS, 0x4650, {0, 0}, {16, 0, 0, 0}, {4}, {0}},
@@ -391,8 +391,6 @@ static me4000_board_t me4000_boards[] = {
 	{0},
 	{0},
 };
 };
 
 
-#define ME4000_BOARD_VERSIONS (sizeof(me4000_boards) / sizeof(me4000_board_t) - 1)
-
 /*=============================================================================
 /*=============================================================================
   PCI device table.
   PCI device table.
   This is used by modprobe to translate PCI IDs to drivers.
   This is used by modprobe to translate PCI IDs to drivers.
@@ -427,19 +425,19 @@ MODULE_DEVICE_TABLE(pci, me4000_pci_table);
   Global board and subdevice information structures
   Global board and subdevice information structures
   ===========================================================================*/
   ===========================================================================*/
 
 
-typedef struct me4000_info {
+struct me4000_info {
 	struct list_head list;	// List of all detected boards
 	struct list_head list;	// List of all detected boards
 	int board_count;	// Index of the board after detection
 	int board_count;	// Index of the board after detection
 
 
 	unsigned long plx_regbase;	// PLX configuration space base address
 	unsigned long plx_regbase;	// PLX configuration space base address
-	unsigned long me4000_regbase;	// Base address of the ME4000
-	unsigned long timer_regbase;	// Base address of the timer circuit
-	unsigned long program_regbase;	// Base address to set the program pin for the xilinx
+	resource_size_t me4000_regbase;	// Base address of the ME4000
+	resource_size_t timer_regbase;	// Base address of the timer circuit
+	resource_size_t program_regbase;	// Base address to set the program pin for the xilinx
 
 
 	unsigned long plx_regbase_size;	// PLX register set space
 	unsigned long plx_regbase_size;	// PLX register set space
-	unsigned long me4000_regbase_size;	// ME4000 register set space
-	unsigned long timer_regbase_size;	// Timer circuit register set space
-	unsigned long program_regbase_size;	// Size of program base address of the ME4000
+	resource_size_t me4000_regbase_size;	// ME4000 register set space
+	resource_size_t timer_regbase_size;	// Timer circuit register set space
+	resource_size_t program_regbase_size;	// Size of program base address of the ME4000
 
 
 	unsigned int serial_no;	// Serial number of the board
 	unsigned int serial_no;	// Serial number of the board
 	unsigned char hw_revision;	// Hardware revision of the board
 	unsigned char hw_revision;	// Hardware revision of the board
@@ -451,7 +449,7 @@ typedef struct me4000_info {
 	int pci_func_no;	// PCI function number
 	int pci_func_no;	// PCI function number
 	struct pci_dev *pci_dev_p;	// General PCI information
 	struct pci_dev *pci_dev_p;	// General PCI information
 
 
-	me4000_board_t *board_p;	// Holds the board capabilities
+	struct me4000_board *board_p;	// Holds the board capabilities
 
 
 	unsigned int irq;	// IRQ assigned from the PCI BIOS
 	unsigned int irq;	// IRQ assigned from the PCI BIOS
 	unsigned int irq_count;	// Count of external interrupts
 	unsigned int irq_count;	// Count of external interrupts
@@ -464,18 +462,18 @@ typedef struct me4000_info {
 	struct me4000_dio_context *dio_context;	// Digital I/O specific context
 	struct me4000_dio_context *dio_context;	// Digital I/O specific context
 	struct me4000_cnt_context *cnt_context;	// Counter specific context
 	struct me4000_cnt_context *cnt_context;	// Counter specific context
 	struct me4000_ext_int_context *ext_int_context;	// External interrupt specific context
 	struct me4000_ext_int_context *ext_int_context;	// External interrupt specific context
-} me4000_info_t;
+};
 
 
-typedef struct me4000_ao_context {
+struct me4000_ao_context {
 	struct list_head list;	// linked list of me4000_ao_context_t
 	struct list_head list;	// linked list of me4000_ao_context_t
 	int index;		// Index in the list
 	int index;		// Index in the list
 	int mode;		// Indicates mode (0 = single, 1 = wraparound, 2 = continous)
 	int mode;		// Indicates mode (0 = single, 1 = wraparound, 2 = continous)
 	int dac_in_use;		// Indicates if already opend
 	int dac_in_use;		// Indicates if already opend
 	spinlock_t use_lock;	// Guards in_use
 	spinlock_t use_lock;	// Guards in_use
 	spinlock_t int_lock;	// Used when locking out interrupts
 	spinlock_t int_lock;	// Used when locking out interrupts
-	me4000_circ_buf_t circ_buf;	// Circular buffer
+	struct me4000_circ_buf circ_buf;	// Circular buffer
 	wait_queue_head_t wait_queue;	// Wait queue to sleep while blocking write
 	wait_queue_head_t wait_queue;	// Wait queue to sleep while blocking write
-	me4000_info_t *board_info;
+	struct me4000_info *board_info;
 	unsigned int irq;	// The irq associated with this ADC
 	unsigned int irq;	// The irq associated with this ADC
 	int volatile pipe_flag;	// Indicates broken pipe set from me4000_ao_isr()
 	int volatile pipe_flag;	// Indicates broken pipe set from me4000_ao_isr()
 	unsigned long ctrl_reg;
 	unsigned long ctrl_reg;
@@ -486,9 +484,9 @@ typedef struct me4000_ao_context {
 	unsigned long irq_status_reg;
 	unsigned long irq_status_reg;
 	unsigned long preload_reg;
 	unsigned long preload_reg;
 	struct fasync_struct *fasync_p;	// Queue for asynchronous notification
 	struct fasync_struct *fasync_p;	// Queue for asynchronous notification
-} me4000_ao_context_t;
+};
 
 
-typedef struct me4000_ai_context {
+struct me4000_ai_context {
 	struct list_head list;	// linked list of me4000_ai_info_t
 	struct list_head list;	// linked list of me4000_ai_info_t
 	int mode;		// Indicates mode
 	int mode;		// Indicates mode
 	int in_use;		// Indicates if already opend
 	int in_use;		// Indicates if already opend
@@ -496,9 +494,9 @@ typedef struct me4000_ai_context {
 	spinlock_t int_lock;	// Used when locking out interrupts
 	spinlock_t int_lock;	// Used when locking out interrupts
 	int number;		// Number of the DAC
 	int number;		// Number of the DAC
 	unsigned int irq;	// The irq associated with this ADC
 	unsigned int irq;	// The irq associated with this ADC
-	me4000_circ_buf_t circ_buf;	// Circular buffer
+	struct me4000_circ_buf circ_buf;	// Circular buffer
 	wait_queue_head_t wait_queue;	// Wait queue to sleep while blocking read
 	wait_queue_head_t wait_queue;	// Wait queue to sleep while blocking read
-	me4000_info_t *board_info;
+	struct me4000_info *board_info;
 
 
 	struct fasync_struct *fasync_p;	// Queue for asynchronous notification
 	struct fasync_struct *fasync_p;	// Queue for asynchronous notification
 
 
@@ -523,48 +521,48 @@ typedef struct me4000_ai_context {
 	unsigned long channel_list_count;
 	unsigned long channel_list_count;
 	unsigned long sample_counter;
 	unsigned long sample_counter;
 	int sample_counter_reload;
 	int sample_counter_reload;
-} me4000_ai_context_t;
+};
 
 
-typedef struct me4000_dio_context {
+struct me4000_dio_context {
 	struct list_head list;	// linked list of me4000_dio_context_t
 	struct list_head list;	// linked list of me4000_dio_context_t
 	int in_use;		// Indicates if already opend
 	int in_use;		// Indicates if already opend
 	spinlock_t use_lock;	// Guards in_use
 	spinlock_t use_lock;	// Guards in_use
 	int number;
 	int number;
 	int dio_count;
 	int dio_count;
-	me4000_info_t *board_info;
+	struct me4000_info *board_info;
 	unsigned long dir_reg;
 	unsigned long dir_reg;
 	unsigned long ctrl_reg;
 	unsigned long ctrl_reg;
 	unsigned long port_0_reg;
 	unsigned long port_0_reg;
 	unsigned long port_1_reg;
 	unsigned long port_1_reg;
 	unsigned long port_2_reg;
 	unsigned long port_2_reg;
 	unsigned long port_3_reg;
 	unsigned long port_3_reg;
-} me4000_dio_context_t;
+};
 
 
-typedef struct me4000_cnt_context {
+struct me4000_cnt_context {
 	struct list_head list;	// linked list of me4000_dio_context_t
 	struct list_head list;	// linked list of me4000_dio_context_t
 	int in_use;		// Indicates if already opend
 	int in_use;		// Indicates if already opend
 	spinlock_t use_lock;	// Guards in_use
 	spinlock_t use_lock;	// Guards in_use
 	int number;
 	int number;
 	int cnt_count;
 	int cnt_count;
-	me4000_info_t *board_info;
+	struct me4000_info *board_info;
 	unsigned long ctrl_reg;
 	unsigned long ctrl_reg;
 	unsigned long counter_0_reg;
 	unsigned long counter_0_reg;
 	unsigned long counter_1_reg;
 	unsigned long counter_1_reg;
 	unsigned long counter_2_reg;
 	unsigned long counter_2_reg;
-} me4000_cnt_context_t;
+};
 
 
-typedef struct me4000_ext_int_context {
+struct me4000_ext_int_context {
 	struct list_head list;	// linked list of me4000_dio_context_t
 	struct list_head list;	// linked list of me4000_dio_context_t
 	int in_use;		// Indicates if already opend
 	int in_use;		// Indicates if already opend
 	spinlock_t use_lock;	// Guards in_use
 	spinlock_t use_lock;	// Guards in_use
 	int number;
 	int number;
-	me4000_info_t *board_info;
+	struct me4000_info *board_info;
 	unsigned int irq;
 	unsigned int irq;
 	unsigned long int_count;
 	unsigned long int_count;
 	struct fasync_struct *fasync_ptr;
 	struct fasync_struct *fasync_ptr;
 	unsigned long ctrl_reg;
 	unsigned long ctrl_reg;
 	unsigned long irq_status_reg;
 	unsigned long irq_status_reg;
-} me4000_ext_int_context_t;
+};
 
 
 #endif
 #endif
 
 
@@ -745,12 +743,12 @@ typedef struct me4000_ext_int_context {
   General type definitions
   General type definitions
   ----------------------------------------------------------------------------*/
   ----------------------------------------------------------------------------*/
 
 
-typedef struct me4000_user_info {
+struct me4000_user_info {
 	int board_count;	// Index of the board after detection
 	int board_count;	// Index of the board after detection
 	unsigned long plx_regbase;	// PLX configuration space base address
 	unsigned long plx_regbase;	// PLX configuration space base address
-	unsigned long me4000_regbase;	// Base address of the ME4000
+	resource_size_t me4000_regbase;	// Base address of the ME4000
 	unsigned long plx_regbase_size;	// PLX register set space
 	unsigned long plx_regbase_size;	// PLX register set space
-	unsigned long me4000_regbase_size;	// ME4000 register set space
+	resource_size_t me4000_regbase_size;	// ME4000 register set space
 	unsigned long serial_no;	// Serial number of the board
 	unsigned long serial_no;	// Serial number of the board
 	unsigned char hw_revision;	// Hardware revision of the board
 	unsigned char hw_revision;	// Hardware revision of the board
 	unsigned short vendor_id;	// Meilhaus vendor id (0x1402)
 	unsigned short vendor_id;	// Meilhaus vendor id (0x1402)
@@ -773,62 +771,62 @@ typedef struct me4000_user_info {
 	int dio_count;		// Count of digital I/O ports
 	int dio_count;		// Count of digital I/O ports
 
 
 	int cnt_count;		// Count of counters
 	int cnt_count;		// Count of counters
-} me4000_user_info_t;
+};
 
 
 /*-----------------------------------------------------------------------------
 /*-----------------------------------------------------------------------------
   Type definitions for analog output
   Type definitions for analog output
   ----------------------------------------------------------------------------*/
   ----------------------------------------------------------------------------*/
 
 
-typedef struct me4000_ao_channel_list {
+struct me4000_ao_channel_list {
 	unsigned long count;
 	unsigned long count;
 	unsigned long *list;
 	unsigned long *list;
-} me4000_ao_channel_list_t;
+};
 
 
 /*-----------------------------------------------------------------------------
 /*-----------------------------------------------------------------------------
   Type definitions for analog input
   Type definitions for analog input
   ----------------------------------------------------------------------------*/
   ----------------------------------------------------------------------------*/
 
 
-typedef struct me4000_ai_channel_list {
+struct me4000_ai_channel_list {
 	unsigned long count;
 	unsigned long count;
 	unsigned long *list;
 	unsigned long *list;
-} me4000_ai_channel_list_t;
+};
 
 
-typedef struct me4000_ai_timer {
+struct me4000_ai_timer {
 	unsigned long pre_chan;
 	unsigned long pre_chan;
 	unsigned long chan;
 	unsigned long chan;
 	unsigned long scan_low;
 	unsigned long scan_low;
 	unsigned long scan_high;
 	unsigned long scan_high;
-} me4000_ai_timer_t;
+};
 
 
-typedef struct me4000_ai_config {
-	me4000_ai_timer_t timer;
-	me4000_ai_channel_list_t channel_list;
+struct me4000_ai_config {
+	struct me4000_ai_timer timer;
+	struct me4000_ai_channel_list channel_list;
 	int sh;
 	int sh;
-} me4000_ai_config_t;
+};
 
 
-typedef struct me4000_ai_single {
+struct me4000_ai_single {
 	int channel;
 	int channel;
 	int range;
 	int range;
 	int mode;
 	int mode;
 	short value;
 	short value;
 	unsigned long timeout;
 	unsigned long timeout;
-} me4000_ai_single_t;
+};
 
 
-typedef struct me4000_ai_trigger {
+struct me4000_ai_trigger {
 	int mode;
 	int mode;
 	int edge;
 	int edge;
-} me4000_ai_trigger_t;
+};
 
 
-typedef struct me4000_ai_sc {
+struct me4000_ai_sc {
 	unsigned long value;
 	unsigned long value;
 	int reload;
 	int reload;
-} me4000_ai_sc_t;
+};
 
 
 /*-----------------------------------------------------------------------------
 /*-----------------------------------------------------------------------------
   Type definitions for eeprom
   Type definitions for eeprom
   ----------------------------------------------------------------------------*/
   ----------------------------------------------------------------------------*/
 
 
-typedef struct me4000_eeprom {
+struct me4000_eeprom {
 	unsigned long date;
 	unsigned long date;
 	short uni_10_offset;
 	short uni_10_offset;
 	short uni_10_fullscale;
 	short uni_10_fullscale;
@@ -842,45 +840,45 @@ typedef struct me4000_eeprom {
 	short diff_10_fullscale;
 	short diff_10_fullscale;
 	short diff_2_5_offset;
 	short diff_2_5_offset;
 	short diff_2_5_fullscale;
 	short diff_2_5_fullscale;
-} me4000_eeprom_t;
+};
 
 
 /*-----------------------------------------------------------------------------
 /*-----------------------------------------------------------------------------
   Type definitions for digital I/O
   Type definitions for digital I/O
   ----------------------------------------------------------------------------*/
   ----------------------------------------------------------------------------*/
 
 
-typedef struct me4000_dio_config {
+struct me4000_dio_config {
 	int port;
 	int port;
 	int mode;
 	int mode;
 	int function;
 	int function;
-} me4000_dio_config_t;
+};
 
 
-typedef struct me4000_dio_byte {
+struct me4000_dio_byte {
 	int port;
 	int port;
 	unsigned char byte;
 	unsigned char byte;
-} me4000_dio_byte_t;
+};
 
 
 /*-----------------------------------------------------------------------------
 /*-----------------------------------------------------------------------------
   Type definitions for counters
   Type definitions for counters
   ----------------------------------------------------------------------------*/
   ----------------------------------------------------------------------------*/
 
 
-typedef struct me4000_cnt {
+struct me4000_cnt {
 	int counter;
 	int counter;
 	unsigned short value;
 	unsigned short value;
-} me4000_cnt_t;
+};
 
 
-typedef struct me4000_cnt_config {
+struct me4000_cnt_config {
 	int counter;
 	int counter;
 	int mode;
 	int mode;
-} me4000_cnt_config_t;
+};
 
 
 /*-----------------------------------------------------------------------------
 /*-----------------------------------------------------------------------------
   Type definitions for external interrupt
   Type definitions for external interrupt
   ----------------------------------------------------------------------------*/
   ----------------------------------------------------------------------------*/
 
 
-typedef struct {
+struct me4000_int {
 	int int1_count;
 	int int1_count;
 	int int2_count;
 	int int2_count;
-} me4000_int_type;
+};
 
 
 /*-----------------------------------------------------------------------------
 /*-----------------------------------------------------------------------------
   The ioctls of the board
   The ioctls of the board
@@ -888,7 +886,8 @@ typedef struct {
 
 
 #define ME4000_IOCTL_MAXNR 50
 #define ME4000_IOCTL_MAXNR 50
 #define ME4000_MAGIC 'y'
 #define ME4000_MAGIC 'y'
-#define ME4000_GET_USER_INFO          _IOR (ME4000_MAGIC, 0, me4000_user_info_t)
+#define ME4000_GET_USER_INFO          _IOR (ME4000_MAGIC, 0, \
+					    struct me4000_user_info)
 
 
 #define ME4000_AO_START               _IOW (ME4000_MAGIC, 1, unsigned long)
 #define ME4000_AO_START               _IOW (ME4000_MAGIC, 1, unsigned long)
 #define ME4000_AO_STOP                _IO  (ME4000_MAGIC, 2)
 #define ME4000_AO_STOP                _IO  (ME4000_MAGIC, 2)
@@ -904,25 +903,35 @@ typedef struct {
 #define ME4000_AO_DISABLE_DO          _IO  (ME4000_MAGIC, 12)
 #define ME4000_AO_DISABLE_DO          _IO  (ME4000_MAGIC, 12)
 #define ME4000_AO_FSM_STATE           _IOR (ME4000_MAGIC, 13, int)
 #define ME4000_AO_FSM_STATE           _IOR (ME4000_MAGIC, 13, int)
 
 
-#define ME4000_AI_SINGLE              _IOR (ME4000_MAGIC, 14, me4000_ai_single_t)
+#define ME4000_AI_SINGLE              _IOR (ME4000_MAGIC, 14, \
+					    struct me4000_ai_single)
 #define ME4000_AI_START               _IOW (ME4000_MAGIC, 15, unsigned long)
 #define ME4000_AI_START               _IOW (ME4000_MAGIC, 15, unsigned long)
 #define ME4000_AI_STOP                _IO  (ME4000_MAGIC, 16)
 #define ME4000_AI_STOP                _IO  (ME4000_MAGIC, 16)
 #define ME4000_AI_IMMEDIATE_STOP      _IO  (ME4000_MAGIC, 17)
 #define ME4000_AI_IMMEDIATE_STOP      _IO  (ME4000_MAGIC, 17)
 #define ME4000_AI_EX_TRIG_ENABLE      _IO  (ME4000_MAGIC, 18)
 #define ME4000_AI_EX_TRIG_ENABLE      _IO  (ME4000_MAGIC, 18)
 #define ME4000_AI_EX_TRIG_DISABLE     _IO  (ME4000_MAGIC, 19)
 #define ME4000_AI_EX_TRIG_DISABLE     _IO  (ME4000_MAGIC, 19)
-#define ME4000_AI_EX_TRIG_SETUP       _IOW (ME4000_MAGIC, 20, me4000_ai_trigger_t)
-#define ME4000_AI_CONFIG              _IOW (ME4000_MAGIC, 21, me4000_ai_config_t)
-#define ME4000_AI_SC_SETUP            _IOW (ME4000_MAGIC, 22, me4000_ai_sc_t)
+#define ME4000_AI_EX_TRIG_SETUP       _IOW (ME4000_MAGIC, 20, \
+					    struct me4000_ai_trigger)
+#define ME4000_AI_CONFIG              _IOW (ME4000_MAGIC, 21, \
+					    struct me4000_ai_config)
+#define ME4000_AI_SC_SETUP            _IOW (ME4000_MAGIC, 22, \
+					    struct me4000_ai_sc)
 #define ME4000_AI_FSM_STATE           _IOR (ME4000_MAGIC, 23, int)
 #define ME4000_AI_FSM_STATE           _IOR (ME4000_MAGIC, 23, int)
 
 
-#define ME4000_DIO_CONFIG             _IOW (ME4000_MAGIC, 24, me4000_dio_config_t)
-#define ME4000_DIO_GET_BYTE           _IOR (ME4000_MAGIC, 25, me4000_dio_byte_t)
-#define ME4000_DIO_SET_BYTE           _IOW (ME4000_MAGIC, 26, me4000_dio_byte_t)
+#define ME4000_DIO_CONFIG             _IOW (ME4000_MAGIC, 24, \
+					    struct me4000_dio_config)
+#define ME4000_DIO_GET_BYTE           _IOR (ME4000_MAGIC, 25, \
+					    struct me4000_dio_byte)
+#define ME4000_DIO_SET_BYTE           _IOW (ME4000_MAGIC, 26, \
+					    struct me4000_dio_byte)
 #define ME4000_DIO_RESET              _IO  (ME4000_MAGIC, 27)
 #define ME4000_DIO_RESET              _IO  (ME4000_MAGIC, 27)
 
 
-#define ME4000_CNT_READ               _IOR (ME4000_MAGIC, 28, me4000_cnt_t)
-#define ME4000_CNT_WRITE              _IOW (ME4000_MAGIC, 29, me4000_cnt_t)
-#define ME4000_CNT_CONFIG             _IOW (ME4000_MAGIC, 30, me4000_cnt_config_t)
+#define ME4000_CNT_READ               _IOR (ME4000_MAGIC, 28, \
+					    struct me4000_cnt)
+#define ME4000_CNT_WRITE              _IOW (ME4000_MAGIC, 29, \
+					    struct me4000_cnt)
+#define ME4000_CNT_CONFIG             _IOW (ME4000_MAGIC, 30, \
+					    struct me4000_cnt_config)
 #define ME4000_CNT_RESET              _IO  (ME4000_MAGIC, 31)
 #define ME4000_CNT_RESET              _IO  (ME4000_MAGIC, 31)
 
 
 #define ME4000_EXT_INT_DISABLE        _IO  (ME4000_MAGIC, 32)
 #define ME4000_EXT_INT_DISABLE        _IO  (ME4000_MAGIC, 32)
@@ -934,13 +943,16 @@ typedef struct {
 #define ME4000_AI_FULLSCALE_ENABLE    _IO  (ME4000_MAGIC, 37)
 #define ME4000_AI_FULLSCALE_ENABLE    _IO  (ME4000_MAGIC, 37)
 #define ME4000_AI_FULLSCALE_DISABLE   _IO  (ME4000_MAGIC, 38)
 #define ME4000_AI_FULLSCALE_DISABLE   _IO  (ME4000_MAGIC, 38)
 
 
-#define ME4000_AI_EEPROM_READ         _IOR (ME4000_MAGIC, 39, me4000_eeprom_t)
-#define ME4000_AI_EEPROM_WRITE        _IOW (ME4000_MAGIC, 40, me4000_eeprom_t)
+#define ME4000_AI_EEPROM_READ         _IOR (ME4000_MAGIC, 39, \
+					    struct me4000_eeprom)
+#define ME4000_AI_EEPROM_WRITE        _IOW (ME4000_MAGIC, 40, \
+					    struct me4000_eeprom)
 
 
 #define ME4000_AO_SIMULTANEOUS_EX_TRIG _IO  (ME4000_MAGIC, 41)
 #define ME4000_AO_SIMULTANEOUS_EX_TRIG _IO  (ME4000_MAGIC, 41)
 #define ME4000_AO_SIMULTANEOUS_SW      _IO  (ME4000_MAGIC, 42)
 #define ME4000_AO_SIMULTANEOUS_SW      _IO  (ME4000_MAGIC, 42)
 #define ME4000_AO_SIMULTANEOUS_DISABLE _IO  (ME4000_MAGIC, 43)
 #define ME4000_AO_SIMULTANEOUS_DISABLE _IO  (ME4000_MAGIC, 43)
-#define ME4000_AO_SIMULTANEOUS_UPDATE  _IOW (ME4000_MAGIC, 44, me4000_ao_channel_list_t)
+#define ME4000_AO_SIMULTANEOUS_UPDATE  _IOW (ME4000_MAGIC, 44, \
+					     struct me4000_ao_channel_list)
 
 
 #define ME4000_AO_SYNCHRONOUS_EX_TRIG  _IO  (ME4000_MAGIC, 45)
 #define ME4000_AO_SYNCHRONOUS_EX_TRIG  _IO  (ME4000_MAGIC, 45)
 #define ME4000_AO_SYNCHRONOUS_SW       _IO  (ME4000_MAGIC, 46)
 #define ME4000_AO_SYNCHRONOUS_SW       _IO  (ME4000_MAGIC, 46)

Some files were not shown because too many files changed in this diff