ldh.h (8127B)
1 /* 2 * DO NOT EDIT THIS FILE! 3 * This file is auto-generated. 4 * Edits to this file will be lost when it is regenerated. 5 * 6 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 7 * 8 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 9 */ 10 11 #ifndef BCMINT_LTSW_MBCM_LDH_H 12 #define BCMINT_LTSW_MBCM_LDH_H 13 14 #include <sal/sal_types.h> 15 16 /*! 17 * \brief Initialize LDH module. 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 (*ldh_init_f)(int unit); 25 26 /*! 27 * \brief Detach LDH module. 28 * 29 * \param [in] unit Unit Number. 30 * 31 * \retval SHR_E_NONE No errors. 32 * \retval !SHR_E_NONE Failure. 33 */ 34 typedef int (*ldh_detach_f)(int unit); 35 36 /*! 37 * \brief Enable/disable monitor. 38 * 39 * \param [in] unit Unit Number. 40 * \param [in] monitor_id Monitor ID. 41 * \param [in] enable Enable/disable monitor. 42 * 43 * \retval SHR_E_NONE No errors. 44 * \retval !SHR_E_NONE Failure. 45 */ 46 typedef int (*ldh_monitor_enable_f)( 47 int unit, 48 uint8_t monitor_id, 49 uint8_t enable); 50 51 /*! 52 * \brief Set configuration for a given latency monitor. 53 * 54 * \param [in] unit Unit Number. 55 * \param [in] monitor_id Monitor ID. 56 * \param [in] config Monitor configuration. 57 * 58 * \retval SHR_E_NONE No errors. 59 * \retval !SHR_E_NONE Failure. 60 */ 61 typedef int (*ldh_monitor_config_set_f)( 62 int unit, 63 uint8_t monitor_id, 64 bcm_latency_monitor_config_t *config); 65 66 /*! 67 * \brief Get configuration for a given latency monitor. 68 * 69 * \param [in] unit Unit Number. 70 * \param [in] monitor_id Monitor ID. 71 * \param [out] config Monitor configuration. 72 * 73 * \retval SHR_E_NONE No errors. 74 * \retval !SHR_E_NONE Failure. 75 */ 76 typedef int (*ldh_monitor_config_get_f)( 77 int unit, 78 uint8_t monitor_id, 79 bcm_latency_monitor_config_t *config); 80 81 /*! 82 * \brief Attach counters entries to the given monitor ID. 83 * 84 * \param [in] unit Unit Number. 85 * \param [in] monitor_id Monitor ID. 86 * \param [in] stat_counter_id Counter ID. 87 * 88 * \retval SHR_E_NONE No errors. 89 * \retval !SHR_E_NONE Failure. 90 */ 91 typedef int (*ldh_monitor_stat_attach_f)( 92 int unit, 93 uint8_t monitor_id, 94 uint32_t stat_counter_id); 95 96 /*! 97 * \brief Get state counter ID which is associated with a given latency monitor ID. 98 * 99 * \param [in] unit Unit Number. 100 * \param [in] monitor_id Monitor ID. 101 * \param [in] stat_counter_id Counter ID. 102 * 103 * \retval SHR_E_NONE No errors. 104 * \retval !SHR_E_NONE Failure. 105 */ 106 typedef int (*ldh_monitor_stat_id_get_f)( 107 int unit, 108 uint8_t monitor_id, 109 uint32_t *stat_counter_id); 110 111 /*! 112 * \brief Detach counters entries to the given monitor. 113 * 114 * \param [in] unit Unit Number. 115 * \param [in] monitor_id Monitor ID. 116 * 117 * \retval SHR_E_NONE No errors. 118 * \retval !SHR_E_NONE Failure. 119 */ 120 typedef int (*ldh_monitor_stat_detach_f)( 121 int unit, 122 uint8_t monitor_id); 123 124 /*! 125 * \brief Parameter check on monitor ID. 126 * 127 * \param [in] unit Unit Number. 128 * \param [in] monitor_id Monitor ID. 129 * 130 * \retval SHR_E_NONE No errors. 131 * \retval !SHR_E_NONE Failure. 132 */ 133 typedef int (*ldh_monitor_id_check_f)( 134 int unit, 135 uint8_t monitor_id); 136 137 /*! 138 * \brief Parameter check on monitor config structure. 139 * 140 * \param [in] unit Unit Number. 141 * \param [in] monitor_id Monitor ID. 142 * \param [in] config Monitor configuration. 143 * 144 * \retval SHR_E_NONE No errors. 145 * \retval !SHR_E_NONE Failure. 146 */ 147 typedef int (*ldh_monitor_config_check_f)( 148 int unit, 149 uint8_t monitor_id, 150 bcm_latency_monitor_config_t *config); 151 152 /*! 153 * \brief Ldh driver structure. 154 */ 155 typedef struct mbcm_ltsw_ldh_drv_s { 156 157 /*! Initialize LDH module. */ 158 ldh_init_f ldh_init; 159 160 /*! Detach LDH module. */ 161 ldh_detach_f ldh_detach; 162 163 /*! Enable/disable monitor. */ 164 ldh_monitor_enable_f ldh_monitor_enable; 165 166 /*! Set configuration for a given latency monitor. */ 167 ldh_monitor_config_set_f ldh_monitor_config_set; 168 169 /*! Get configuration for a given latency monitor. */ 170 ldh_monitor_config_get_f ldh_monitor_config_get; 171 172 /*! Attach counters entries to the given monitor ID. */ 173 ldh_monitor_stat_attach_f ldh_monitor_stat_attach; 174 175 /*! Get state counter ID which is associated with a given latency monitor ID. */ 176 ldh_monitor_stat_id_get_f ldh_monitor_stat_id_get; 177 178 /*! Detach counters entries to the given monitor. */ 179 ldh_monitor_stat_detach_f ldh_monitor_stat_detach; 180 181 /*! Parameter check on monitor ID. */ 182 ldh_monitor_id_check_f ldh_monitor_id_check; 183 184 /*! Parameter check on monitor config structure. */ 185 ldh_monitor_config_check_f ldh_monitor_config_check; 186 187 } mbcm_ltsw_ldh_drv_t; 188 189 /*! 190 * \brief Set the LDH driver of the device. 191 * 192 * \param [in] unit Unit Number. 193 * \param [in] drv Ldh driver to set. 194 * 195 * \retval SHR_E_NONE No errors. 196 * \retval !SHR_E_NONE Failure. 197 */ 198 extern int 199 mbcm_ltsw_ldh_drv_set( 200 int unit, 201 mbcm_ltsw_ldh_drv_t *drv); 202 203 /*! 204 * \brief Initialize LDH module. 205 * 206 * \param [in] unit Unit Number. 207 * 208 * \retval SHR_E_NONE No errors. 209 * \retval !SHR_E_NONE Failure. 210 */ 211 extern int 212 mbcm_ltsw_ldh_init(int unit); 213 214 /*! 215 * \brief Detach LDH module. 216 * 217 * \param [in] unit Unit Number. 218 * 219 * \retval SHR_E_NONE No errors. 220 * \retval !SHR_E_NONE Failure. 221 */ 222 extern int 223 mbcm_ltsw_ldh_detach(int unit); 224 225 /*! 226 * \brief Enable/disable monitor. 227 * 228 * \param [in] unit Unit Number. 229 * \param [in] monitor_id Monitor ID. 230 * \param [in] enable Enable/disable monitor. 231 * 232 * \retval SHR_E_NONE No errors. 233 * \retval !SHR_E_NONE Failure. 234 */ 235 extern int 236 mbcm_ltsw_ldh_monitor_enable( 237 int unit, 238 uint8_t monitor_id, 239 uint8_t enable); 240 241 /*! 242 * \brief Set configuration for a given latency monitor. 243 * 244 * \param [in] unit Unit Number. 245 * \param [in] monitor_id Monitor ID. 246 * \param [in] config Monitor configuration. 247 * 248 * \retval SHR_E_NONE No errors. 249 * \retval !SHR_E_NONE Failure. 250 */ 251 extern int 252 mbcm_ltsw_ldh_monitor_config_set( 253 int unit, 254 uint8_t monitor_id, 255 bcm_latency_monitor_config_t *config); 256 257 /*! 258 * \brief Get configuration for a given latency monitor. 259 * 260 * \param [in] unit Unit Number. 261 * \param [in] monitor_id Monitor ID. 262 * \param [out] config Monitor configuration. 263 * 264 * \retval SHR_E_NONE No errors. 265 * \retval !SHR_E_NONE Failure. 266 */ 267 extern int 268 mbcm_ltsw_ldh_monitor_config_get( 269 int unit, 270 uint8_t monitor_id, 271 bcm_latency_monitor_config_t *config); 272 273 /*! 274 * \brief Attach counters entries to the given monitor ID. 275 * 276 * \param [in] unit Unit Number. 277 * \param [in] monitor_id Monitor ID. 278 * \param [in] stat_counter_id Counter ID. 279 * 280 * \retval SHR_E_NONE No errors. 281 * \retval !SHR_E_NONE Failure. 282 */ 283 extern int 284 mbcm_ltsw_ldh_monitor_stat_attach( 285 int unit, 286 uint8_t monitor_id, 287 uint32_t stat_counter_id); 288 289 /*! 290 * \brief Get state counter ID which is associated with a given latency monitor ID. 291 * 292 * \param [in] unit Unit Number. 293 * \param [in] monitor_id Monitor ID. 294 * \param [in] stat_counter_id Counter ID. 295 * 296 * \retval SHR_E_NONE No errors. 297 * \retval !SHR_E_NONE Failure. 298 */ 299 extern int 300 mbcm_ltsw_ldh_monitor_stat_id_get( 301 int unit, 302 uint8_t monitor_id, 303 uint32_t *stat_counter_id); 304 305 /*! 306 * \brief Detach counters entries to the given monitor. 307 * 308 * \param [in] unit Unit Number. 309 * \param [in] monitor_id Monitor ID. 310 * 311 * \retval SHR_E_NONE No errors. 312 * \retval !SHR_E_NONE Failure. 313 */ 314 extern int 315 mbcm_ltsw_ldh_monitor_stat_detach( 316 int unit, 317 uint8_t monitor_id); 318 319 /*! 320 * \brief Parameter check on monitor ID. 321 * 322 * \param [in] unit Unit Number. 323 * \param [in] monitor_id Monitor ID. 324 * 325 * \retval SHR_E_NONE No errors. 326 * \retval !SHR_E_NONE Failure. 327 */ 328 extern int 329 mbcm_ltsw_ldh_monitor_id_check( 330 int unit, 331 uint8_t monitor_id); 332 333 /*! 334 * \brief Parameter check on monitor config structure. 335 * 336 * \param [in] unit Unit Number. 337 * \param [in] monitor_id Monitor ID. 338 * \param [in] config Monitor configuration. 339 * 340 * \retval SHR_E_NONE No errors. 341 * \retval !SHR_E_NONE Failure. 342 */ 343 extern int 344 mbcm_ltsw_ldh_monitor_config_check( 345 int unit, 346 uint8_t monitor_id, 347 bcm_latency_monitor_config_t *config); 348 349 #endif /* BCMINT_LTSW_MBCM_LDH_H */