18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef _FCOE_LIBFCOE_H_ 38c2ecf20Sopenharmony_ci#define _FCOE_LIBFCOE_H_ 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ciextern unsigned int libfcoe_debug_logging; 68c2ecf20Sopenharmony_ci#define LIBFCOE_LOGGING 0x01 /* General logging, not categorized */ 78c2ecf20Sopenharmony_ci#define LIBFCOE_FIP_LOGGING 0x02 /* FIP logging */ 88c2ecf20Sopenharmony_ci#define LIBFCOE_TRANSPORT_LOGGING 0x04 /* FCoE transport logging */ 98c2ecf20Sopenharmony_ci#define LIBFCOE_SYSFS_LOGGING 0x08 /* fcoe_sysfs logging */ 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#define LIBFCOE_CHECK_LOGGING(LEVEL, CMD) \ 128c2ecf20Sopenharmony_cido { \ 138c2ecf20Sopenharmony_ci if (unlikely(libfcoe_debug_logging & LEVEL)) \ 148c2ecf20Sopenharmony_ci do { \ 158c2ecf20Sopenharmony_ci CMD; \ 168c2ecf20Sopenharmony_ci } while (0); \ 178c2ecf20Sopenharmony_ci} while (0) 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci#define LIBFCOE_DBG(fmt, args...) \ 208c2ecf20Sopenharmony_ci LIBFCOE_CHECK_LOGGING(LIBFCOE_LOGGING, \ 218c2ecf20Sopenharmony_ci pr_info("libfcoe: " fmt, ##args);) 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#define LIBFCOE_FIP_DBG(fip, fmt, args...) \ 248c2ecf20Sopenharmony_ci LIBFCOE_CHECK_LOGGING(LIBFCOE_FIP_LOGGING, \ 258c2ecf20Sopenharmony_ci pr_info("host%d: fip: " fmt, \ 268c2ecf20Sopenharmony_ci (fip)->lp->host->host_no, ##args);) 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci#define LIBFCOE_TRANSPORT_DBG(fmt, args...) \ 298c2ecf20Sopenharmony_ci LIBFCOE_CHECK_LOGGING(LIBFCOE_TRANSPORT_LOGGING, \ 308c2ecf20Sopenharmony_ci pr_info("%s: " fmt, __func__, ##args);) 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#define LIBFCOE_SYSFS_DBG(cdev, fmt, args...) \ 338c2ecf20Sopenharmony_ci LIBFCOE_CHECK_LOGGING(LIBFCOE_SYSFS_LOGGING, \ 348c2ecf20Sopenharmony_ci pr_info("ctlr_%d: " fmt, cdev->id, ##args);) 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci#endif /* _FCOE_LIBFCOE_H_ */ 37