bsl.h (5304B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * Broadcom System Log (bSL) 8 * 9 * Defines for INTERNAL usage only. 10 */ 11 12 #ifndef _SHR_BSL_H_ 13 #define _SHR_BSL_H_ 14 15 #include <shared/bsltypes.h> 16 17 #ifndef BSL_FILE 18 #define BSL_FILE __FILE__ 19 #endif 20 21 #ifndef BSL_LINE 22 #define BSL_LINE __LINE__ 23 #endif 24 25 #ifndef BSL_FUNC 26 #define BSL_FUNC FUNCTION_NAME() 27 #endif 28 29 30 #define bslSinkIgnore 0 31 32 /* Message macro which includes the standard meta data */ 33 #define BSL_META(str_) \ 34 "<c=%uf=%sl=%dF=%s>" str_, mchk_, BSL_FILE, BSL_LINE, BSL_FUNC 35 36 /* Message macros which include optional meta data */ 37 #define BSL_META_U(u_, str_) \ 38 "<c=%uf=%sl=%dF=%su=%d>" str_, mchk_, BSL_FILE, BSL_LINE, BSL_FUNC, u_ 39 #define BSL_META_UP(u_, p_, str_) \ 40 "<c=%uf=%sl=%dF=%su=%dp=%d>" str_, mchk_, BSL_FILE, BSL_LINE, BSL_FUNC, u_, p_ 41 #define BSL_META_UPX(u_, p_, x_, str_) \ 42 "<c=%uf=%sl=%dF=%su=%dp=%dx=%d>" str_, mchk_, BSL_FILE, BSL_LINE, BSL_FUNC, u_, p_, x_ 43 44 /* Same as above, but with formatting options */ 45 #define BSL_META_O(opt_, str_) \ 46 "<c=%uf=%sl=%dF=%so=%u>" str_, mchk_, BSL_FILE, BSL_LINE, BSL_FUNC, opt_ 47 #define BSL_META_OU(opt_, u_, str_) \ 48 "<c=%uf=%sl=%dF=%so=%uu=%d>" str_, mchk_, BSL_FILE, BSL_LINE, BSL_FUNC, opt_, u_ 49 #define BSL_META_OUP(opt_, u_, p_, str_) \ 50 "<c=%uf=%sl=%dF=%so=%uu=%dp=%d>" str_, mchk_, BSL_FILE, BSL_LINE, BSL_FUNC, opt_, u_, p_ 51 #define BSL_META_OUPX(opt_, u_, p_, x_, str_) \ 52 "<c=%uf=%sl=%dF=%so=%uu=%dp=%dx=%d>" str_, mchk_, BSL_FILE, BSL_LINE, BSL_FUNC, opt_, u_, p_, x_ 53 54 /* Macro for invoking "fast" checker */ 55 #define BSL_LOG(chk_, stuff_) do { \ 56 if (bsl_fast_check(chk_)) { \ 57 unsigned int mchk_ = chk_; \ 58 (void)mchk_; \ 59 bsl_printf stuff_; \ 60 } \ 61 } while (0) 62 63 /* Any layer log macros */ 64 #define LOG_FATAL(ls_, stuff_) BSL_LOG(ls_|BSL_FATAL, stuff_) 65 #define LOG_ERROR(ls_, stuff_) BSL_LOG(ls_|BSL_ERROR, stuff_) 66 #define LOG_WARN(ls_, stuff_) BSL_LOG(ls_|BSL_WARN, stuff_) 67 #define LOG_INFO(ls_, stuff_) BSL_LOG(ls_|BSL_INFO, stuff_) 68 #define LOG_VERBOSE(ls_, stuff_) BSL_LOG(ls_|BSL_VERBOSE, stuff_) 69 #define LOG_DEBUG(ls_, stuff_) BSL_LOG(ls_|BSL_DEBUG, stuff_) 70 71 /* Shell output from core driver */ 72 #define BSL_LSS_CLI (BSL_L_APPL | BSL_S_SHELL | BSL_INFO) 73 #define LOG_CLI(stuff_) BSL_LOG(BSL_LSS_CLI, stuff_) 74 75 /* Shell output from CLI (interactive shell) */ 76 #define cli_out bsl_printf 77 78 /* Wrapper macro for layer/source/severity checker */ 79 #define LOG_CHECK(packed_meta_) bsl_fast_check(packed_meta_) 80 81 /* 82 * DEPRECATED FUNCTIONS 83 */ 84 extern int 85 _bsl_error(char *file, unsigned int line, const char *func, 86 bsl_layer_t layer, int source, 87 int unit, const char *msg, ...); 88 89 extern int 90 _bsl_warn(char *file, unsigned int line, const char *func, 91 bsl_layer_t layer, int source, 92 int unit, const char *msg, ...); 93 94 extern int 95 _bsl_verbose(char *file, unsigned int line, const char *func, 96 bsl_layer_t layer, int source, 97 int unit, const char *msg, ...); 98 99 extern int 100 _bsl_vverbose(char *file, unsigned int line, const char *func, 101 bsl_layer_t layer, int source, 102 int unit, const char *msg, ...); 103 104 extern int 105 bsl_check(bsl_layer_t layer, int source, bsl_severity_t severity, 106 int unit); 107 108 /* 109 * bsl_start 110 * Parameters: as per bsl_log 111 * Return value: TRUE if output should occur (as for bsl_check) 112 */ 113 extern int 114 bsl_log_start(char *file, unsigned int line, const char *func, 115 bsl_layer_t layer, int source, bsl_severity_t severity, 116 int unit, const char *msg, ...); 117 118 /* 119 * bsl_end 120 * Incrementally adds additional output to a message previously begun with bsl_start 121 * and finishes that message 122 * Parameters: as per bsl_log 123 */ 124 extern int 125 bsl_log_end(char *file, unsigned int line, const char *func, 126 bsl_layer_t layer, int source, bsl_severity_t severity, 127 int sinks, int unit, 128 const char *msg, ...); 129 130 /* 131 * bsl_add 132 * Incrementally adds additional output to a message previously begun with bsl_start 133 * Parameters: as per bsl_log 134 */ 135 extern int 136 bsl_log_add(char *file, unsigned int line, const char *func, 137 bsl_layer_t layer, int source, bsl_severity_t severity, 138 int sinks, int unit, 139 const char *msg, ...); 140 141 extern int 142 bsl_fast_check(bsl_packed_meta_t chk); 143 144 extern int 145 bsl_fast_check_two(uint32 chk1,uint32 chk2); 146 147 extern void 148 bsl_meta_t_init(bsl_meta_t *meta); 149 150 extern int 151 bsl_vprintf(const char *format, va_list args) 152 COMPILER_ATTRIBUTE ((format (printf, 1, 0))); 153 154 extern int 155 bsl_printf(const char *format, ...) 156 COMPILER_ATTRIBUTE ((format (printf, 1, 2))); 157 158 extern int 159 bsl_vlog(bsl_meta_t *meta, const char *format, va_list args) 160 COMPILER_ATTRIBUTE ((format (printf, 2, 0))); 161 162 extern int 163 bsl_log(bsl_meta_t *meta, const char *format, ...) 164 COMPILER_ATTRIBUTE ((format (printf, 2, 3))); 165 166 #endif /* _SHR_BSL_H_ */