xref: /wlan-driver/qca-wifi-host-cmn/umac/cmn_services/obj_mgr/src/wlan_objmgr_vdev_obj_i.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1 /*
2  * Copyright (c) 2016,2018 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  * DOC: Public APIs to perform operations on VDEV objects
20  */
21 #ifndef _WLAN_OBJMGR_VDEV_OBJ_I_H_
22 #define _WLAN_OBJMGR_VDEV_OBJ_I_H_
23 
24 /**
25  * wlan_objmgr_for_each_vdev_peer() - iterate over each peer for @vdev
26  * @vdev: the vdev whose peers should be iterated
27  * @peer: peer object cursor
28  *
29  * Note: The caller is responsible for grabbing @vdev's object lock before
30  * using this iterator
31  */
32 #define wlan_objmgr_for_each_vdev_peer(vdev, peer) \
33 	qdf_list_for_each(&(vdev)->vdev_objmgr.wlan_peer_list, peer, vdev_peer)
34 
35 /**
36  * wlan_objmgr_vdev_peer_attach() - attach peer to vdev peer list
37  * @vdev: VDEV object
38  * @peer: PEER object
39  *
40  * Attaches PEER to VDEV, stores it in VDEV's peer list
41  *
42  * Return: SUCCESS
43  *         Failure (Max PEERs are exceeded)
44  */
45 QDF_STATUS wlan_objmgr_vdev_peer_attach(struct wlan_objmgr_vdev *vdev,
46 			struct wlan_objmgr_peer *peer);
47 
48 /**
49  * wlan_objmgr_vdev_peer_detach() - detach peer from vdev peer list
50  * @vdev: VDEV object
51  * @peer: PEER object
52  *
53  * detaches PEER from VDEV's peer list
54  *
55  * Return: SUCCESS
56  *         Failure (No PEERs are present)
57  */
58 QDF_STATUS wlan_objmgr_vdev_peer_detach(struct wlan_objmgr_vdev *vdev,
59 			struct wlan_objmgr_peer *peer);
60 
61 #endif /* _WLAN_OBJMGR_VDEV_OBJ_I_H_*/
62