162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef _FCOE_LIBFCOE_H_ 362306a36Sopenharmony_ci#define _FCOE_LIBFCOE_H_ 462306a36Sopenharmony_ci 562306a36Sopenharmony_ciextern unsigned int libfcoe_debug_logging; 662306a36Sopenharmony_ci#define LIBFCOE_LOGGING 0x01 /* General logging, not categorized */ 762306a36Sopenharmony_ci#define LIBFCOE_FIP_LOGGING 0x02 /* FIP logging */ 862306a36Sopenharmony_ci#define LIBFCOE_TRANSPORT_LOGGING 0x04 /* FCoE transport logging */ 962306a36Sopenharmony_ci#define LIBFCOE_SYSFS_LOGGING 0x08 /* fcoe_sysfs logging */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#define LIBFCOE_CHECK_LOGGING(LEVEL, CMD) \ 1262306a36Sopenharmony_cido { \ 1362306a36Sopenharmony_ci if (unlikely(libfcoe_debug_logging & LEVEL)) \ 1462306a36Sopenharmony_ci do { \ 1562306a36Sopenharmony_ci CMD; \ 1662306a36Sopenharmony_ci } while (0); \ 1762306a36Sopenharmony_ci} while (0) 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#define LIBFCOE_DBG(fmt, args...) \ 2062306a36Sopenharmony_ci LIBFCOE_CHECK_LOGGING(LIBFCOE_LOGGING, \ 2162306a36Sopenharmony_ci pr_info("libfcoe: " fmt, ##args);) 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci#define LIBFCOE_FIP_DBG(fip, fmt, args...) \ 2462306a36Sopenharmony_ci LIBFCOE_CHECK_LOGGING(LIBFCOE_FIP_LOGGING, \ 2562306a36Sopenharmony_ci pr_info("host%d: fip: " fmt, \ 2662306a36Sopenharmony_ci (fip)->lp->host->host_no, ##args);) 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#define LIBFCOE_TRANSPORT_DBG(fmt, args...) \ 2962306a36Sopenharmony_ci LIBFCOE_CHECK_LOGGING(LIBFCOE_TRANSPORT_LOGGING, \ 3062306a36Sopenharmony_ci pr_info("%s: " fmt, __func__, ##args);) 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci#define LIBFCOE_SYSFS_DBG(cdev, fmt, args...) \ 3362306a36Sopenharmony_ci LIBFCOE_CHECK_LOGGING(LIBFCOE_SYSFS_LOGGING, \ 3462306a36Sopenharmony_ci pr_info("ctlr_%d: " fmt, cdev->id, ##args);) 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#endif /* _FCOE_LIBFCOE_H_ */ 37