qal_bridge.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /*
  2. * Copyright (c) 2021 The Linux Foundation. All rights reserved.
  3. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for
  6. * any purpose with or without fee is hereby granted, provided that the
  7. * above copyright notice and this permission notice appear in all
  8. * copies.
  9. *
  10. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  11. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  12. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  13. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  14. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  15. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  16. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  17. * PERFORMANCE OF THIS SOFTWARE.
  18. */
  19. /**
  20. * DOC: qal_bridge
  21. * QCA driver framework for bridge related APIs prototype
  22. */
  23. #ifndef __QAL_BRIDGE_H
  24. #define __QAL_BRIDGE_H
  25. /* Include Files */
  26. #include "qdf_types.h"
  27. #include "i_qal_bridge.h"
  28. typedef __qal_notify_blk_t qal_notify_blk_t;
  29. typedef __qal_netdev_t qal_netdev_t;
  30. typedef __qal_br_fdb_entry_t qal_br_fdb_entry_t;
  31. #ifdef ENHANCED_OS_ABSTRACTION
  32. QDF_STATUS
  33. qal_bridge_fdb_register_notify(qal_notify_blk_t nb);
  34. QDF_STATUS
  35. qal_bridge_fdb_unregister_notify(qal_notify_blk_t nb);
  36. qal_br_fdb_entry_t
  37. qal_bridge_fdb_has_entry(qal_netdev_t dev, const char *addr, uint16_t vid);
  38. QDF_STATUS
  39. qal_bridge_fdb_delete_by_netdev(qal_netdev_t dev,
  40. const unsigned char *addr, uint16_t vid);
  41. QDF_STATUS
  42. qal_bridge_fdb_update_register_notify(qal_notify_blk_t nb);
  43. QDF_STATUS
  44. qal_bridge_fdb_update_unregister_notify(qal_notify_blk_t nb);
  45. QDF_STATUS
  46. qal_bridge_fdb_add_or_refresh_by_netdev(qal_netdev_t dev,
  47. const unsigned char *addr,
  48. uint16_t vid,
  49. uint16_t state);
  50. #else
  51. static inline QDF_STATUS
  52. qal_bridge_fdb_register_notify(qal_notify_blk_t nb)
  53. {
  54. return __qal_bridge_fdb_register_notify(nb);
  55. }
  56. static inline QDF_STATUS
  57. qal_bridge_fdb_unregister_notify(qal_notify_blk_t nb)
  58. {
  59. return __qal_bridge_fdb_unregister_notify(nb);
  60. }
  61. static inline qal_br_fdb_entry_t
  62. qal_bridge_fdb_has_entry(qal_netdev_t dev, const char *addr, uint16_t vid)
  63. {
  64. return __qal_bridge_fdb_has_entry(dev, addr, vid);
  65. }
  66. static inline QDF_STATUS
  67. qal_bridge_fdb_delete_by_netdev(qal_netdev_t dev,
  68. const unsigned char *addr, uint16_t vid)
  69. {
  70. return __qal_bridge_fdb_delete_by_netdev(dev, addr, vid);
  71. }
  72. static inline QDF_STATUS
  73. qal_bridge_fdb_update_register_notify(qal_notify_blk_t nb)
  74. {
  75. return __qal_bridge_fdb_update_register_notify(nb);
  76. }
  77. static inline QDF_STATUS
  78. qal_bridge_fdb_update_unregister_notify(qal_notify_blk_t nb)
  79. {
  80. return __qal_bridge_fdb_update_unregister_notify(nb);
  81. }
  82. QDF_STATUS
  83. qal_bridge_fdb_add_or_refresh_by_netdev(qal_netdev_t dev,
  84. const unsigned char *addr,
  85. uint16_t vid,
  86. uint16_t state)
  87. {
  88. __qal_bridge_fdb_add_or_refresh_by_netdev(dev, addr, vid, state);
  89. }
  90. #endif
  91. #endif /* __QAL_BRIDGE_H */