root/drivers/usb/storage/protocol.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 // SPDX-License-Identifier: GPL-2.0+
   2 /*
   3  * Driver for USB Mass Storage compliant devices
   4  * Protocol Functions Header File
   5  *
   6  * Current development and maintenance by:
   7  *   (c) 1999, 2000 Matthew Dharm (mdharm-usb@one-eyed-alien.net)
   8  *
   9  * This driver is based on the 'USB Mass Storage Class' document. This
  10  * describes in detail the protocol used to communicate with such
  11  * devices.  Clearly, the designers had SCSI and ATAPI commands in
  12  * mind when they created this document.  The commands are all very
  13  * similar to commands in the SCSI-II and ATAPI specifications.
  14  *
  15  * It is important to note that in a number of cases this class
  16  * exhibits class-specific exemptions from the USB specification.
  17  * Notably the usage of NAK, STALL and ACK differs from the norm, in
  18  * that they are used to communicate wait, failed and OK on commands.
  19  *
  20  * Also, for certain devices, the interrupt endpoint is used to convey
  21  * status of a command.
  22  */
  23 
  24 #ifndef _PROTOCOL_H_
  25 #define _PROTOCOL_H_
  26 
  27 /* Protocol handling routines */
  28 extern void usb_stor_pad12_command(struct scsi_cmnd*, struct us_data*);
  29 extern void usb_stor_ufi_command(struct scsi_cmnd*, struct us_data*);
  30 extern void usb_stor_transparent_scsi_command(struct scsi_cmnd*,
  31                 struct us_data*);
  32 
  33 /* struct scsi_cmnd transfer buffer access utilities */
  34 enum xfer_buf_dir       {TO_XFER_BUF, FROM_XFER_BUF};
  35 
  36 extern unsigned int usb_stor_access_xfer_buf(unsigned char *buffer,
  37         unsigned int buflen, struct scsi_cmnd *srb, struct scatterlist **,
  38         unsigned int *offset, enum xfer_buf_dir dir);
  39 
  40 extern void usb_stor_set_xfer_buf(unsigned char *buffer,
  41         unsigned int buflen, struct scsi_cmnd *srb);
  42 #endif

/* [<][>][^][v][top][bottom][index][help] */