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 #define KSMBD_VERSION	"3.4.2"
16 
17 extern int ksmbd_debug_types;
18 
19 #define KSMBD_DEBUG_SMB		BIT(0)
20 #define KSMBD_DEBUG_AUTH	BIT(1)
21 #define KSMBD_DEBUG_VFS		BIT(2)
22 #define KSMBD_DEBUG_OPLOCK      BIT(3)
23 #define KSMBD_DEBUG_IPC         BIT(4)
24 #define KSMBD_DEBUG_CONN        BIT(5)
25 #define KSMBD_DEBUG_RDMA        BIT(6)
26 #define KSMBD_DEBUG_ALL         (KSMBD_DEBUG_SMB | KSMBD_DEBUG_AUTH |	\
27 				KSMBD_DEBUG_VFS | KSMBD_DEBUG_OPLOCK |	\
28 				KSMBD_DEBUG_IPC | KSMBD_DEBUG_CONN |	\
29 				KSMBD_DEBUG_RDMA)
30 
31 #ifdef pr_fmt
32 #undef pr_fmt
33 #endif
34 
35 #ifdef SUBMOD_NAME
36 #define pr_fmt(fmt)	"ksmbd: " SUBMOD_NAME ": " fmt
37 #else
38 #define pr_fmt(fmt)	"ksmbd: " fmt
39 #endif
40 
41 #define ksmbd_debug(type, fmt, ...)				\
42 	do {							\
43 		if (ksmbd_debug_types & KSMBD_DEBUG_##type)	\
44 			pr_info(fmt, ##__VA_ARGS__);		\
45 	} while (0)
46 
47 #define UNICODE_LEN(x)		((x) * 2)
48 
49 #endif /* __KSMBD_GLOB_H */
50