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
22#ifndef _H_CIFS_DEBUG
23#define _H_CIFS_DEBUG
24
25void cifs_dump_mem(char *label, void *data, int length);
26void cifs_dump_detail(void *);
27void cifs_dump_mids(struct TCP_Server_Info *);
28extern int traceSMB;		/* flag which enables the function below */
29void dump_smb(void *, int);
30#define CIFS_INFO	0x01
31#define CIFS_RC		0x02
32#define CIFS_TIMER	0x04
33
34#define VFS 1
35#define FYI 2
36extern int cifsFYI;
37#ifdef CONFIG_CIFS_DEBUG2
38#define NOISY 4
39#else
40#define NOISY 0
41#endif
42
43/*
44 *	debug ON
45 *	--------
46 */
47#ifdef CONFIG_CIFS_DEBUG
48
49__printf(1, 2) void cifs_vfs_err(const char *fmt, ...);
50
51/* information message: e.g., configuration, major event */
52#define cifs_dbg(type, fmt, ...)					\
53do {									\
54	if (type == FYI && cifsFYI & CIFS_INFO) {			\
55		pr_debug_ratelimited("%s: "				\
56			    fmt, __FILE__, ##__VA_ARGS__);		\
57	} else if (type == VFS) {					\
58		cifs_vfs_err(fmt, ##__VA_ARGS__);			\
59	} else if (type == NOISY && type != 0) {			\
60		pr_debug_ratelimited(fmt, ##__VA_ARGS__);		\
61	}								\
62} while (0)
63
64/*
65 *	debug OFF
66 *	---------
67 */
68#else		/* _CIFS_DEBUG */
69#define cifs_dbg(type, fmt, ...)					\
70do {									\
71	if (0)								\
72		pr_debug(fmt, ##__VA_ARGS__);				\
73} while (0)
74#endif
75
76#endif				/* _H_CIFS_DEBUG */
77