blob: db4881202350b0ef8dfec581fbbf4e8444aacc94 [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
2 * Copyright (c) 2011, 2014 The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28/**
29 * @file ol_tx_send.h
30 * @brief API definitions for the tx sendriptor module within the data SW.
31 */
32#ifndef _OL_TX_SEND__H_
33#define _OL_TX_SEND__H_
34
35#include <cdf_nbuf.h> /* cdf_nbuf_t */
36#include <ol_txrx_types.h> /* ol_tx_send_t */
37
38/**
39 * @flush the ol tx when surprise remove.
40 *
41 */
42void ol_tx_discard_target_frms(ol_txrx_pdev_handle pdev);
43
44/**
45 * @brief Send a tx frame to the target.
46 * @details
47 *
48 * @param pdev - the phy dev
49 * @param vdev - the virtual device sending the data
50 * (for specifying the transmitter address for multicast / broadcast data)
51 * @param netbuf - the tx frame
52 */
53void
54ol_tx_send(struct ol_txrx_pdev_t *pdev,
55 struct ol_tx_desc_t *tx_desc, cdf_nbuf_t msdu);
56
57/**
58 * @brief Send a tx batch download to the target.
59 * @details
60 * This function is different from above in that
61 * it accepts a list of msdu's to be downloaded as a batch
62 *
63 * @param pdev - the phy dev
64 * @param msdu_list - the Head pointer to the Tx Batch
65 * @param num_msdus - Total msdus chained in msdu_list
66 */
67
68int
69ol_tx_send_batch(struct ol_txrx_pdev_t *pdev,
70 cdf_nbuf_t msdu_list, int num_msdus);
71
72/**
73 * @brief Send a tx frame with a non-std header or payload type to the target.
74 * @details
75 *
76 * @param pdev - the phy dev
77 * @param vdev - the virtual device sending the data
78 * (for specifying the transmitter address for multicast / broadcast data)
79 * @param netbuf - the tx frame
80 * @param pkt_type - what kind of non-std frame is being sent
81 */
82void
83ol_tx_send_nonstd(struct ol_txrx_pdev_t *pdev,
84 struct ol_tx_desc_t *tx_desc,
85 cdf_nbuf_t msdu, enum htt_pkt_type pkt_type);
86#endif /* _OL_TX_SEND__H_ */