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