pfc.h (18856B)
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_PFC_H 12 #define BCMINT_LTSW_MBCM_PFC_H 13 14 #include <bcm/cosq.h> 15 #include <bcm/types.h> 16 17 #include <sal/sal_types.h> 18 19 /*! 20 * \brief Get an entire PFC class (RX) profile 21 * 22 * \param [in] unit Unit Number. 23 * \param [in] profile_id Profile ID. 24 * \param [in] max_count Maximum number of elements in config array. 25 * \param [out] config_array PFC class config array. 26 * \param [out] count actual size of array. 27 * 28 * \retval SHR_E_NONE No errors. 29 * \retval !SHR_E_NONE Failure. 30 */ 31 typedef int (*pfc_class_config_profile_get_f)( 32 int unit, 33 int profile_id, 34 int max_count, 35 bcm_cosq_pfc_class_map_config_t *config_array, 36 int *count); 37 38 /*! 39 * \brief Set an entire PFC class (RX) profile 40 * 41 * \param [in] unit Unit Number. 42 * \param [in] profile_id Profile ID. 43 * \param [in] count The length of array. 44 * \param [out] config_array PFC class config array. 45 * 46 * \retval SHR_E_NONE No errors. 47 * \retval !SHR_E_NONE Failure. 48 */ 49 typedef int (*pfc_class_config_profile_set_f)( 50 int unit, 51 int profile_id, 52 int count, 53 bcm_cosq_pfc_class_map_config_t *config_array); 54 55 /*! 56 * \brief Get a PFC-tx priority to PG mapping profile 57 * 58 * \param [in] unit Unit Number. 59 * \param [in] profile_id Profile ID. 60 * \param [in] array_max Maximum number of elements in PG array. 61 * \param [out] pg_array PG array, indexed by PFC priority. 62 * \param [out] array_count actual size of array. 63 * 64 * \retval SHR_E_NONE No errors. 65 * \retval !SHR_E_NONE Failure. 66 */ 67 typedef int (*pfc_priority_mapping_profile_get_f)( 68 int unit, 69 int profile_id, 70 int array_max, 71 int *pg_array, 72 int *array_count); 73 74 /*! 75 * \brief Set a PFC-tx priority to PG mapping profile 76 * 77 * \param [in] unit Unit Number. 78 * \param [in] profile_id Profile ID. 79 * \param [in] array_count actual size of array. 80 * \param [out] pg_array PG array, indexed by PFC priority. 81 * 82 * \retval SHR_E_NONE No errors. 83 * \retval !SHR_E_NONE Failure. 84 */ 85 typedef int (*pfc_priority_mapping_profile_set_f)( 86 int unit, 87 int profile_id, 88 int array_count, 89 int *pg_array); 90 91 /*! 92 * \brief Get number of optimized PFC groups on a port. 93 * 94 * \param [in] unit Unit Number. 95 * \param [in] port logical port number. 96 * \param [out] arg number of optimized PFC groups supported. 97 * 98 * \retval SHR_E_NONE No errors. 99 * \retval !SHR_E_NONE Failure. 100 */ 101 typedef int (*pfc_group_num_get_f)( 102 int unit, 103 int port, 104 int *arg); 105 106 /*! 107 * \brief Initialize the pfc module. 108 * 109 * \param [in] unit Unit Number. 110 * 111 * \retval SHR_E_NONE No errors. 112 * \retval !SHR_E_NONE Failure. 113 */ 114 typedef int (*pfc_init_f)(int unit); 115 116 /*! 117 * \brief Detach the pfc module. 118 * 119 * \param [in] unit Unit Number. 120 * 121 * \retval SHR_E_NONE No errors. 122 * \retval !SHR_E_NONE Failure. 123 */ 124 typedef int (*pfc_detach_f)(int unit); 125 126 /*! 127 * \brief Enable/diable PFC rx. 128 * 129 * \param [in] unit Unit Number. 130 * \param [in] lport Logical port ID. 131 * \param [in] pfc_enable PFC enable, 0: disable, 1: enable. 132 * 133 * \retval SHR_E_NONE No errors. 134 * \retval !SHR_E_NONE Failure. 135 */ 136 typedef int (*pfc_rx_config_set_f)( 137 int unit, 138 int lport, 139 int pfc_enable); 140 141 /*! 142 * \brief Enable/diable PFC tx. 143 * 144 * \param [in] unit Unit Number. 145 * \param [in] lport Logical port ID. 146 * \param [in] pfc_enable PFC enable, 0: disable, 1: enable. 147 * 148 * \retval SHR_E_NONE No errors. 149 * \retval !SHR_E_NONE Failure. 150 */ 151 typedef int (*pfc_tx_config_set_f)( 152 int unit, 153 int lport, 154 int pfc_enable); 155 156 /*! 157 * \brief enable port pg pfc. 158 * 159 * \param [in] unit Unit Number. 160 * \param [in] port Port ID. 161 * \param [in] pg priority group id. 162 * \param [in] pfc_enable pfc enable state. 163 * 164 * \retval SHR_E_NONE No errors. 165 * \retval !SHR_E_NONE Failure. 166 */ 167 typedef int (*pfc_port_pg_pfc_set_f)( 168 int unit, 169 bcm_port_t port, 170 int pg, 171 int pfc_enable); 172 173 /*! 174 * \brief Get per port pg pfc enable state. 175 * 176 * \param [in] unit Unit Number. 177 * \param [in] port Port ID. 178 * \param [in] pg priority group id. 179 * \param [out] pfc_enable pfc enable state. 180 * 181 * \retval SHR_E_NONE No errors. 182 * \retval !SHR_E_NONE Failure. 183 */ 184 typedef int (*pfc_port_pg_pfc_get_f)( 185 int unit, 186 bcm_port_t port, 187 int pg, 188 int *pfc_enable); 189 190 /*! 191 * \brief Set the PFC-related profile ID for a given port. 192 * 193 * \param [in] unit Unit Number. 194 * \param [in] lport Logical port ID. 195 * \param [in] profile_id profile ID. 196 * 197 * \retval SHR_E_NONE No errors. 198 * \retval !SHR_E_NONE Failure. 199 */ 200 typedef int (*pfc_config_profile_id_set_f)( 201 int unit, 202 int lport, 203 int profile_id); 204 205 /*! 206 * \brief Set Recovery action to be performed in PFC deadlock recovery state. 207 * 208 * \param [in] unit Unit Number. 209 * \param [in] action 0-Transmit Packets (Default), 1-Drop. 210 * 211 * \retval SHR_E_NONE No errors. 212 * \retval !SHR_E_NONE Failure. 213 */ 214 typedef int (*pfc_deadlock_recovery_action_set_f)( 215 int unit, 216 int action); 217 218 /*! 219 * \brief Get Recovery action to be performed in PFC deadlock recovery state. 220 * 221 * \param [in] unit Unit Number. 222 * \param [out] action 0-Transmit Packets (Default), 1-Drop. 223 * 224 * \retval SHR_E_NONE No errors. 225 * \retval !SHR_E_NONE Failure. 226 */ 227 typedef int (*pfc_deadlock_recovery_action_get_f)( 228 int unit, 229 int *action); 230 231 /*! 232 * \brief Get config for the given (PFC priority, port) for the PFC Deadlock feature. 233 * 234 * \param [in] unit Unit Number. 235 * \param [in] port Port ID. 236 * \param [in] pfc_priority PFC Priority. 237 * \param [in] type PFC deadlock control type. 238 * \param [out] arg pointer to value. 239 * 240 * \retval SHR_E_NONE No errors. 241 * \retval !SHR_E_NONE Failure. 242 */ 243 typedef int (*pfc_deadlock_control_get_f)( 244 int unit, 245 bcm_port_t port, 246 int pfc_priority, 247 bcm_cosq_pfc_deadlock_control_t type, 248 int *arg); 249 250 /*! 251 * \brief Set config for the given (PFC priority, port) for the PFC Deadlock feature. 252 * 253 * \param [in] unit Unit Number. 254 * \param [in] port Port ID. 255 * \param [in] pfc_priority PFC Priority. 256 * \param [in] type PFC deadlock control type. 257 * \param [in] arg value. 258 * 259 * \retval SHR_E_NONE No errors. 260 * \retval !SHR_E_NONE Failure. 261 */ 262 typedef int (*pfc_deadlock_control_set_f)( 263 int unit, 264 bcm_port_t port, 265 int pfc_priority, 266 bcm_cosq_pfc_deadlock_control_t type, 267 int arg); 268 269 /*! 270 * \brief Get bitmap of Enabled(Admin) and Current Deadlock ports status for a given priority in PFC deadlock feature. 271 * 272 * \param [in] unit Unit Number. 273 * \param [in] pfc_priority PFC Priority. 274 * \param [out] pfc_deadlock_info Info for a given priority. 275 * 276 * \retval SHR_E_NONE No errors. 277 * \retval !SHR_E_NONE Failure. 278 */ 279 typedef int (*pfc_deadlock_info_get_f)( 280 int unit, 281 int pfc_priority, 282 bcm_cosq_pfc_deadlock_info_t *pfc_deadlock_info); 283 284 /*! 285 * \brief Get the current Deadlock status for the given Port. 286 * 287 * \param [in] unit Unit Number. 288 * \param [in] gport Gport id. 289 * \param [out] deadlock_status Deatlock status for the given port. 290 * 291 * \retval SHR_E_NONE No errors. 292 * \retval !SHR_E_NONE Failure. 293 */ 294 typedef int (*pfc_deadlock_queue_status_get_f)( 295 int unit, 296 bcm_gport_t gport, 297 uint8_t *deadlock_status); 298 299 /*! 300 * \brief Register pfc deadlock recovery callback in PFC deadlock feature. 301 * 302 * \param [in] unit Unit Number. 303 * \param [in] callback callback function. 304 * \param [in] userdata user data. 305 * 306 * \retval SHR_E_NONE No errors. 307 * \retval !SHR_E_NONE Failure. 308 */ 309 typedef int (*pfc_deadlock_recovery_event_register_f)( 310 int unit, 311 bcm_cosq_pfc_deadlock_recovery_event_cb_t callback, 312 void *userdata); 313 314 /*! 315 * \brief Unregister pfc deadlock recovery callback in PFC deadlock feature. 316 * 317 * \param [in] unit Unit Number. 318 * \param [in] callback callback function. 319 * \param [in] userdata user data. 320 * 321 * \retval SHR_E_NONE No errors. 322 * \retval !SHR_E_NONE Failure. 323 */ 324 typedef int (*pfc_deadlock_recovery_event_unregister_f)( 325 int unit, 326 bcm_cosq_pfc_deadlock_recovery_event_cb_t callback, 327 void *userdata); 328 329 /*! 330 * \brief PFC driver structure. 331 */ 332 typedef struct mbcm_ltsw_pfc_drv_s { 333 334 /*! Get an entire PFC class (RX) profile */ 335 pfc_class_config_profile_get_f pfc_class_config_profile_get; 336 337 /*! Set an entire PFC class (RX) profile */ 338 pfc_class_config_profile_set_f pfc_class_config_profile_set; 339 340 /*! Get a PFC-tx priority to PG mapping profile */ 341 pfc_priority_mapping_profile_get_f pfc_priority_mapping_profile_get; 342 343 /*! Set a PFC-tx priority to PG mapping profile */ 344 pfc_priority_mapping_profile_set_f pfc_priority_mapping_profile_set; 345 346 /*! Get number of optimized PFC groups on a port. */ 347 pfc_group_num_get_f pfc_group_num_get; 348 349 /*! Initialize the pfc module. */ 350 pfc_init_f pfc_init; 351 352 /*! Detach the pfc module. */ 353 pfc_detach_f pfc_detach; 354 355 /*! Enable/diable PFC rx. */ 356 pfc_rx_config_set_f pfc_rx_config_set; 357 358 /*! Enable/diable PFC tx. */ 359 pfc_tx_config_set_f pfc_tx_config_set; 360 361 /*! enable port pg pfc. */ 362 pfc_port_pg_pfc_set_f pfc_port_pg_pfc_set; 363 364 /*! Get per port pg pfc enable state. */ 365 pfc_port_pg_pfc_get_f pfc_port_pg_pfc_get; 366 367 /*! Set the PFC-related profile ID for a given port. */ 368 pfc_config_profile_id_set_f pfc_config_profile_id_set; 369 370 /*! Set Recovery action to be performed in PFC deadlock recovery state. */ 371 pfc_deadlock_recovery_action_set_f pfc_deadlock_recovery_action_set; 372 373 /*! Get Recovery action to be performed in PFC deadlock recovery state. */ 374 pfc_deadlock_recovery_action_get_f pfc_deadlock_recovery_action_get; 375 376 /*! Get config for the given (PFC priority, port) for the PFC Deadlock feature. */ 377 pfc_deadlock_control_get_f pfc_deadlock_control_get; 378 379 /*! Set config for the given (PFC priority, port) for the PFC Deadlock feature. */ 380 pfc_deadlock_control_set_f pfc_deadlock_control_set; 381 382 /*! Get bitmap of Enabled(Admin) and Current Deadlock ports status for a given priority in PFC deadlock feature. */ 383 pfc_deadlock_info_get_f pfc_deadlock_info_get; 384 385 /*! Get the current Deadlock status for the given Port. */ 386 pfc_deadlock_queue_status_get_f pfc_deadlock_queue_status_get; 387 388 /*! Register pfc deadlock recovery callback in PFC deadlock feature. */ 389 pfc_deadlock_recovery_event_register_f pfc_deadlock_recovery_event_register; 390 391 /*! Unregister pfc deadlock recovery callback in PFC deadlock feature. */ 392 pfc_deadlock_recovery_event_unregister_f pfc_deadlock_recovery_event_unregister; 393 394 } mbcm_ltsw_pfc_drv_t; 395 396 /*! 397 * \brief Set the PFC driver of the device. 398 * 399 * \param [in] unit Unit Number. 400 * \param [in] drv Pfc driver to set. 401 * 402 * \retval SHR_E_NONE No errors. 403 * \retval !SHR_E_NONE Failure. 404 */ 405 extern int 406 mbcm_ltsw_pfc_drv_set( 407 int unit, 408 mbcm_ltsw_pfc_drv_t *drv); 409 410 /*! 411 * \brief Get an entire PFC class (RX) profile 412 * 413 * \param [in] unit Unit Number. 414 * \param [in] profile_id Profile ID. 415 * \param [in] max_count Maximum number of elements in config array. 416 * \param [out] config_array PFC class config array. 417 * \param [out] count actual size of array. 418 * 419 * \retval SHR_E_NONE No errors. 420 * \retval !SHR_E_NONE Failure. 421 */ 422 extern int 423 mbcm_ltsw_pfc_class_config_profile_get( 424 int unit, 425 int profile_id, 426 int max_count, 427 bcm_cosq_pfc_class_map_config_t *config_array, 428 int *count); 429 430 /*! 431 * \brief Set an entire PFC class (RX) profile 432 * 433 * \param [in] unit Unit Number. 434 * \param [in] profile_id Profile ID. 435 * \param [in] count The length of array. 436 * \param [out] config_array PFC class config array. 437 * 438 * \retval SHR_E_NONE No errors. 439 * \retval !SHR_E_NONE Failure. 440 */ 441 extern int 442 mbcm_ltsw_pfc_class_config_profile_set( 443 int unit, 444 int profile_id, 445 int count, 446 bcm_cosq_pfc_class_map_config_t *config_array); 447 448 /*! 449 * \brief Get a PFC-tx priority to PG mapping profile 450 * 451 * \param [in] unit Unit Number. 452 * \param [in] profile_id Profile ID. 453 * \param [in] array_max Maximum number of elements in PG array. 454 * \param [out] pg_array PG array, indexed by PFC priority. 455 * \param [out] array_count actual size of array. 456 * 457 * \retval SHR_E_NONE No errors. 458 * \retval !SHR_E_NONE Failure. 459 */ 460 extern int 461 mbcm_ltsw_pfc_priority_mapping_profile_get( 462 int unit, 463 int profile_id, 464 int array_max, 465 int *pg_array, 466 int *array_count); 467 468 /*! 469 * \brief Set a PFC-tx priority to PG mapping profile 470 * 471 * \param [in] unit Unit Number. 472 * \param [in] profile_id Profile ID. 473 * \param [in] array_count actual size of array. 474 * \param [out] pg_array PG array, indexed by PFC priority. 475 * 476 * \retval SHR_E_NONE No errors. 477 * \retval !SHR_E_NONE Failure. 478 */ 479 extern int 480 mbcm_ltsw_pfc_priority_mapping_profile_set( 481 int unit, 482 int profile_id, 483 int array_count, 484 int *pg_array); 485 486 /*! 487 * \brief Get number of optimized PFC groups on a port. 488 * 489 * \param [in] unit Unit Number. 490 * \param [in] port logical port number. 491 * \param [out] arg number of optimized PFC groups supported. 492 * 493 * \retval SHR_E_NONE No errors. 494 * \retval !SHR_E_NONE Failure. 495 */ 496 extern int 497 mbcm_ltsw_pfc_group_num_get( 498 int unit, 499 int port, 500 int *arg); 501 502 /*! 503 * \brief Initialize the pfc module. 504 * 505 * \param [in] unit Unit Number. 506 * 507 * \retval SHR_E_NONE No errors. 508 * \retval !SHR_E_NONE Failure. 509 */ 510 extern int 511 mbcm_ltsw_pfc_init(int unit); 512 513 /*! 514 * \brief Detach the pfc module. 515 * 516 * \param [in] unit Unit Number. 517 * 518 * \retval SHR_E_NONE No errors. 519 * \retval !SHR_E_NONE Failure. 520 */ 521 extern int 522 mbcm_ltsw_pfc_detach(int unit); 523 524 /*! 525 * \brief Enable/diable PFC rx. 526 * 527 * \param [in] unit Unit Number. 528 * \param [in] lport Logical port ID. 529 * \param [in] pfc_enable PFC enable, 0: disable, 1: enable. 530 * 531 * \retval SHR_E_NONE No errors. 532 * \retval !SHR_E_NONE Failure. 533 */ 534 extern int 535 mbcm_ltsw_pfc_rx_config_set( 536 int unit, 537 int lport, 538 int pfc_enable); 539 540 /*! 541 * \brief Enable/diable PFC tx. 542 * 543 * \param [in] unit Unit Number. 544 * \param [in] lport Logical port ID. 545 * \param [in] pfc_enable PFC enable, 0: disable, 1: enable. 546 * 547 * \retval SHR_E_NONE No errors. 548 * \retval !SHR_E_NONE Failure. 549 */ 550 extern int 551 mbcm_ltsw_pfc_tx_config_set( 552 int unit, 553 int lport, 554 int pfc_enable); 555 556 /*! 557 * \brief enable port pg pfc. 558 * 559 * \param [in] unit Unit Number. 560 * \param [in] port Port ID. 561 * \param [in] pg priority group id. 562 * \param [in] pfc_enable pfc enable state. 563 * 564 * \retval SHR_E_NONE No errors. 565 * \retval !SHR_E_NONE Failure. 566 */ 567 extern int 568 mbcm_ltsw_pfc_port_pg_pfc_set( 569 int unit, 570 bcm_port_t port, 571 int pg, 572 int pfc_enable); 573 574 /*! 575 * \brief Get per port pg pfc enable state. 576 * 577 * \param [in] unit Unit Number. 578 * \param [in] port Port ID. 579 * \param [in] pg priority group id. 580 * \param [out] pfc_enable pfc enable state. 581 * 582 * \retval SHR_E_NONE No errors. 583 * \retval !SHR_E_NONE Failure. 584 */ 585 extern int 586 mbcm_ltsw_pfc_port_pg_pfc_get( 587 int unit, 588 bcm_port_t port, 589 int pg, 590 int *pfc_enable); 591 592 /*! 593 * \brief Set the PFC-related profile ID for a given port. 594 * 595 * \param [in] unit Unit Number. 596 * \param [in] lport Logical port ID. 597 * \param [in] profile_id profile ID. 598 * 599 * \retval SHR_E_NONE No errors. 600 * \retval !SHR_E_NONE Failure. 601 */ 602 extern int 603 mbcm_ltsw_pfc_config_profile_id_set( 604 int unit, 605 int lport, 606 int profile_id); 607 608 /*! 609 * \brief Set Recovery action to be performed in PFC deadlock recovery state. 610 * 611 * \param [in] unit Unit Number. 612 * \param [in] action 0-Transmit Packets (Default), 1-Drop. 613 * 614 * \retval SHR_E_NONE No errors. 615 * \retval !SHR_E_NONE Failure. 616 */ 617 extern int 618 mbcm_ltsw_pfc_deadlock_recovery_action_set( 619 int unit, 620 int action); 621 622 /*! 623 * \brief Get Recovery action to be performed in PFC deadlock recovery state. 624 * 625 * \param [in] unit Unit Number. 626 * \param [out] action 0-Transmit Packets (Default), 1-Drop. 627 * 628 * \retval SHR_E_NONE No errors. 629 * \retval !SHR_E_NONE Failure. 630 */ 631 extern int 632 mbcm_ltsw_pfc_deadlock_recovery_action_get( 633 int unit, 634 int *action); 635 636 /*! 637 * \brief Get config for the given (PFC priority, port) for the PFC Deadlock feature. 638 * 639 * \param [in] unit Unit Number. 640 * \param [in] port Port ID. 641 * \param [in] pfc_priority PFC Priority. 642 * \param [in] type PFC deadlock control type. 643 * \param [out] arg pointer to value. 644 * 645 * \retval SHR_E_NONE No errors. 646 * \retval !SHR_E_NONE Failure. 647 */ 648 extern int 649 mbcm_ltsw_pfc_deadlock_control_get( 650 int unit, 651 bcm_port_t port, 652 int pfc_priority, 653 bcm_cosq_pfc_deadlock_control_t type, 654 int *arg); 655 656 /*! 657 * \brief Set config for the given (PFC priority, port) for the PFC Deadlock feature. 658 * 659 * \param [in] unit Unit Number. 660 * \param [in] port Port ID. 661 * \param [in] pfc_priority PFC Priority. 662 * \param [in] type PFC deadlock control type. 663 * \param [in] arg value. 664 * 665 * \retval SHR_E_NONE No errors. 666 * \retval !SHR_E_NONE Failure. 667 */ 668 extern int 669 mbcm_ltsw_pfc_deadlock_control_set( 670 int unit, 671 bcm_port_t port, 672 int pfc_priority, 673 bcm_cosq_pfc_deadlock_control_t type, 674 int arg); 675 676 /*! 677 * \brief Get bitmap of Enabled(Admin) and Current Deadlock ports status for a given priority in PFC deadlock feature. 678 * 679 * \param [in] unit Unit Number. 680 * \param [in] pfc_priority PFC Priority. 681 * \param [out] pfc_deadlock_info Info for a given priority. 682 * 683 * \retval SHR_E_NONE No errors. 684 * \retval !SHR_E_NONE Failure. 685 */ 686 extern int 687 mbcm_ltsw_pfc_deadlock_info_get( 688 int unit, 689 int pfc_priority, 690 bcm_cosq_pfc_deadlock_info_t *pfc_deadlock_info); 691 692 /*! 693 * \brief Get the current Deadlock status for the given Port. 694 * 695 * \param [in] unit Unit Number. 696 * \param [in] gport Gport id. 697 * \param [out] deadlock_status Deatlock status for the given port. 698 * 699 * \retval SHR_E_NONE No errors. 700 * \retval !SHR_E_NONE Failure. 701 */ 702 extern int 703 mbcm_ltsw_pfc_deadlock_queue_status_get( 704 int unit, 705 bcm_gport_t gport, 706 uint8_t *deadlock_status); 707 708 /*! 709 * \brief Register pfc deadlock recovery callback in PFC deadlock feature. 710 * 711 * \param [in] unit Unit Number. 712 * \param [in] callback callback function. 713 * \param [in] userdata user data. 714 * 715 * \retval SHR_E_NONE No errors. 716 * \retval !SHR_E_NONE Failure. 717 */ 718 extern int 719 mbcm_ltsw_pfc_deadlock_recovery_event_register( 720 int unit, 721 bcm_cosq_pfc_deadlock_recovery_event_cb_t callback, 722 void *userdata); 723 724 /*! 725 * \brief Unregister pfc deadlock recovery callback in PFC deadlock feature. 726 * 727 * \param [in] unit Unit Number. 728 * \param [in] callback callback function. 729 * \param [in] userdata user data. 730 * 731 * \retval SHR_E_NONE No errors. 732 * \retval !SHR_E_NONE Failure. 733 */ 734 extern int 735 mbcm_ltsw_pfc_deadlock_recovery_event_unregister( 736 int unit, 737 bcm_cosq_pfc_deadlock_recovery_event_cb_t callback, 738 void *userdata); 739 740 #endif /* BCMINT_LTSW_MBCM_PFC_H */