blob: 9505ceac4fc3d9121d5cf644b9da65d5847974c5 [file] [log] [blame]
/*
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
*
* 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.
*/
#ifndef _WLAN_MGMT_TXRX_TGT_API_H_
#define _WLAN_MGMT_TXRX_TGT_API_H_
/**
* DOC: wlan_mgmt_txrx_tgt_api.h
*
* management tx/rx layer public API and structures for
* umac southbound interface.
*
*/
#include "wlan_objmgr_cmn.h"
#include "wlan_mgmt_txrx_utils_api.h"
#include "qdf_nbuf.h"
/**
* tgt_mgmt_txrx_rx_frame_handler() - handles rx mgmt. frames
* @psoc: psoc context
* @buf: buffer
* @mgmt_rx_params: rx event params
*
* This function handles mgmt. rx frames and is registered to southbound
* interface through rx ops.
*
* Return: QDF_STATUS_SUCCESS - in case of success
*/
QDF_STATUS tgt_mgmt_txrx_rx_frame_handler(
struct wlan_objmgr_psoc *psoc,
qdf_nbuf_t buf,
struct mgmt_rx_event_params *mgmt_rx_params);
/**
* tgt_mgmt_txrx_tx_completion_handler() - handles mgmt. tx completions
* @pdev: pdev context
* @desc_id: mgmt desc. id
* @status: status of download of tx packet
* @tx_compl_params: tx completion params
*
* This function handles tx completions of mgmt. frames and is registered to
* LMAC_if layer through lmac_if cbs.The cb needs to free the nbuf. In case no
* callback is registered, this function will free the nbuf.
*
* Return: QDF_STATUS_SUCCESS - in case of success
*/
QDF_STATUS tgt_mgmt_txrx_tx_completion_handler(
struct wlan_objmgr_pdev *pdev,
uint32_t desc_id, uint32_t status,
void *tx_compl_params);
/**
* tgt_mgmt_txrx_get_nbuf_from_desc_id() - extracts nbuf from mgmt desc
* @pdev: pdev context
* @desc_id: desc_id
*
* This function extracts nbuf from mgmt desc extracted from desc id.
*
* Return: nbuf - in case of success
* NULL - in case of failure
*/
qdf_nbuf_t tgt_mgmt_txrx_get_nbuf_from_desc_id(
struct wlan_objmgr_pdev *pdev,
uint32_t desc_id);
/**
* tgt_mgmt_txrx_get_peer_from_desc_id() - extracts peer from mgmt desc
* @pdev: pdev context
* @desc_id: desc_id
*
* This function extracts peer from mgmt desc extracted from desc id.
*
* Return: peer - in case of success
* NULL - in case of failure
*/
struct wlan_objmgr_peer *
tgt_mgmt_txrx_get_peer_from_desc_id(
struct wlan_objmgr_pdev *pdev,
uint32_t desc_id);
/**
* tgt_mgmt_txrx_get_vdev_id_from_desc_id() - extracts vdev id from mgmt desc
* @pdev: pdev context
* @desc_id: desc_id
*
* This function extracts vdev id from mgmt desc extracted from desc id.
*
* Return: vdev_id - in case of success
* WLAN_UMAC_VDEV_ID_MAX - in case of failure
*/
uint8_t tgt_mgmt_txrx_get_vdev_id_from_desc_id(
struct wlan_objmgr_pdev *pdev,
uint32_t desc_id);
/**
* tgt_mgmt_txrx_get_free_desc_pool_count() - get free mgmt desc count
* @pdev: pdev context
*
* This function returns the count of free mgmt descriptors.
*
* Return: free descpriptor count
*/
uint32_t tgt_mgmt_txrx_get_free_desc_pool_count(
struct wlan_objmgr_pdev *pdev);
#endif