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
15extern 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