openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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_ */