1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  *   Copyright (C) 2016 Namjae Jeon <linkinjeon@kernel.org>
4  *   Copyright (C) 2018 Samsung Electronics Co., Ltd.
5  */
6 
7 #ifndef __KSMBD_GLOB_H
8 #define __KSMBD_GLOB_H
9 
10 #include <linux/ctype.h>
11 
12 #include "unicode.h"
13 #include "vfs_cache.h"
14 
15 extern int ksmbd_debug_types;
16 
17 #define KSMBD_DEBUG_SMB		BIT(0)
18 #define KSMBD_DEBUG_AUTH	BIT(1)
19 #define KSMBD_DEBUG_VFS		BIT(2)
20 #define KSMBD_DEBUG_OPLOCK      BIT(3)
21 #define KSMBD_DEBUG_IPC         BIT(4)
22 #define KSMBD_DEBUG_CONN        BIT(5)
23 #define KSMBD_DEBUG_RDMA        BIT(6)
24 #define KSMBD_DEBUG_ALL         (KSMBD_DEBUG_SMB | KSMBD_DEBUG_AUTH |	\
25 				KSMBD_DEBUG_VFS | KSMBD_DEBUG_OPLOCK |	\
26 				KSMBD_DEBUG_IPC | KSMBD_DEBUG_CONN |	\
27 				KSMBD_DEBUG_RDMA)
28 
29 #ifdef pr_fmt
30 #undef pr_fmt
31 #endif
32 
33 #ifdef SUBMOD_NAME
34 #define pr_fmt(fmt)	"ksmbd: " SUBMOD_NAME ": " fmt
35 #else
36 #define pr_fmt(fmt)	"ksmbd: " fmt
37 #endif
38 
39 #define ksmbd_debug(type, fmt, ...)				\
40 	do {							\
41 		if (ksmbd_debug_types & KSMBD_DEBUG_##type)	\
42 			pr_info(fmt, ##__VA_ARGS__);		\
43 	} while (0)
44 
45 #define UNICODE_LEN(x)		((x) * 2)
46 
47 #endif /* __KSMBD_GLOB_H */
48