1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _FCOE_LIBFCOE_H_
3#define _FCOE_LIBFCOE_H_
4
5extern unsigned int libfcoe_debug_logging;
6#define LIBFCOE_LOGGING	          0x01 /* General logging, not categorized */
7#define LIBFCOE_FIP_LOGGING       0x02 /* FIP logging */
8#define LIBFCOE_TRANSPORT_LOGGING 0x04 /* FCoE transport logging */
9#define LIBFCOE_SYSFS_LOGGING     0x08 /* fcoe_sysfs logging */
10
11#define LIBFCOE_CHECK_LOGGING(LEVEL, CMD)		\
12do {							\
13	if (unlikely(libfcoe_debug_logging & LEVEL))	\
14		do {					\
15			CMD;				\
16		} while (0);				\
17} while (0)
18
19#define LIBFCOE_DBG(fmt, args...)					\
20	LIBFCOE_CHECK_LOGGING(LIBFCOE_LOGGING,				\
21			      pr_info("libfcoe: " fmt, ##args);)
22
23#define LIBFCOE_FIP_DBG(fip, fmt, args...)				\
24	LIBFCOE_CHECK_LOGGING(LIBFCOE_FIP_LOGGING,			\
25			      pr_info("host%d: fip: " fmt,		\
26				      (fip)->lp->host->host_no, ##args);)
27
28#define LIBFCOE_TRANSPORT_DBG(fmt, args...)				\
29	LIBFCOE_CHECK_LOGGING(LIBFCOE_TRANSPORT_LOGGING,		\
30			      pr_info("%s: " fmt, __func__, ##args);)
31
32#define LIBFCOE_SYSFS_DBG(cdev, fmt, args...)				\
33	LIBFCOE_CHECK_LOGGING(LIBFCOE_SYSFS_LOGGING,			\
34			      pr_info("ctlr_%d: " fmt, cdev->id, ##args);)
35
36#endif /* _FCOE_LIBFCOE_H_ */
37