- *data = (struct cmbdata) {
- /* we only know values before device_busy_time */
- .size = offsetof(struct cmbdata, device_busy_time),
-
- /* conver to nanoseconds */
- .elapsed_time = (time * 1000) >> 12,
-
- /* copy data to new structure */
- .ssch_rsch_count = cmb.ssch_rsch_count,
- .sample_count = cmb.sample_count,
-
- /* time fields are converted to nanoseconds while copying */
- .device_connect_time
- = time_to_nsec(cmb.device_connect_time),
- .function_pending_time
- = time_to_nsec(cmb.function_pending_time),
- .device_disconnect_time
- = time_to_nsec(cmb.device_disconnect_time),
- .control_unit_queuing_time
- = time_to_nsec(cmb.control_unit_queuing_time),
- .device_active_only_time
- = time_to_nsec(cmb.device_active_only_time),
- .device_busy_time
- = time_to_nsec(cmb.device_busy_time),
- .initial_command_response_time
- = time_to_nsec(cmb.initial_command_response_time),
- };
+ memset (data, 0, sizeof(struct cmbdata));
+
+ /* we only know values before device_busy_time */
+ data->size = offsetof(struct cmbdata, device_busy_time);
+
+ /* conver to nanoseconds */
+ data->elapsed_time = (time * 1000) >> 12;
+
+ /* copy data to new structure */
+ data->ssch_rsch_count = cmb.ssch_rsch_count;
+ data->sample_count = cmb.sample_count;
+
+ /* time fields are converted to nanoseconds while copying */
+ data->device_connect_time = time_to_nsec(cmb.device_connect_time);
+ data->function_pending_time = time_to_nsec(cmb.function_pending_time);
+ data->device_disconnect_time = time_to_nsec(cmb.device_disconnect_time);
+ data->control_unit_queuing_time
+ = time_to_nsec(cmb.control_unit_queuing_time);
+ data->device_active_only_time
+ = time_to_nsec(cmb.device_active_only_time);
+ data->device_busy_time = time_to_nsec(cmb.device_busy_time);
+ data->initial_command_response_time
+ = time_to_nsec(cmb.initial_command_response_time);