1718cf2ccSPedro F. Giffuni /*- 24d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 3718cf2ccSPedro F. Giffuni * 435291c22SDavid C Somayajulu * Copyright (c) 2013-2016 Qlogic Corporation 5f10a77bbSDavid C Somayajulu * All rights reserved. 6f10a77bbSDavid C Somayajulu * 7f10a77bbSDavid C Somayajulu * Redistribution and use in source and binary forms, with or without 8f10a77bbSDavid C Somayajulu * modification, are permitted provided that the following conditions 9f10a77bbSDavid C Somayajulu * are met: 10f10a77bbSDavid C Somayajulu * 11f10a77bbSDavid C Somayajulu * 1. Redistributions of source code must retain the above copyright 12f10a77bbSDavid C Somayajulu * notice, this list of conditions and the following disclaimer. 13f10a77bbSDavid C Somayajulu * 2. Redistributions in binary form must reproduce the above copyright 14f10a77bbSDavid C Somayajulu * notice, this list of conditions and the following disclaimer in the 15f10a77bbSDavid C Somayajulu * documentation and/or other materials provided with the distribution. 16f10a77bbSDavid C Somayajulu * 17f10a77bbSDavid C Somayajulu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18f10a77bbSDavid C Somayajulu * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19f10a77bbSDavid C Somayajulu * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20f10a77bbSDavid C Somayajulu * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21f10a77bbSDavid C Somayajulu * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22f10a77bbSDavid C Somayajulu * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23f10a77bbSDavid C Somayajulu * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24f10a77bbSDavid C Somayajulu * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25f10a77bbSDavid C Somayajulu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26f10a77bbSDavid C Somayajulu * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27f10a77bbSDavid C Somayajulu * POSSIBILITY OF SUCH DAMAGE. 28f10a77bbSDavid C Somayajulu */ 29f10a77bbSDavid C Somayajulu 30f10a77bbSDavid C Somayajulu /* 31f10a77bbSDavid C Somayajulu * File : ql_dbg.h 32f10a77bbSDavid C Somayajulu * Author : David C Somayajulu, Qlogic Corporation, Aliso Viejo, CA 92656. 33f10a77bbSDavid C Somayajulu */ 34f10a77bbSDavid C Somayajulu 35f10a77bbSDavid C Somayajulu #ifndef _QL_DBG_H_ 36f10a77bbSDavid C Somayajulu #define _QL_DBG_H_ 37f10a77bbSDavid C Somayajulu 38f10a77bbSDavid C Somayajulu extern void ql_dump_buf8(qla_host_t *ha, const char *str, void *dbuf, 39f10a77bbSDavid C Somayajulu uint32_t len); 40f10a77bbSDavid C Somayajulu extern void ql_dump_buf16(qla_host_t *ha, const char *str, void *dbuf, 41f10a77bbSDavid C Somayajulu uint32_t len16); 42f10a77bbSDavid C Somayajulu extern void ql_dump_buf32(qla_host_t *ha, const char *str, void *dbuf, 43f10a77bbSDavid C Somayajulu uint32_t len32); 44f10a77bbSDavid C Somayajulu 45f10a77bbSDavid C Somayajulu #define INJCT_RX_RXB_INVAL 0x00001 46f10a77bbSDavid C Somayajulu #define INJCT_RX_MP_NULL 0x00002 47f10a77bbSDavid C Somayajulu #define INJCT_LRO_RXB_INVAL 0x00003 48f10a77bbSDavid C Somayajulu #define INJCT_LRO_MP_NULL 0x00004 49f10a77bbSDavid C Somayajulu #define INJCT_NUM_HNDLE_INVALID 0x00005 50f10a77bbSDavid C Somayajulu #define INJCT_RDWR_INDREG_FAILURE 0x00006 51f10a77bbSDavid C Somayajulu #define INJCT_RDWR_OFFCHIPMEM_FAILURE 0x00007 52f10a77bbSDavid C Somayajulu #define INJCT_MBX_CMD_FAILURE 0x00008 53f10a77bbSDavid C Somayajulu #define INJCT_HEARTBEAT_FAILURE 0x00009 54f10a77bbSDavid C Somayajulu #define INJCT_TEMPERATURE_FAILURE 0x0000A 5500caeec7SDavid C Somayajulu #define INJCT_M_GETCL_M_GETJCL_FAILURE 0x0000B 56b65c0c07SDavid C Somayajulu #define INJCT_INV_CONT_OPCODE 0x0000C 57b65c0c07SDavid C Somayajulu #define INJCT_SGL_RCV_INV_DESC_COUNT 0x0000D 58b65c0c07SDavid C Somayajulu #define INJCT_SGL_LRO_INV_DESC_COUNT 0x0000E 59b65c0c07SDavid C Somayajulu #define INJCT_PEER_PORT_FAILURE_ERR_RECOVERY 0x0000F 60971e53c9SDavid C Somayajulu #define INJCT_TXBUF_MBUF_NON_NULL 0x00010 61f10a77bbSDavid C Somayajulu 62f10a77bbSDavid C Somayajulu #ifdef QL_DBG 63f10a77bbSDavid C Somayajulu 64f10a77bbSDavid C Somayajulu #define QL_DPRINT1(ha, x) if (ha->dbg_level & 0x0001) device_printf x 65f10a77bbSDavid C Somayajulu #define QL_DPRINT2(ha, x) if (ha->dbg_level & 0x0002) device_printf x 66f10a77bbSDavid C Somayajulu #define QL_DPRINT4(ha, x) if (ha->dbg_level & 0x0004) device_printf x 67f10a77bbSDavid C Somayajulu #define QL_DPRINT8(ha, x) if (ha->dbg_level & 0x0008) device_printf x 68f10a77bbSDavid C Somayajulu #define QL_DPRINT10(ha, x) if (ha->dbg_level & 0x0010) device_printf x 69f10a77bbSDavid C Somayajulu #define QL_DPRINT20(ha, x) if (ha->dbg_level & 0x0020) device_printf x 70f10a77bbSDavid C Somayajulu #define QL_DPRINT40(ha, x) if (ha->dbg_level & 0x0040) device_printf x 71f10a77bbSDavid C Somayajulu #define QL_DPRINT80(ha, x) if (ha->dbg_level & 0x0080) device_printf x 72f10a77bbSDavid C Somayajulu 73f10a77bbSDavid C Somayajulu #define QL_DUMP_BUFFER8(h, s, b, n) if (h->dbg_level & 0x08000000)\ 74f10a77bbSDavid C Somayajulu qla_dump_buf8(h, s, b, n) 75f10a77bbSDavid C Somayajulu #define QL_DUMP_BUFFER16(h, s, b, n) if (h->dbg_level & 0x08000000)\ 76f10a77bbSDavid C Somayajulu qla_dump_buf16(h, s, b, n) 77f10a77bbSDavid C Somayajulu #define QL_DUMP_BUFFER32(h, s, b, n) if (h->dbg_level & 0x08000000)\ 78f10a77bbSDavid C Somayajulu qla_dump_buf32(h, s, b, n) 79f10a77bbSDavid C Somayajulu 80f10a77bbSDavid C Somayajulu #define QL_ASSERT(ha, x, y) if (!x && !ha->err_inject) panic y 81f10a77bbSDavid C Somayajulu #define QL_ERR_INJECT(ha, val) (ha->err_inject == val) 82f10a77bbSDavid C Somayajulu 83f10a77bbSDavid C Somayajulu #else 84f10a77bbSDavid C Somayajulu 85f10a77bbSDavid C Somayajulu #define QL_DPRINT1(ha, x) 86f10a77bbSDavid C Somayajulu #define QL_DPRINT2(ha, x) 87f10a77bbSDavid C Somayajulu #define QL_DPRINT4(ha, x) 88f10a77bbSDavid C Somayajulu #define QL_DPRINT8(ha, x) 89f10a77bbSDavid C Somayajulu #define QL_DPRINT10(ha, x) 90f10a77bbSDavid C Somayajulu #define QL_DPRINT20(ha, x) 91f10a77bbSDavid C Somayajulu #define QL_DPRINT40(ha, x) 92f10a77bbSDavid C Somayajulu #define QL_DPRINT80(ha, x) 93f10a77bbSDavid C Somayajulu 94f10a77bbSDavid C Somayajulu #define QL_DUMP_BUFFER8(h, s, b, n) 95f10a77bbSDavid C Somayajulu #define QL_DUMP_BUFFER16(h, s, b, n) 96f10a77bbSDavid C Somayajulu #define QL_DUMP_BUFFER32(h, s, b, n) 97f10a77bbSDavid C Somayajulu 98f10a77bbSDavid C Somayajulu #define QL_ASSERT(ha, x, y) 99f10a77bbSDavid C Somayajulu #define QL_ERR_INJECT(ha, val) 0 100f10a77bbSDavid C Somayajulu 101f10a77bbSDavid C Somayajulu #endif 102f10a77bbSDavid C Somayajulu 103f10a77bbSDavid C Somayajulu #endif /* #ifndef _QL_DBG_H_ */ 104