debug.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * Driver for USB Mass Storage compliant devices
  3. * Debugging Functions Header File
  4. *
  5. * Current development and maintenance by:
  6. * (c) 1999-2002 Matthew Dharm (mdharm-usb@one-eyed-alien.net)
  7. *
  8. * Initial work by:
  9. * (c) 1999 Michael Gee (michael@linuxspecific.com)
  10. *
  11. * This driver is based on the 'USB Mass Storage Class' document. This
  12. * describes in detail the protocol used to communicate with such
  13. * devices. Clearly, the designers had SCSI and ATAPI commands in
  14. * mind when they created this document. The commands are all very
  15. * similar to commands in the SCSI-II and ATAPI specifications.
  16. *
  17. * It is important to note that in a number of cases this class
  18. * exhibits class-specific exemptions from the USB specification.
  19. * Notably the usage of NAK, STALL and ACK differs from the norm, in
  20. * that they are used to communicate wait, failed and OK on commands.
  21. *
  22. * Also, for certain devices, the interrupt endpoint is used to convey
  23. * status of a command.
  24. *
  25. * Please see http://www.one-eyed-alien.net/~mdharm/linux-usb for more
  26. * information about this driver.
  27. *
  28. * This program is free software; you can redistribute it and/or modify it
  29. * under the terms of the GNU General Public License as published by the
  30. * Free Software Foundation; either version 2, or (at your option) any
  31. * later version.
  32. *
  33. * This program is distributed in the hope that it will be useful, but
  34. * WITHOUT ANY WARRANTY; without even the implied warranty of
  35. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  36. * General Public License for more details.
  37. *
  38. * You should have received a copy of the GNU General Public License along
  39. * with this program; if not, write to the Free Software Foundation, Inc.,
  40. * 675 Mass Ave, Cambridge, MA 02139, USA.
  41. */
  42. #ifndef _DEBUG_H_
  43. #define _DEBUG_H_
  44. #include <linux/kernel.h>
  45. #define USB_STORAGE "usb-storage: "
  46. #ifdef CONFIG_USB_STORAGE_DEBUG
  47. void usb_stor_show_command(const struct us_data *us, struct scsi_cmnd *srb);
  48. void usb_stor_show_sense(const struct us_data *us, unsigned char key,
  49. unsigned char asc, unsigned char ascq);
  50. __printf(2, 3) void usb_stor_dbg(const struct us_data *us,
  51. const char *fmt, ...);
  52. #define US_DEBUG(x) x
  53. #else
  54. __printf(2, 3)
  55. static inline void _usb_stor_dbg(const struct us_data *us,
  56. const char *fmt, ...)
  57. {
  58. }
  59. #define usb_stor_dbg(us, fmt, ...) \
  60. do { if (0) _usb_stor_dbg(us, fmt, ##__VA_ARGS__); } while (0)
  61. #define US_DEBUG(x)
  62. #endif
  63. #endif