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