cifs_debug.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  2. *
  3. * Copyright (c) International Business Machines Corp., 2000,2002
  4. * Modified by Steve French (sfrench@us.ibm.com)
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 2 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
  14. * the GNU General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program; if not, write to the Free Software
  18. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  19. *
  20. */
  21. #ifndef _H_CIFS_DEBUG
  22. #define _H_CIFS_DEBUG
  23. void cifs_dump_mem(char *label, void *data, int length);
  24. void cifs_dump_detail(void *buf, struct TCP_Server_Info *ptcp_info);
  25. void cifs_dump_mids(struct TCP_Server_Info *);
  26. extern bool traceSMB; /* flag which enables the function below */
  27. void dump_smb(void *, int);
  28. #define CIFS_INFO 0x01
  29. #define CIFS_RC 0x02
  30. #define CIFS_TIMER 0x04
  31. #define VFS 1
  32. #define FYI 2
  33. extern int cifsFYI;
  34. #ifdef CONFIG_CIFS_DEBUG2
  35. #define NOISY 4
  36. #else
  37. #define NOISY 0
  38. #endif
  39. #define ONCE 8
  40. /*
  41. * debug ON
  42. * --------
  43. */
  44. #ifdef CONFIG_CIFS_DEBUG
  45. /* information message: e.g., configuration, major event */
  46. #define cifs_dbg_func(ratefunc, type, fmt, ...) \
  47. do { \
  48. if ((type) & FYI && cifsFYI & CIFS_INFO) { \
  49. pr_debug_ ## ratefunc("%s: " \
  50. fmt, __FILE__, ##__VA_ARGS__); \
  51. } else if ((type) & VFS) { \
  52. pr_err_ ## ratefunc("CIFS VFS: " \
  53. fmt, ##__VA_ARGS__); \
  54. } else if ((type) & NOISY && (NOISY != 0)) { \
  55. pr_debug_ ## ratefunc(fmt, ##__VA_ARGS__); \
  56. } \
  57. } while (0)
  58. #define cifs_dbg(type, fmt, ...) \
  59. do { \
  60. if ((type) & ONCE) \
  61. cifs_dbg_func(once, \
  62. type, fmt, ##__VA_ARGS__); \
  63. else \
  64. cifs_dbg_func(ratelimited, \
  65. type, fmt, ##__VA_ARGS__); \
  66. } while (0)
  67. /*
  68. * debug OFF
  69. * ---------
  70. */
  71. #else /* _CIFS_DEBUG */
  72. #define cifs_dbg(type, fmt, ...) \
  73. do { \
  74. if (0) \
  75. pr_debug(fmt, ##__VA_ARGS__); \
  76. } while (0)
  77. #endif
  78. #endif /* _H_CIFS_DEBUG */