linux/drivers/scsi/lpfc/lpfc_logmsg.h
<<
>>
Prefs
   1/*******************************************************************
   2 * This file is part of the Emulex Linux Device Driver for         *
   3 * Fibre Channel Host Bus Adapters.                                *
   4 * Copyright (C) 2017-2018 Broadcom. All Rights Reserved. The term *
   5 * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.     *
   6 * Copyright (C) 2004-2009 Emulex.  All rights reserved.           *
   7 * EMULEX and SLI are trademarks of Emulex.                        *
   8 * www.broadcom.com                                                *
   9 *                                                                 *
  10 * This program is free software; you can redistribute it and/or   *
  11 * modify it under the terms of version 2 of the GNU General       *
  12 * Public License as published by the Free Software Foundation.    *
  13 * This program is distributed in the hope that it will be useful. *
  14 * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND          *
  15 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,  *
  16 * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE      *
  17 * DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD *
  18 * TO BE LEGALLY INVALID.  See the GNU General Public License for  *
  19 * more details, a copy of which can be found in the file COPYING  *
  20 * included with this package.                                     *
  21 *******************************************************************/
  22
  23#define LOG_ELS         0x00000001      /* ELS events */
  24#define LOG_DISCOVERY   0x00000002      /* Link discovery events */
  25#define LOG_MBOX        0x00000004      /* Mailbox events */
  26#define LOG_INIT        0x00000008      /* Initialization events */
  27#define LOG_LINK_EVENT  0x00000010      /* Link events */
  28#define LOG_IP          0x00000020      /* IP traffic history */
  29#define LOG_FCP         0x00000040      /* FCP traffic history */
  30#define LOG_NODE        0x00000080      /* Node table events */
  31#define LOG_TEMP        0x00000100      /* Temperature sensor events */
  32#define LOG_BG          0x00000200      /* BlockGuard events */
  33#define LOG_MISC        0x00000400      /* Miscellaneous events */
  34#define LOG_SLI         0x00000800      /* SLI events */
  35#define LOG_FCP_ERROR   0x00001000      /* log errors, not underruns */
  36#define LOG_LIBDFC      0x00002000      /* Libdfc events */
  37#define LOG_VPORT       0x00004000      /* NPIV events */
  38#define LOG_SECURITY    0x00008000      /* Security events */
  39#define LOG_EVENT       0x00010000      /* CT,TEMP,DUMP, logging */
  40#define LOG_FIP         0x00020000      /* FIP events */
  41#define LOG_FCP_UNDER   0x00040000      /* FCP underruns errors */
  42#define LOG_SCSI_CMD    0x00080000      /* ALL SCSI commands */
  43#define LOG_NVME        0x00100000      /* NVME general events. */
  44#define LOG_NVME_DISC   0x00200000      /* NVME Discovery/Connect events. */
  45#define LOG_NVME_ABTS   0x00400000      /* NVME ABTS events. */
  46#define LOG_NVME_IOERR  0x00800000      /* NVME IO Error events. */
  47#define LOG_TRACE_EVENT 0x80000000      /* Dmp the DBG log on this err */
  48#define LOG_ALL_MSG     0x7fffffff      /* LOG all messages */
  49
  50void lpfc_dmp_dbg(struct lpfc_hba *phba);
  51void lpfc_dbg_print(struct lpfc_hba *phba, const char *fmt, ...);
  52
  53/* generate message by verbose log setting or severity */
  54#define lpfc_vlog_msg(vport, level, mask, fmt, arg...) \
  55{ if (((mask) & (vport)->cfg_log_verbose) || (level[1] <= '4')) \
  56        dev_printk(level, &((vport)->phba->pcidev)->dev, "%d:(%d):" \
  57                   fmt, (vport)->phba->brd_no, vport->vpi, ##arg); }
  58
  59#define lpfc_log_msg(phba, level, mask, fmt, arg...) \
  60do { \
  61        { uint32_t log_verbose = (phba)->pport ? \
  62                                 (phba)->pport->cfg_log_verbose : \
  63                                 (phba)->cfg_log_verbose; \
  64        if (((mask) & log_verbose) || (level[1] <= '4')) \
  65                dev_printk(level, &((phba)->pcidev)->dev, "%d:" \
  66                           fmt, phba->brd_no, ##arg); \
  67        } \
  68} while (0)
  69
  70#define lpfc_printf_vlog(vport, level, mask, fmt, arg...) \
  71do { \
  72        { if (((mask) & (vport)->cfg_log_verbose) || (level[1] <= '3')) { \
  73                if ((mask) & LOG_TRACE_EVENT) \
  74                        lpfc_dmp_dbg((vport)->phba); \
  75                dev_printk(level, &((vport)->phba->pcidev)->dev, "%d:(%d):" \
  76                           fmt, (vport)->phba->brd_no, vport->vpi, ##arg);  \
  77                } else if (!(vport)->cfg_log_verbose) \
  78                        lpfc_dbg_print((vport)->phba, "%d:(%d):" fmt, \
  79                                (vport)->phba->brd_no, (vport)->vpi, ##arg); \
  80        } \
  81} while (0)
  82
  83#define lpfc_printf_log(phba, level, mask, fmt, arg...) \
  84do { \
  85        { uint32_t log_verbose = (phba)->pport ? \
  86                                 (phba)->pport->cfg_log_verbose : \
  87                                 (phba)->cfg_log_verbose; \
  88        if (((mask) & log_verbose) || (level[1] <= '3')) { \
  89                if ((mask) & LOG_TRACE_EVENT) \
  90                        lpfc_dmp_dbg(phba); \
  91                dev_printk(level, &((phba)->pcidev)->dev, "%d:" \
  92                        fmt, phba->brd_no, ##arg); \
  93        } else  if (!(phba)->cfg_log_verbose)\
  94                lpfc_dbg_print(phba, "%d:" fmt, phba->brd_no, ##arg); \
  95        } \
  96} while (0)
  97