xref: /linux/drivers/usb/storage/scsiglue.h (revision 59b4e0cd)
1*59b4e0cdSNishad Kamdar /* SPDX-License-Identifier: GPL-2.0+ */
2f0183a33SFelipe Balbi /*
3f0183a33SFelipe Balbi  * Driver for USB Mass Storage compliant devices
41da177e4SLinus Torvalds  * SCSI Connecting Glue Header File
51da177e4SLinus Torvalds  *
61da177e4SLinus Torvalds  * Current development and maintenance by:
71da177e4SLinus Torvalds  *   (c) 1999, 2000 Matthew Dharm (mdharm-usb@one-eyed-alien.net)
81da177e4SLinus Torvalds  *
91da177e4SLinus Torvalds  * This driver is based on the 'USB Mass Storage Class' document. This
101da177e4SLinus Torvalds  * describes in detail the protocol used to communicate with such
111da177e4SLinus Torvalds  * devices.  Clearly, the designers had SCSI and ATAPI commands in
121da177e4SLinus Torvalds  * mind when they created this document.  The commands are all very
131da177e4SLinus Torvalds  * similar to commands in the SCSI-II and ATAPI specifications.
141da177e4SLinus Torvalds  *
151da177e4SLinus Torvalds  * It is important to note that in a number of cases this class
161da177e4SLinus Torvalds  * exhibits class-specific exemptions from the USB specification.
171da177e4SLinus Torvalds  * Notably the usage of NAK, STALL and ACK differs from the norm, in
181da177e4SLinus Torvalds  * that they are used to communicate wait, failed and OK on commands.
191da177e4SLinus Torvalds  *
201da177e4SLinus Torvalds  * Also, for certain devices, the interrupt endpoint is used to convey
211da177e4SLinus Torvalds  * status of a command.
221da177e4SLinus Torvalds  */
231da177e4SLinus Torvalds 
241da177e4SLinus Torvalds #ifndef _SCSIGLUE_H_
251da177e4SLinus Torvalds #define _SCSIGLUE_H_
261da177e4SLinus Torvalds 
271da177e4SLinus Torvalds extern void usb_stor_report_device_reset(struct us_data *us);
284d07ef76SMatthew Dharm extern void usb_stor_report_bus_reset(struct us_data *us);
29aa519be3SAkinobu Mita extern void usb_stor_host_template_init(struct scsi_host_template *sht,
30aa519be3SAkinobu Mita 					const char *name, struct module *owner);
311da177e4SLinus Torvalds 
321da177e4SLinus Torvalds extern unsigned char usb_stor_sense_invalidCDB[18];
331da177e4SLinus Torvalds 
341da177e4SLinus Torvalds #endif
35