]>
Commit | Line | Data |
---|---|---|
5fd54ace | 1 | // SPDX-License-Identifier: GPL-2.0+ |
f0183a33 FB |
2 | /* |
3 | * Driver for USB Mass Storage compliant devices | |
1da177e4 LT |
4 | * Debugging Functions Header File |
5 | * | |
1da177e4 LT |
6 | * Current development and maintenance by: |
7 | * (c) 1999-2002 Matthew Dharm (mdharm-usb@one-eyed-alien.net) | |
8 | * | |
9 | * Initial work by: | |
10 | * (c) 1999 Michael Gee (michael@linuxspecific.com) | |
11 | * | |
12 | * This driver is based on the 'USB Mass Storage Class' document. This | |
13 | * describes in detail the protocol used to communicate with such | |
14 | * devices. Clearly, the designers had SCSI and ATAPI commands in | |
15 | * mind when they created this document. The commands are all very | |
16 | * similar to commands in the SCSI-II and ATAPI specifications. | |
17 | * | |
18 | * It is important to note that in a number of cases this class | |
19 | * exhibits class-specific exemptions from the USB specification. | |
20 | * Notably the usage of NAK, STALL and ACK differs from the norm, in | |
21 | * that they are used to communicate wait, failed and OK on commands. | |
22 | * | |
23 | * Also, for certain devices, the interrupt endpoint is used to convey | |
24 | * status of a command. | |
1da177e4 LT |
25 | */ |
26 | ||
27 | #ifndef _DEBUG_H_ | |
28 | #define _DEBUG_H_ | |
29 | ||
1da177e4 LT |
30 | #include <linux/kernel.h> |
31 | ||
32 | #define USB_STORAGE "usb-storage: " | |
33 | ||
34 | #ifdef CONFIG_USB_STORAGE_DEBUG | |
191648d0 JP |
35 | void usb_stor_show_command(const struct us_data *us, struct scsi_cmnd *srb); |
36 | void usb_stor_show_sense(const struct us_data *us, unsigned char key, | |
37 | unsigned char asc, unsigned char ascq); | |
e5283626 JP |
38 | __printf(2, 3) void usb_stor_dbg(const struct us_data *us, |
39 | const char *fmt, ...); | |
75b9130e | 40 | |
75b9130e | 41 | #define US_DEBUG(x) x |
1da177e4 | 42 | #else |
191648d0 | 43 | __printf(2, 3) |
e5283626 JP |
44 | static inline void _usb_stor_dbg(const struct us_data *us, |
45 | const char *fmt, ...) | |
46 | { | |
47 | } | |
191648d0 JP |
48 | #define usb_stor_dbg(us, fmt, ...) \ |
49 | do { if (0) _usb_stor_dbg(us, fmt, ##__VA_ARGS__); } while (0) | |
1da177e4 LT |
50 | #define US_DEBUG(x) |
51 | #endif | |
52 | ||
53 | #endif |