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 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
23 */
24
25 #ifndef _RDSV3_DEBUG_H
26 #define _RDSV3_DEBUG_H
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #define LABEL "RDSV3"
33
34 /*
35 * warnings, console & syslog buffer.
36 * For Non recoverable or Major Errors
37 */
38 #define RDSV3_LOG_L0 0
39
40 /*
41 * syslog buffer or RDS trace buffer (console if booted /w debug)
42 * For additional information on Non recoverable errors and
43 * warnings/informational message for sys-admin types.
44 */
45 #define RDSV3_LOG_L1 1
46
47 /*
48 * debug only
49 * for more verbose trace than L1, for e.g. recoverable errors,
50 * or intersting trace
51 */
52 #define RDSV3_LOG_L2 2
53
54 /*
55 * debug only
56 * for more verbose trace than L2, for e.g. informational messages
57 */
58 #define RDSV3_LOG_L3 3
59
60 /*
61 * debug only
62 * for more verbose trace than L3, for e.g. printing function entries...
63 */
64 #define RDSV3_LOG_L4 4
65
66 /*
67 * debug only
68 * most verbose level. Used only for excessive trace, for e.g.
69 * printing structures etc.
70 */
71 #define RDSV3_LOG_L5 5
72
73 /*
74 * debug only
75 * for messages from softints, taskqs, intr handlers, timeout handlers etc.
76 */
77 #define RDSV3_LOG_LINTR 6
78
79
80 #ifdef DEBUG
81 #define RDSV3_DPRINTF_INTR rdsv3_dprintf_intr
82 #define RDSV3_DPRINTF5 rdsv3_dprintf5
83 #define RDSV3_DPRINTF4 rdsv3_dprintf4
84 #define RDSV3_DPRINTF3 rdsv3_dprintf3
85
86 void rdsv3_dprintf_intr(
87 char *name,
88 char *fmt, ...);
89 void rdsv3_dprintf5(
90 char *name,
91 char *fmt, ...);
92 void rdsv3_dprintf4(
93 char *name,
94 char *fmt, ...);
95 void rdsv3_dprintf3(
96 char *name,
97 char *fmt, ...);
98 #else
99 #define RDSV3_DPRINTF_INTR 0 &&
100 #define RDSV3_DPRINTF5 0 &&
101 #define RDSV3_DPRINTF4 0 &&
102 #define RDSV3_DPRINTF3 0 &&
103 #endif
104
105 #define RDSV3_DPRINTF2 rdsv3_dprintf2
106 #define RDSV3_DPRINTF1 rdsv3_dprintf1
107 #define RDSV3_DPRINTF0 rdsv3_dprintf0
108
109 void rdsv3_dprintf2(
110 char *name,
111 char *fmt, ...);
112 void rdsv3_dprintf1(
113 char *name,
114 char *fmt, ...);
115 void rdsv3_dprintf0(
116 char *name,
117 char *fmt, ...);
118
119 void rdsv3_trace(
120 char *name,
121 uint8_t lvl,
122 char *fmt, ...);
123
124 void rdsv3_vprintk(
125 char *name,
126 uint8_t lvl,
127 const char *fmt,
128 va_list ap);
129
130 /* defined in rds_debug.c */
131 void rdsv3_logging_initialization();
132 void rdsv3_logging_destroy();
133 int rdsv3_printk_ratelimit(void);
134
135 #ifdef __cplusplus
136 }
137 #endif
138
139 #endif /* _RDSV3_DEBUG_H */