xref: /wlan-dirver/qca-wifi-host-cmn/qal/inc/qal_bridge.h (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
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