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

range.h (2755B)


      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-2020 Broadcom Inc. All rights reserved.
      5  */
      6 /*! \file range.h
      7  *
      8  * BCM range module APIs and structures used only internally.
      9  */
     10 
     11 #ifndef BCMINT_LTSW_MBCM_RANGE_H
     12 #define BCMINT_LTSW_MBCM_RANGE_H
     13 
     14 #include <bcm_int/ltsw/range_int.h>
     15 
     16 /*!
     17  * \brief Initialize range LT tables information.
     18  *
     19  * \param [in] unit Unit number.
     20  *
     21  * \retval SHR_E_NONE No errors.
     22  * \retval !SHR_E_NONE Failure.
     23  */
     24 typedef int (*range_tbls_info_init_f)(
     25     int unit,
     26     bcmint_range_tbls_info_t **tbls_info);
     27 
     28 typedef int (*range_clear_f)(int unit);
     29 
     30 /*!
     31  * \brief Get HW RTYPE val bsed on S/W Enum.
     32  *
     33  * \param [in] unit Unit number.
     34  *
     35  * \retval SHR_E_NONE No errors.
     36  * \retval !SHR_E_NONE Failure.
     37  */
     38 typedef int (*range_rtype_add_f)(
     39     int unit,
     40     bcmlt_entry_handle_t range_check_lt,
     41     bcmint_range_tbls_info_t *tbls_info,
     42     bcm_range_config_t *range_config);
     43 
     44 /*!
     45  * \brief Get HW RTYPE val bsed on S/W Enum.
     46  *
     47  * \param [in] unit Unit number.
     48  *
     49  * \retval SHR_E_NONE No errors.
     50  * \retval !SHR_E_NONE Failure.
     51  */
     52 typedef int (*range_rtype_get_f)(
     53     int unit,
     54     bcmlt_entry_handle_t range_check_lt,
     55     bcmint_range_tbls_info_t *tbls_info,
     56     bcm_range_config_t *range_config);
     57 
     58 /*!
     59  * \brief Field driver structure.
     60  */
     61 typedef struct mbcm_ltsw_range_drv_s {
     62 
     63     /*! Initialize Range LT Tables information. */
     64     range_tbls_info_init_f range_tbls_info_init;
     65 
     66     /*! Clear Range LT Tables. */
     67     range_clear_f range_clear;
     68 
     69     /*! get Range_Type Hw Value . */
     70     range_rtype_add_f range_rtype_add;
     71 
     72     /*! get Range_Type Sw Enum . */
     73     range_rtype_get_f range_rtype_get;
     74 
     75 } mbcm_ltsw_range_drv_t;
     76 
     77 /*!
     78  * \brief Set the Range driver of the device.
     79  *
     80  * \param [in] unit Unit Number.
     81  * \param [in] drv Range driver to set.
     82  *
     83  * \retval SHR_E_NONE No errors.
     84  * \retval !SHR_E_NONE Failure.
     85  */
     86 extern int
     87 mbcm_ltsw_range_drv_set(
     88     int unit,
     89     mbcm_ltsw_range_drv_t *drv);
     90 
     91 /*!
     92  * \brief Initialize Range LT Tables information.
     93  *
     94  * \param [in] unit Unit number.
     95  *
     96  * \retval SHR_E_NONE No errors.
     97  * \retval !SHR_E_NONE Failure.
     98  */
     99 extern int
    100 mbcm_ltsw_range_tbls_info_init(
    101     int unit,
    102     bcmint_range_tbls_info_t **tbls_info);
    103 
    104 extern int
    105 mbcm_ltsw_range_clear(int unit);
    106 
    107 extern int
    108 mbcm_ltsw_range_rtype_add(
    109     int unit,
    110     bcmlt_entry_handle_t range_check_lt,
    111     bcmint_range_tbls_info_t *tbls_info,
    112     bcm_range_config_t *range_config);
    113 
    114 extern int
    115 mbcm_ltsw_range_rtype_get(
    116     int unit,
    117     bcmlt_entry_handle_t range_check_lt,
    118     bcmint_range_tbls_info_t *tbls_info,
    119     bcm_range_config_t *range_config);
    120 
    121 #endif /*! BCMINT_LTSW_MBCM_RANGE_H */