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(...) (void)(0) 104 #define RDSV3_DPRINTF5(...) (void)(0) 105 #define RDSV3_DPRINTF4(...) (void)(0) 106 #define RDSV3_DPRINTF3(...) (void)(0) 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 */ 144