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