root/drivers/usb/storage/debug.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. __printf

   1 // SPDX-License-Identifier: GPL-2.0+
   2 /*
   3  * Driver for USB Mass Storage compliant devices
   4  * Debugging Functions Header File
   5  *
   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.
  25  */
  26 
  27 #ifndef _DEBUG_H_
  28 #define _DEBUG_H_
  29 
  30 #include <linux/kernel.h>
  31 
  32 #ifdef CONFIG_USB_STORAGE_DEBUG
  33 void usb_stor_show_command(const struct us_data *us, struct scsi_cmnd *srb);
  34 void usb_stor_show_sense(const struct us_data *us, unsigned char key,
  35                          unsigned char asc, unsigned char ascq);
  36 __printf(2, 3) void usb_stor_dbg(const struct us_data *us,
  37                                  const char *fmt, ...);
  38 
  39 #define US_DEBUG(x)             x
  40 #else
  41 __printf(2, 3)
  42 static inline void _usb_stor_dbg(const struct us_data *us,
  43                                  const char *fmt, ...)
  44 {
  45 }
  46 #define usb_stor_dbg(us, fmt, ...)                              \
  47         do { if (0) _usb_stor_dbg(us, fmt, ##__VA_ARGS__); } while (0)
  48 #define US_DEBUG(x)
  49 #endif
  50 
  51 #endif

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