/******************************************************************* * This file is part of the Emulex Linux Device Driver for * * Fibre Channel Host Bus Adapters. * * Copyright (C) 2017-2018 Broadcom. All Rights Reserved. The term * * “Broadcom” refers to Broadcom Limited and/or its subsidiaries. * * Copyright (C) 2004-2009 Emulex. All rights reserved. * * EMULEX and SLI are trademarks of Emulex. * * www.broadcom.com * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of version 2 of the GNU General * * Public License as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful. * * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND * * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, * * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE * * DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD * * TO BE LEGALLY INVALID. See the GNU General Public License for * * more details, a copy of which can be found in the file COPYING * * included with this package. * *******************************************************************/ #define LOG_ELS 0x00000001 /* ELS events */ #define LOG_DISCOVERY 0x00000002 /* Link discovery events */ #define LOG_MBOX 0x00000004 /* Mailbox events */ #define LOG_INIT 0x00000008 /* Initialization events */ #define LOG_LINK_EVENT 0x00000010 /* Link events */ #define LOG_IP 0x00000020 /* IP traffic history */ #define LOG_FCP 0x00000040 /* FCP traffic history */ #define LOG_NODE 0x00000080 /* Node table events */ #define LOG_TEMP 0x00000100 /* Temperature sensor events */ #define LOG_BG 0x00000200 /* BlockGuard events */ #define LOG_MISC 0x00000400 /* Miscellaneous events */ #define LOG_SLI 0x00000800 /* SLI events */ #define LOG_FCP_ERROR 0x00001000 /* log errors, not underruns */ #define LOG_LIBDFC 0x00002000 /* Libdfc events */ #define LOG_VPORT 0x00004000 /* NPIV events */ #define LOG_SECURITY 0x00008000 /* Security events */ #define LOG_EVENT 0x00010000 /* CT,TEMP,DUMP, logging */ #define LOG_FIP 0x00020000 /* FIP events */ #define LOG_FCP_UNDER 0x00040000 /* FCP underruns errors */ #define LOG_SCSI_CMD 0x00080000 /* ALL SCSI commands */ #define LOG_NVME 0x00100000 /* NVME general events. */ #define LOG_NVME_DISC 0x00200000 /* NVME Discovery/Connect events. */ #define LOG_NVME_ABTS 0x00400000 /* NVME ABTS events. */ #define LOG_NVME_IOERR 0x00800000 /* NVME IO Error events. */ #define LOG_EDIF 0x01000000 /* External DIF events */ #define LOG_AUTH 0x02000000 /* Authentication events */ #define LOG_ALL_MSG 0xffffffff /* LOG all messages */ #define lpfc_printf_vlog(vport, level, mask, fmt, arg...) \ do { \ { if (((mask) & (vport)->cfg_log_verbose) || (level[1] <= '3')) \ dev_printk(level, &((vport)->phba->pcidev)->dev, "%d:(%d):" \ fmt, (vport)->phba->brd_no, vport->vpi, ##arg); } \ } while (0) #define lpfc_printf_log(phba, level, mask, fmt, arg...) \ do { \ { uint32_t log_verbose = (phba)->pport ? \ (phba)->pport->cfg_log_verbose : \ (phba)->cfg_log_verbose; \ if (((mask) & log_verbose) || (level[1] <= '3')) \ dev_printk(level, &((phba)->pcidev)->dev, "%d:" \ fmt, phba->brd_no, ##arg); \ } \ } while (0) #define lpfc_throttle_vlog(vport, hist, log, fmt, arg...) \ do { \ { if (!lpfc_throttler(vport, (hist))) \ break; \ lpfc_printf_vlog(vport, KERN_INFO, log, \ fmt, arg); \ }\ } while (0) #define lpfc_throttle_log(phba, hist, log, fmt, arg...) \ do { \ { if (!lpfc_throttler((phba->pport), (hist))) \ break; \ lpfc_printf_log(phba, KERN_INFO, log, \ fmt, arg); \ }\ } while (0) #define lpfc_optioned_vlog(vport, hist, level, mask, fmt, arg...) \ do { \ { if (!lpfc_throttler(vport, (hist))) \ { lpfc_printf_vlog(vport, level, mask, fmt, ##arg); \ break; \ }\ dev_printk(level, &((vport)->phba->pcidev)->dev, "%d:(%d):" \ fmt, (vport)->phba->brd_no, vport->vpi, ##arg); \ }\ } while (0) #define lpfc_optioned_log(phba, hist, level, mask, fmt, arg...) \ do { \ { if (!lpfc_throttler((phba->pport), (hist))) \ { lpfc_printf_log(phba, level, mask, fmt, ##arg); \ break; \ }\ dev_printk(level, &((phba)->pcidev)->dev, "%d:" \ fmt, phba->brd_no, ##arg); \ }\ } while (0)