07.06.2013 Views

Scsi - Index of

Scsi - Index of

Scsi - Index of

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

623 srb->cmnd[0] = REQUEST_SENSE;<br />

624 srb->cmnd[1] = old_cmnd[1] & 0xE0;<br />

625 srb->cmnd[4] = 18;<br />

626<br />

627 /* FIXME: we must do the protocol translation here */<br />

628 if (us->subclass == US_SC_RBC || us->subclass == US_SC_SCSI)<br />

629 srb->cmd_len = 6;<br />

630 else<br />

631 srb->cmd_len = 12;<br />

632<br />

633 /* set the transfer direction */<br />

634 old_sc_data_direction = srb->sc_data_direction;<br />

635 srb->sc_data_direction = DMA_FROM_DEVICE;<br />

636<br />

637 /* use the new buffer we have */<br />

638 old_request_buffer = srb->request_buffer;<br />

639 srb->request_buffer = srb->sense_buffer;<br />

640<br />

641 /* set the buffer length for transfer */<br />

642 old_request_bufflen = srb->request_bufflen;<br />

643 srb->request_bufflen = 18;<br />

644<br />

645 /* set up for no scatter-gather use */<br />

148<br />

646 old_sg = srb->use_sg;<br />

647 srb->use_sg = 0;<br />

648<br />

649 /* change the serial number -- toggle the high bit*/<br />

650 old_serial_number = srb->serial_number;<br />

651 srb->serial_number ^= 0x80000000;<br />

652<br />

653 /* issue the auto-sense command */<br />

654 old_resid = srb->resid;<br />

655 srb->resid = 0;<br />

656 temp_result = us->transport(us->srb, us);<br />

657<br />

658 /* let's clean up right away */<br />

659 srb->resid = old_resid;<br />

660 srb->request_buffer = old_request_buffer;<br />

661 srb->request_bufflen = old_request_bufflen;<br />

662 srb->use_sg = old_sg;<br />

663 srb->serial_number = old_serial_number;<br />

664 srb->sc_data_direction = old_sc_data_direction;<br />

665 srb->cmd_len = old_cmd_len;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!