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