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

keygen_error.h (3247B)


      1 /*
      2  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      3  * 
      4  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      5  */
      6 
      7 #ifndef _BCM_INT_FIELD_KEYGEN_ERROR_H
      8 #define _BCM_INT_FIELD_KEYGEN_ERROR_H
      9 
     10 #include <shared/bsl.h>
     11 #include <bcm/error.h>
     12 
     13 #define BCMI_KEYGEN_FUNC_ENTER(_unit) bcm_error_t _func_rv = BCM_E_NONE
     14 
     15 #define BCMI_KEYGEN_FUNC_EXIT() return _func_rv
     16 
     17 #define BCMI_KEYGEN_EXIT() goto exit
     18 
     19 #define BCMI_KEYGEN_FUNC_VAL_IS(_rv)  (_func_rv == (_rv))
     20 
     21 #define BCMI_KEYGEN_FUNC_ERR()  BCMI_KEYGEN_FAILURE(_func_rv)
     22 
     23 #define BCMI_KEYGEN_SUCCESS(_expr) ((_expr) >= 0)
     24 
     25 #define BCMI_KEYGEN_FAILURE(_expr) ((_expr) < 0)
     26 
     27 #define BCMI_KEYGEN_IF_ERR_EXIT(_expr)     \
     28     do {                                   \
     29         bcm_error_t _rv = _expr;           \
     30         if (BCMI_KEYGEN_FAILURE(_rv)) {    \
     31             _func_rv = (_rv);              \
     32             BCMI_KEYGEN_EXIT();            \
     33         }                                  \
     34     } while(0)
     35 
     36 #define BCMI_KEYGEN_IF_ERR_VERBOSE_EXIT(_expr)   \
     37     do {                                         \
     38         bcm_error_t _rv = _expr;                 \
     39         if (BCMI_KEYGEN_FAILURE(_rv)) {          \
     40             _func_rv = _rv;                      \
     41             BCMI_KEYGEN_EXIT();                  \
     42         }                                        \
     43     } while(0)
     44 
     45 
     46 #define BCMI_KEYGEN_RETURN_VAL_EXIT(_expr) \
     47     do {                                   \
     48         _func_rv = _expr;                  \
     49         BCMI_KEYGEN_EXIT();                \
     50     } while (0)
     51 
     52 #define BCMI_KEYGEN_NULL_CHECK(_ptr, _rv)  \
     53     do {                                   \
     54         if ((_ptr) == NULL) {              \
     55             _func_rv = _rv;                \
     56             BCMI_KEYGEN_EXIT();            \
     57         }                                  \
     58     } while (0)
     59 
     60 #define BCMI_KEYGEN_ALLOC(_ptr, _sz, _str)          \
     61     do                                              \
     62     {                                               \
     63         if ((_ptr) == NULL) {                       \
     64             (_ptr) = sal_alloc(_sz, _str);          \
     65         } else {                                    \
     66             BCMI_KEYGEN_EXIT();                     \
     67         }                                           \
     68         BCMI_KEYGEN_NULL_CHECK(_ptr, BCM_E_MEMORY); \
     69         sal_memset(_ptr, 0, _sz);                   \
     70     } while(0)
     71 
     72 #define BCMI_KEYGEN_FREE(_ptr)                  \
     73     do {                                        \
     74         if ((_ptr) != NULL) {                   \
     75             sal_free((void *)(_ptr));           \
     76             (_ptr) = NULL;                      \
     77         }                                       \
     78     } while (0)
     79 
     80 #define BCMI_KEYGEN_IF_ERR_EXIT_EXCEPT_IF(_expr, _rv_except)  \
     81     do {                                                      \
     82         int _rv = _expr;                                      \
     83         if (BCMI_KEYGEN_FAILURE(_rv) && _rv != _rv_except) {  \
     84             _func_rv = _rv;                                   \
     85             BCMI_KEYGEN_EXIT();                               \
     86         }                                                     \
     87     } while(0)
     88 
     89 #endif
     90