Merge tag 'pci-v4.19-fixes-3' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6/btrfs-unstable.git] / fs / cifs / cifs_debug.h
blobf4f3f0853c6eb289143de0802601567878294380
1 /*
3 * Copyright (c) International Business Machines Corp., 2000,2002
4 * Modified by Steve French (sfrench@us.ibm.com)
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.
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.
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
22 #ifndef _H_CIFS_DEBUG
23 #define _H_CIFS_DEBUG
25 void cifs_dump_mem(char *label, void *data, int length);
26 void cifs_dump_detail(void *buf, struct TCP_Server_Info *ptcp_info);
27 void cifs_dump_mids(struct TCP_Server_Info *);
28 extern bool traceSMB; /* flag which enables the function below */
29 void dump_smb(void *, int);
30 #define CIFS_INFO 0x01
31 #define CIFS_RC 0x02
32 #define CIFS_TIMER 0x04
34 #define VFS 1
35 #define FYI 2
36 extern int cifsFYI;
37 #ifdef CONFIG_CIFS_DEBUG2
38 #define NOISY 4
39 #else
40 #define NOISY 0
41 #endif
42 #define ONCE 8
45 * debug ON
46 * --------
48 #ifdef CONFIG_CIFS_DEBUG
50 /* information message: e.g., configuration, major event */
51 #define cifs_dbg_func(ratefunc, type, fmt, ...) \
52 do { \
53 if ((type) & FYI && cifsFYI & CIFS_INFO) { \
54 pr_debug_ ## ratefunc("%s: " \
55 fmt, __FILE__, ##__VA_ARGS__); \
56 } else if ((type) & VFS) { \
57 pr_err_ ## ratefunc("CIFS VFS: " \
58 fmt, ##__VA_ARGS__); \
59 } else if ((type) & NOISY && (NOISY != 0)) { \
60 pr_debug_ ## ratefunc(fmt, ##__VA_ARGS__); \
61 } \
62 } while (0)
64 #define cifs_dbg(type, fmt, ...) \
65 do { \
66 if ((type) & ONCE) \
67 cifs_dbg_func(once, \
68 type, fmt, ##__VA_ARGS__); \
69 else \
70 cifs_dbg_func(ratelimited, \
71 type, fmt, ##__VA_ARGS__); \
72 } while (0)
75 * debug OFF
76 * ---------
78 #else /* _CIFS_DEBUG */
79 #define cifs_dbg(type, fmt, ...) \
80 do { \
81 if (0) \
82 pr_debug(fmt, ##__VA_ARGS__); \
83 } while (0)
84 #endif
86 #endif /* _H_CIFS_DEBUG */