1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright 2010 QLogic Corporation. All rights reserved.
24 */
25
26#ifndef _QLGE_DBG_H
27#define	_QLGE_DBG_H
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/*
34 * Driver debug definitions in makefile.
35 */
36
37#define	QL_DEBUG_LEVELS 0x2
38
39#define	DBG_NVRAM	0x01	/* Registers, PCI */
40#define	DBG_INIT 	0x02
41#define	DBG_GLD 	0x04
42#define	DBG_MBX		0x08
43#define	DBG_FLASH	0x08
44#define	DBG_RX 		0x10
45#define	DBG_RX_RING	0x20
46#define	DBG_TX 		0x40
47#define	DBG_STATS 	0x80
48#define	DBG_INTR	0x100
49
50#ifdef QL_DUMPFW
51#define	QLA_CORE_DUMP(qlge)		ql_core_dump(qlge);
52#define	QLA_DUMP_CRASH_RECORD(qlge)	ql_dump_crash_record(qlge)
53#else
54#define	QLA_CORE_DUMP(qlge)
55#define	QLA_DUMP_CRASH_RECORD(qlge)
56#endif
57
58#if QL_DEBUG
59
60#define	QL_DUMP_BUFFER(a, b, c, d) \
61	ql_dump_buf((char *)a, (uint8_t *)b, (uint8_t)c, (uint32_t)d)
62
63#define	QL_PRINT_1(x)		ql_printf x
64
65#define	QL_PRINT(dbg_level, x) \
66		if (qlge->ql_dbgprnt & dbg_level) ql_printf x
67#define	QL_DUMP(dbg_level, a, b, c, d)	\
68		if (qlge->ql_dbgprnt & dbg_level) QL_DUMP_BUFFER(a, b, c, d)
69
70#define	QL_DUMP_REQ_PKT(qlge, pkt, oal, num)	if (qlge->ql_dbgprnt & DBG_TX) \
71					ql_dump_req_pkt(qlge, pkt, oal, num)
72
73#define	QL_DUMP_CQICB(qlge, cqicb) if (qlge->ql_dbgprnt & DBG_INIT) \
74					ql_dump_cqicb(qlge, cqicb)
75
76#define	QL_DUMP_WQICB(qlge, wqicb) if (qlge->ql_dbgprnt & DBG_INIT) \
77					ql_dump_wqicb(qlge, wqicb)
78
79#else
80
81#define	QLA_HOST_PCI_REGS(qlge)
82
83#define	QL_DUMP_BUFFER(a, b, c, d)
84#define	QL_DUMP(dbg_level, a, b, c, d)
85#define	QL_DEBUG_PRINT(x)
86#define	QL_PRINT(dbg_level, x)
87#define	QL_DUMP_REQ_PKT(qlge, pkt, oal, num)
88#define	QL_DUMP_CQICB
89#define	QL_DUMP_WQICB
90
91#endif	/* QLGE_DEBUG */
92
93/*
94 * Error and Extended Logging Macros.
95 */
96#define	QL_BANG		"!"
97#define	QL_QUESTION	"?"
98#define	QL_CAROT	"^"
99
100#ifdef __cplusplus
101}
102#endif
103
104#endif /* _QLGE_DBG_H */
105