xref: /illumos-gate/usr/src/uts/intel/sys/fd_debug.h (revision 2d6eb4a5)
1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate  *
4*7c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate  * with the License.
8*7c478bd9Sstevel@tonic-gate  *
9*7c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate  * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate  *
14*7c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate  *
20*7c478bd9Sstevel@tonic-gate  * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate  */
22*7c478bd9Sstevel@tonic-gate /*
23*7c478bd9Sstevel@tonic-gate  * Copyright (c) 1989-1997,1999 by Sun Microsystems, Inc.
24*7c478bd9Sstevel@tonic-gate  * All rights reserved.
25*7c478bd9Sstevel@tonic-gate  */
26*7c478bd9Sstevel@tonic-gate 
27*7c478bd9Sstevel@tonic-gate #ifndef	_SYS_FD_DEBUG_H
28*7c478bd9Sstevel@tonic-gate #define	_SYS_FD_DEBUG_H
29*7c478bd9Sstevel@tonic-gate 
30*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
31*7c478bd9Sstevel@tonic-gate extern "C" {
32*7c478bd9Sstevel@tonic-gate #endif
33*7c478bd9Sstevel@tonic-gate 
34*7c478bd9Sstevel@tonic-gate /*
35*7c478bd9Sstevel@tonic-gate  * flags/masks for error printing.
36*7c478bd9Sstevel@tonic-gate  * the levels are for severity
37*7c478bd9Sstevel@tonic-gate  */
38*7c478bd9Sstevel@tonic-gate #define	FDEP_L0		0	/* chatty as can be - for debug! */
39*7c478bd9Sstevel@tonic-gate #define	FDEP_L1		1	/* best for debug */
40*7c478bd9Sstevel@tonic-gate #define	FDEP_L2		2	/* minor errors - retries, etc. */
41*7c478bd9Sstevel@tonic-gate #define	FDEP_L3		3	/* major errors */
42*7c478bd9Sstevel@tonic-gate #define	FDEP_L4		4	/* catastrophic errors, don't mask! */
43*7c478bd9Sstevel@tonic-gate #define	FDEP_LMAX	4	/* catastrophic errors, don't mask! */
44*7c478bd9Sstevel@tonic-gate 
45*7c478bd9Sstevel@tonic-gate #ifdef DEBUG
46*7c478bd9Sstevel@tonic-gate #define	FDERRPRINT(l, m, args)	\
47*7c478bd9Sstevel@tonic-gate 	{ if (((l) >= fderrlevel) && ((m) & fderrmask)) cmn_err args; }
48*7c478bd9Sstevel@tonic-gate #define	FCERRPRINT(l, m, args)	\
49*7c478bd9Sstevel@tonic-gate 	{ if (((l) >= fcerrlevel) && ((m) & fcerrmask)) cmn_err args; }
50*7c478bd9Sstevel@tonic-gate #else
51*7c478bd9Sstevel@tonic-gate #define	FDERRPRINT(l, m, args)	{ }
52*7c478bd9Sstevel@tonic-gate #define	FCERRPRINT(l, m, args)	{ }
53*7c478bd9Sstevel@tonic-gate #endif /* DEBUG */
54*7c478bd9Sstevel@tonic-gate 
55*7c478bd9Sstevel@tonic-gate /*
56*7c478bd9Sstevel@tonic-gate  * for each function, we can mask off its printing by clearing its bit in
57*7c478bd9Sstevel@tonic-gate  * the fderrmask.  Some functions (attach, ident) share a mask bit
58*7c478bd9Sstevel@tonic-gate  */
59*7c478bd9Sstevel@tonic-gate #define	FDEM_IDEN 0x00000001	/* fdidentify */
60*7c478bd9Sstevel@tonic-gate #define	FDEM_ATTA 0x00000001	/* fdattach */
61*7c478bd9Sstevel@tonic-gate #define	FDEM_SIZE 0x00000002	/* fdsize */
62*7c478bd9Sstevel@tonic-gate #define	FDEM_OPEN 0x00000004	/* fdopen */
63*7c478bd9Sstevel@tonic-gate #define	FDEM_GETL 0x00000008	/* fdgetlabel */
64*7c478bd9Sstevel@tonic-gate #define	FDEM_CLOS 0x00000010	/* fdclose */
65*7c478bd9Sstevel@tonic-gate #define	FDEM_STRA 0x00000020	/* fdstrategy */
66*7c478bd9Sstevel@tonic-gate #define	FDEM_STRT 0x00000040	/* fdstart */
67*7c478bd9Sstevel@tonic-gate #define	FDEM_RDWR 0x00000080	/* fdrdwr */
68*7c478bd9Sstevel@tonic-gate #define	FDEM_CMD  0x00000100	/* fdcmd */
69*7c478bd9Sstevel@tonic-gate #define	FDEM_EXEC 0x00000200	/* fdexec */
70*7c478bd9Sstevel@tonic-gate #define	FDEM_RECO 0x00000400	/* fdrecover */
71*7c478bd9Sstevel@tonic-gate #define	FDEM_INTR 0x00000800	/* fdintr */
72*7c478bd9Sstevel@tonic-gate #define	FDEM_WATC 0x00001000	/* fdwatch */
73*7c478bd9Sstevel@tonic-gate #define	FDEM_IOCT 0x00002000	/* fdioctl */
74*7c478bd9Sstevel@tonic-gate #define	FDEM_RAWI 0x00004000	/* fdrawioctl */
75*7c478bd9Sstevel@tonic-gate #define	FDEM_PROP 0x00008000	/* fd_prop_op */
76*7c478bd9Sstevel@tonic-gate #define	FDEM_GETC 0x00010000	/* fdgetcsb */
77*7c478bd9Sstevel@tonic-gate #define	FDEM_RETC 0x00020000	/* fdretcsb */
78*7c478bd9Sstevel@tonic-gate #define	FDEM_RESE 0x00040000	/* fdreset */
79*7c478bd9Sstevel@tonic-gate #define	FDEM_RECA 0x00080000	/* fdrecalseek */
80*7c478bd9Sstevel@tonic-gate #define	FDEM_FORM 0x00100000	/* fdformat */
81*7c478bd9Sstevel@tonic-gate #define	FDEM_RW   0x00200000	/* fdrw */
82*7c478bd9Sstevel@tonic-gate #define	FDEM_CHEK 0x00400000	/* fdcheckdisk */
83*7c478bd9Sstevel@tonic-gate #define	FDEM_DSEL 0x00800000	/* fdselect */
84*7c478bd9Sstevel@tonic-gate #define	FDEM_EJEC 0x01000000	/* fdeject */
85*7c478bd9Sstevel@tonic-gate #define	FDEM_SCHG 0x02000000	/* fdsense_chng */
86*7c478bd9Sstevel@tonic-gate #define	FDEM_PACK 0x04000000	/* fdpacklabel */
87*7c478bd9Sstevel@tonic-gate #define	FDEM_MODS 0x08000000	/* _init, _info, _fini */
88*7c478bd9Sstevel@tonic-gate #define	FDEM_ALL  0xFFFFFFFF	/* all */
89*7c478bd9Sstevel@tonic-gate 
90*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
91*7c478bd9Sstevel@tonic-gate }
92*7c478bd9Sstevel@tonic-gate #endif
93*7c478bd9Sstevel@tonic-gate 
94*7c478bd9Sstevel@tonic-gate #endif	/* !_SYS_FD_DEBUG_H */
95