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