소스 검색

qcacld-3.0: Create object manager API files in HDD

Create HDD object manager API files and move HDD object manager
APIs implementation inside it.

Change-Id: I762c8a4aafb67c35ef1eb07a7efa5b826659754e
CRs-Fixed: 1108557
Rajeev Kumar 8 년 전
부모
커밋
699debfa8f
6개의 변경된 파일388개의 추가작업 그리고 193개의 파일을 삭제
  1. 2 1
      Kbuild
  2. 1 0
      core/hdd/src/wlan_hdd_hostapd.c
  3. 1 192
      core/hdd/src/wlan_hdd_main.c
  4. 1 0
      core/hdd/src/wlan_hdd_nan_datapath.c
  5. 223 0
      core/hdd/src/wlan_hdd_object_manager.c
  6. 160 0
      core/hdd/src/wlan_hdd_object_manager.h

+ 2 - 1
Kbuild

@@ -393,7 +393,8 @@ HDD_OBJS := 	$(HDD_SRC_DIR)/wlan_hdd_assoc.o \
 		$(HDD_SRC_DIR)/wlan_hdd_trace.o \
 		$(HDD_SRC_DIR)/wlan_hdd_wext.o \
 		$(HDD_SRC_DIR)/wlan_hdd_wmm.o \
-		$(HDD_SRC_DIR)/wlan_hdd_wowl.o
+		$(HDD_SRC_DIR)/wlan_hdd_wowl.o \
+		$(HDD_SRC_DIR)/wlan_hdd_object_manager.o
 
 ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y)
 HDD_OBJS+=	$(HDD_SRC_DIR)/wlan_hdd_ocb.o

+ 1 - 0
core/hdd/src/wlan_hdd_hostapd.c

@@ -77,6 +77,7 @@
 #include "wlan_hdd_green_ap.h"
 #include "ol_rx_fwd.h"
 #include "wlan_hdd_power.h"
+#include "wlan_hdd_object_manager.h"
 
 #define    IS_UP(_dev) \
 	(((_dev)->flags & (IFF_RUNNING|IFF_UP)) == (IFF_RUNNING|IFF_UP))

+ 1 - 192
core/hdd/src/wlan_hdd_main.c

@@ -106,12 +106,7 @@
 #include <wlan_hdd_napi.h>
 #include "wlan_hdd_disa.h"
 #include <dispatcher_init_deinit.h>
-#include <wlan_objmgr_cmn.h>
-#include <wlan_objmgr_global_obj.h>
-#include <wlan_objmgr_psoc_obj.h>
-#include <wlan_objmgr_pdev_obj.h>
-#include <wlan_objmgr_vdev_obj.h>
-#include <wlan_objmgr_peer_obj.h>
+#include "wlan_hdd_object_manager.h"
 
 #ifdef MODULE
 #define WLAN_MODULE_NAME  module_name(THIS_MODULE)
@@ -10043,192 +10038,6 @@ bool hdd_is_roaming_in_progress(void)
 	return hdd_ctx->roaming_in_progress;
 }
 
-QDF_STATUS hdd_create_and_store_psoc(hdd_context_t *hdd_ctx, uint8_t psoc_id)
-{
-	struct wlan_objmgr_psoc *psoc;
-
-	psoc = wlan_objmgr_psoc_obj_create(psoc_id, WLAN_DEV_OL);
-	if (!psoc)
-		return QDF_STATUS_E_FAILURE;
-
-	hdd_ctx->hdd_psoc = psoc;
-
-	return QDF_STATUS_SUCCESS;
-}
-
-QDF_STATUS hdd_release_and_destroy_psoc(hdd_context_t *hdd_ctx)
-{
-	struct wlan_objmgr_psoc *psoc = hdd_ctx->hdd_psoc;
-
-	hdd_ctx->hdd_psoc = NULL;
-	if (psoc) {
-		wlan_objmgr_psoc_obj_delete(psoc);
-		return QDF_STATUS_SUCCESS;
-	} else
-		return QDF_STATUS_E_FAILURE;
-}
-
-QDF_STATUS hdd_create_and_store_pdev(hdd_context_t *hdd_ctx)
-{
-	struct wlan_objmgr_psoc *psoc = hdd_ctx->hdd_psoc;
-	struct wlan_objmgr_pdev *pdev;
-
-	if (!psoc) {
-		hdd_err("Psoc NULL");
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	pdev = wlan_objmgr_pdev_obj_create(psoc, NULL);
-	if (!pdev) {
-		hdd_err("pdev obj create failed");
-		return QDF_STATUS_E_FAILURE;
-	}
-	hdd_ctx->hdd_pdev = pdev;
-
-	return QDF_STATUS_SUCCESS;
-}
-
-QDF_STATUS hdd_release_and_destroy_pdev(hdd_context_t *hdd_ctx)
-{
-	struct wlan_objmgr_pdev *pdev = hdd_ctx->hdd_pdev;
-
-	hdd_ctx->hdd_pdev = NULL;
-	if (pdev) {
-		wlan_objmgr_pdev_obj_delete(pdev);
-		return QDF_STATUS_SUCCESS;
-	} else
-		return QDF_STATUS_E_FAILURE;
-}
-
-QDF_STATUS hdd_create_and_store_vdev(struct wlan_objmgr_pdev *pdev,
-				hdd_adapter_t *adapter)
-{
-	struct wlan_objmgr_vdev *vdev;
-	struct wlan_objmgr_peer *peer;
-	struct wlan_vdev_create_params vdev_params;
-
-	vdev_params.opmode = adapter->device_mode;
-	qdf_mem_copy(vdev_params.macaddr, adapter->macAddressCurrent.bytes,
-						QDF_NET_MAC_ADDR_MAX_LEN);
-	if (!pdev) {
-		hdd_err("pdev NULL");
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	vdev = wlan_objmgr_vdev_obj_create(pdev, &vdev_params);
-	if (!vdev) {
-		hdd_err("vdev obj create fails");
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	if (adapter->sessionId != wlan_vdev_get_id(vdev)) {
-		hdd_err("session id and vdev id mismatch");
-		wlan_objmgr_vdev_obj_delete(vdev);
-		QDF_ASSERT(0);
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	peer = wlan_objmgr_peer_obj_create(vdev, WLAN_PEER_SELF,
-					vdev_params.macaddr);
-	if (!peer) {
-		hdd_err("obj manager self peer create fails for adapter %d",
-					adapter->device_mode);
-		wlan_objmgr_vdev_obj_delete(vdev);
-		return QDF_STATUS_E_FAILURE;
-	}
-	wlan_objmgr_peer_ref_peer(peer);
-	adapter->hdd_vdev = vdev;
-
-	return QDF_STATUS_SUCCESS;
-}
-
-QDF_STATUS hdd_release_and_destroy_vdev(hdd_adapter_t *adapter)
-{
-	struct wlan_objmgr_vdev *vdev = adapter->hdd_vdev;
-
-	adapter->hdd_vdev = NULL;
-	if (vdev) {
-		if (hdd_remove_peer_object(vdev,
-				wlan_vdev_mlme_get_macaddr(vdev))) {
-			hdd_err("Self peer delete fails");
-			return QDF_STATUS_E_FAILURE;
-		}
-
-		wlan_objmgr_vdev_obj_delete(vdev);
-		return QDF_STATUS_SUCCESS;
-	} else
-		return QDF_STATUS_E_FAILURE;
-}
-
-QDF_STATUS hdd_add_peer_object(struct wlan_objmgr_vdev *vdev,
-					enum tQDF_ADAPTER_MODE adapter_mode,
-					uint8_t *mac_addr)
-{
-	enum wlan_peer_type peer_type;
-
-	if ((adapter_mode == QDF_STA_MODE) ||
-		(adapter_mode == QDF_P2P_CLIENT_MODE))
-		peer_type = WLAN_PEER_AP;
-	else if ((adapter_mode == QDF_SAP_MODE) ||
-		(adapter_mode == QDF_P2P_GO_MODE))
-		peer_type = WLAN_PEER_STA;
-	else if (adapter_mode == QDF_IBSS_MODE)
-		peer_type = WLAN_PEER_IBSS;
-	else {
-		hdd_err("Unsupported device mode %d", adapter_mode);
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	if (!vdev) {
-		hdd_err("vdev NULL");
-		QDF_ASSERT(0);
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	if (!wlan_objmgr_peer_obj_create(vdev, peer_type, mac_addr))
-		return QDF_STATUS_E_FAILURE;
-
-	hdd_info("Peer object "MAC_ADDRESS_STR" add success!",
-					MAC_ADDR_ARRAY(mac_addr));
-
-	return QDF_STATUS_SUCCESS;
-}
-
-QDF_STATUS hdd_remove_peer_object(struct wlan_objmgr_vdev *vdev,
-						uint8_t *mac_addr)
-{
-	struct wlan_objmgr_psoc *psoc;
-	struct wlan_objmgr_peer *peer;
-
-	if (!vdev) {
-		hdd_err("vdev NULL");
-		QDF_ASSERT(0);
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	psoc = wlan_vdev_get_psoc(vdev);
-	if (!psoc) {
-		hdd_err("Psoc NUll");
-		QDF_ASSERT(0);
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	peer = wlan_objmgr_find_peer(psoc, mac_addr);
-	if (peer) {
-		if (wlan_objmgr_peer_obj_delete(peer))
-			return QDF_STATUS_E_FAILURE;
-
-		hdd_info("Peer obj "MAC_ADDRESS_STR" deleted",
-				MAC_ADDR_ARRAY(mac_addr));
-		return QDF_STATUS_SUCCESS;
-	}
-
-	hdd_err("Peer obj "MAC_ADDRESS_STR" not found",
-				MAC_ADDR_ARRAY(mac_addr));
-
-	return QDF_STATUS_E_FAILURE;
-}
-
 /* Register the module init/exit functions */
 module_init(hdd_module_init);
 module_exit(hdd_module_exit);

+ 1 - 0
core/hdd/src/wlan_hdd_nan_datapath.c

@@ -33,6 +33,7 @@
 #include "wma_api.h"
 #include "wlan_hdd_assoc.h"
 #include "sme_nan_datapath.h"
+#include "wlan_hdd_object_manager.h"
 
 /* NLA policy */
 static const struct nla_policy

+ 223 - 0
core/hdd/src/wlan_hdd_object_manager.c

@@ -0,0 +1,223 @@
+/*
+ * Copyright (c) 2017 The Linux Foundation. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * This file was originally distributed by Qualcomm Atheros, Inc.
+ * under proprietary terms before Copyright ownership was assigned
+ * to the Linux Foundation.
+ */
+
+/**
+ *  DOC: HDD object manager API source file to create/destroy PSOC,
+ *  PDEV, VDEV and PEER objects.
+ */
+
+#include <wlan_hdd_object_manager.h>
+
+QDF_STATUS hdd_create_and_store_psoc(hdd_context_t *hdd_ctx, uint8_t psoc_id)
+{
+	struct wlan_objmgr_psoc *psoc;
+
+	psoc = wlan_objmgr_psoc_obj_create(psoc_id, WLAN_DEV_OL);
+	if (!psoc)
+		return QDF_STATUS_E_FAILURE;
+
+	hdd_ctx->hdd_psoc = psoc;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS hdd_release_and_destroy_psoc(hdd_context_t *hdd_ctx)
+{
+	struct wlan_objmgr_psoc *psoc = hdd_ctx->hdd_psoc;
+
+	hdd_ctx->hdd_psoc = NULL;
+	if (!psoc)
+		return QDF_STATUS_E_FAILURE;
+
+	wlan_objmgr_psoc_obj_delete(psoc);
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS hdd_create_and_store_pdev(hdd_context_t *hdd_ctx)
+{
+	struct wlan_objmgr_psoc *psoc = hdd_ctx->hdd_psoc;
+	struct wlan_objmgr_pdev *pdev;
+
+	if (!psoc) {
+		hdd_err("Psoc NULL");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	pdev = wlan_objmgr_pdev_obj_create(psoc, NULL);
+	if (!pdev) {
+		hdd_err("pdev obj create failed");
+		return QDF_STATUS_E_FAILURE;
+	}
+	hdd_ctx->hdd_pdev = pdev;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS hdd_release_and_destroy_pdev(hdd_context_t *hdd_ctx)
+{
+	struct wlan_objmgr_pdev *pdev = hdd_ctx->hdd_pdev;
+
+	hdd_ctx->hdd_pdev = NULL;
+	if (!pdev)
+		return QDF_STATUS_E_FAILURE;
+
+	wlan_objmgr_pdev_obj_delete(pdev);
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS hdd_create_and_store_vdev(struct wlan_objmgr_pdev *pdev,
+				hdd_adapter_t *adapter)
+{
+	struct wlan_objmgr_vdev *vdev;
+	struct wlan_objmgr_peer *peer;
+	struct wlan_vdev_create_params vdev_params;
+
+	vdev_params.opmode = adapter->device_mode;
+	qdf_mem_copy(vdev_params.macaddr, adapter->macAddressCurrent.bytes,
+						QDF_NET_MAC_ADDR_MAX_LEN);
+	if (!pdev) {
+		hdd_err("pdev NULL");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	vdev = wlan_objmgr_vdev_obj_create(pdev, &vdev_params);
+	if (!vdev) {
+		hdd_err("vdev obj create fails");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	if (adapter->sessionId != wlan_vdev_get_id(vdev)) {
+		hdd_err("session id and vdev id mismatch");
+		wlan_objmgr_vdev_obj_delete(vdev);
+		QDF_ASSERT(0);
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	peer = wlan_objmgr_peer_obj_create(vdev, WLAN_PEER_SELF,
+					vdev_params.macaddr);
+	if (!peer) {
+		hdd_err("obj manager self peer create fails for adapter %d",
+					adapter->device_mode);
+		wlan_objmgr_vdev_obj_delete(vdev);
+		return QDF_STATUS_E_FAILURE;
+	}
+	adapter->hdd_vdev = vdev;
+
+	wlan_objmgr_peer_ref_peer(peer);
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS hdd_release_and_destroy_vdev(hdd_adapter_t *adapter)
+{
+	struct wlan_objmgr_vdev *vdev = adapter->hdd_vdev;
+
+	adapter->hdd_vdev = NULL;
+	if (!vdev)
+		return QDF_STATUS_E_FAILURE;
+
+	if (hdd_remove_peer_object(vdev,
+			wlan_vdev_mlme_get_macaddr(vdev))) {
+		hdd_err("Self peer delete fails");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	wlan_objmgr_vdev_obj_delete(vdev);
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS hdd_add_peer_object(struct wlan_objmgr_vdev *vdev,
+					enum tQDF_ADAPTER_MODE adapter_mode,
+					uint8_t *mac_addr)
+{
+	enum wlan_peer_type peer_type;
+
+	if ((adapter_mode == QDF_STA_MODE) ||
+		(adapter_mode == QDF_P2P_CLIENT_MODE)) {
+		peer_type = WLAN_PEER_AP;
+	} else if ((adapter_mode == QDF_SAP_MODE) ||
+		(adapter_mode == QDF_P2P_GO_MODE)) {
+		peer_type = WLAN_PEER_STA;
+	} else if (adapter_mode == QDF_IBSS_MODE) {
+		peer_type = WLAN_PEER_IBSS;
+	} else {
+		hdd_err("Unsupported device mode %d", adapter_mode);
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	if (!vdev) {
+		hdd_err("vdev NULL");
+		QDF_ASSERT(0);
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	if (!wlan_objmgr_peer_obj_create(vdev, peer_type, mac_addr))
+		return QDF_STATUS_E_FAILURE;
+
+	hdd_info("Peer object "MAC_ADDRESS_STR" add success!",
+					MAC_ADDR_ARRAY(mac_addr));
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS hdd_remove_peer_object(struct wlan_objmgr_vdev *vdev,
+						uint8_t *mac_addr)
+{
+	struct wlan_objmgr_psoc *psoc;
+	struct wlan_objmgr_peer *peer;
+
+	if (!vdev) {
+		hdd_err("vdev NULL");
+		QDF_ASSERT(0);
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	psoc = wlan_vdev_get_psoc(vdev);
+	if (!psoc) {
+		hdd_err("Psoc NUll");
+		QDF_ASSERT(0);
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	peer = wlan_objmgr_find_peer(psoc, mac_addr);
+	if (peer) {
+		if (wlan_objmgr_peer_obj_delete(peer))
+			return QDF_STATUS_E_FAILURE;
+
+		hdd_info("Peer obj "MAC_ADDRESS_STR" deleted",
+				MAC_ADDR_ARRAY(mac_addr));
+		return QDF_STATUS_SUCCESS;
+	}
+
+	hdd_err("Peer obj "MAC_ADDRESS_STR" not found",
+				MAC_ADDR_ARRAY(mac_addr));
+
+	return QDF_STATUS_E_FAILURE;
+}

+ 160 - 0
core/hdd/src/wlan_hdd_object_manager.h

@@ -0,0 +1,160 @@
+/*
+ * Copyright (c) 2017 The Linux Foundation. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * This file was originally distributed by Qualcomm Atheros, Inc.
+ * under proprietary terms before Copyright ownership was assigned
+ * to the Linux Foundation.
+ */
+#if !defined(WLAN_HDD_OBJECT_MANAGER_H)
+#define WLAN_HDD_OBJECT_MANAGER_H
+/**
+ * DOC: HDD object manager API file to create/destroy psoc, pdev, vdev
+ * and peer objects by calling object manager APIs
+ *
+ * Common object model has 1 : N mapping between PSOC and PDEV but for MCL
+ * PSOC and PDEV has 1 : 1 mapping.
+ *
+ * MCL object model view is:
+ *
+ *                          --------
+ *                          | PSOC |
+ *                          --------
+ *                             |
+ *                             |
+ *                 --------------------------
+ *                 |          PDEV          |
+ *                 --------------------------
+ *                 |                        |
+ *                 |                        |
+ *                 |                        |
+ *             ----------             -------------
+ *             | vdev 0 |             |   vdev n  |
+ *             ----------             -------------
+ *             |        |             |           |
+ *        ----------   ----------    ----------  ----------
+ *        | peer 1 |   | peer n |    | peer 1 |  | peer n |
+ *        ----------   ----------    ----------  -----------
+ *
+ */
+#include "wlan_hdd_main.h"
+#include <wlan_objmgr_cmn.h>
+#include <wlan_objmgr_global_obj.h>
+#include <wlan_objmgr_psoc_obj.h>
+#include <wlan_objmgr_pdev_obj.h>
+#include <wlan_objmgr_vdev_obj.h>
+#include <wlan_objmgr_peer_obj.h>
+
+/**
+ * hdd_create_and_store_psoc() - Create psoc object and store in hdd context
+ * @hdd_ctx: Hdd context
+ * @psoc_id: Psoc Id
+ *
+ * This API creates Psoc object with given @psoc_id and store the psoc reference
+ * to hdd context
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS hdd_create_and_store_psoc(hdd_context_t *hdd_ctx, uint8_t psoc_id);
+
+/**
+ * hdd_release_and_destroy_psoc() - Deletes the psoc object
+ * @hdd_ctx: Hdd context
+ *
+ * This API deletes psoc object and release its reference from hdd context
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS hdd_release_and_destroy_psoc(hdd_context_t *hdd_ctx);
+
+/**
+ * hdd_create_and_store_pdev() - Create pdev object and store in hdd context
+ * @hdd_ctx: Hdd context
+ *
+ * This API creates the pdev object and store the pdev reference to hdd context
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS hdd_create_and_store_pdev(hdd_context_t *hdd_ctx);
+
+/**
+ * hdd_release_and_destroy_pdev() - Deletes the pdev object
+ * @hdd_ctx: Hdd context
+ *
+ * This API deletes pdev object and release its reference from hdd context
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS hdd_release_and_destroy_pdev(hdd_context_t *hdd_ctx);
+
+/**
+ * hdd_create_and_store_vdev() - Create vdev object and store in hdd adapter
+ * @pdev: pdev pointer
+ * @adapter: hdd adapter
+ *
+ * This API creates the vdev object and store the vdev reference to the
+ * given @adapter. Also, creates a self peer for the vdev. If the adapter
+ * session id and vdev id of the new vdev object doesnot match, destroys the
+ * created vdev object and returns failure
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS hdd_create_and_store_vdev(struct wlan_objmgr_pdev *pdev,
+					hdd_adapter_t *adapter);
+
+/**
+ * hdd_release_and_destroy_vdev() - Delete the vdev object
+ * @hdd_ctx: Hdd context
+ *
+ * This API deletes vdev object and release its reference from hdd adapter
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS hdd_release_and_destroy_vdev(hdd_adapter_t *adapter);
+
+/**
+ * hdd_add_peer_object() - Create and add the peer object to the vdev
+ * @vdev: vdev pointer
+ * @adapter_mode: adapter mode
+ * @mac_addr: Peer mac address
+ *
+ * This API creates and adds the peer object to the given @vdev. The peer type
+ * (STA, AP or IBSS) is assigned based on adapter mode. For example, if adapter
+ * mode is STA, peer is AP.
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS hdd_add_peer_object(struct wlan_objmgr_vdev *vdev,
+				enum tQDF_ADAPTER_MODE adapter_mode,
+				uint8_t *mac_addr);
+
+/**
+ * hdd_remove_peer_object() - Delete and remove the peer from vdev
+ * @vdev: vdev pointer
+ * @mac_addr: Peer Mac address
+ *
+ * This API finds the peer object from given @mac_addr and deletes the same.
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS hdd_remove_peer_object(struct wlan_objmgr_vdev *vdev,
+						uint8_t *mac_addr);
+#endif /* end #if !defined(WLAN_HDD_OBJECT_MANAGER_H) */