rem: dump_scsi_command((uchar*)&raw_command);
context: read_table_of_contents(int deviceFD, uint32 first_session, uchar *buffer,                       uint16 buffer_length, bool msf){	raw_device_command raw_command;	scsi_table_of_contents_command *scsi_command = NULL;	const uint32 sense_data_length = 1024;	uchar sense_data[sense_data_length];	status_t error = buffer ? B_OK : B_BAD_VALUE;	scsi_table_of_contents_command cmdo;		TRACE(("%s: read_table_of_contents: (%d, %p, %ld)\n", kModuleDebugName,	       deviceFD, buffer, buffer_length));	if (error)		return error;			memset(raw_command.command, 0, 16);	scsi_command = (scsi_table_of_contents_command*)(raw_command.command);	cmdo.command = 0x43;	cmdo.msf = 0;	cmdo.format = 2;	cmdo.number = first_session;	cmdo.length = B_HOST_TO_BENDIAN_INT16(buffer_length);	cmdo.control = 0;	cmdo.reserved0 = cmdo.reserved1 = cmdo.reserved2 = cmdo.reserved3 = cmdo.reserved4	               = cmdo.reserved5 = cmdo.reserved6 = 0;	/*	scsi_command->command = 0x43;	scsi_command->msf = msf;	dprintf("format == 0x%lx\n", scsi_command->format);	scsi_command->format = 0x10;//kFullTableOfContentsFormat;	dprintf("format == 0x%lx\n", scsi_command->format);	scsi_command->number = 0;	scsi_command->length = B_HOST_TO_BENDIAN_INT16(buffer_length);	scsi_command->control = 0;	scsi_command->reserved0 = scsi_command->reserved1 = scsi_command->reserved2	                        = scsi_command->reserved3 = scsi_command->reserved4	                        = scsi_command->reserved5 = scsi_command->reserved6 = 0;*/	memcpy(raw_command.command, &cmdo, sizeof(cmdo));	raw_command.command_length = 10;	raw_command.flags = kScsiFlags;	raw_command.scsi_status = 0;		raw_command.cam_status = 0;	raw_command.data = buffer;	raw_command.data_length = buffer_length;	memset(raw_command.data, 0, raw_command.data_length);	raw_command.sense_data = sense_data;	raw_command.sense_data_length = sense_data_length;	memset(raw_command.sense_data, 0, raw_command.sense_data_length);	raw_command.timeout = kScsiTimeout;			dump_scsi_command((uchar*)&raw_command);	if (ioctl(deviceFD, B_RAW_DEVICE_COMMAND, &raw_command) == 0) {		dump_scsi_command((uchar*)&raw_command);		if (raw_command.scsi_status == 0 && raw_command.cam_status == 1) {			// SUCCESS!!!//			dump_full_table_of_contents(buffer, buffer_length);		} else {			error = B_FILE_ERROR;			TRACE(("%s: scsi ioctl succeeded, but scsi command failed\n",			       kModuleDebugName));		}	} else {		error = errno;		TRACE(("%s: scsi command failed with error 0x%lx\n", kModuleDebugName,		       error));	}	return error;	}