ol_tx_send.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  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. * This file was originally distributed by Qualcomm Atheros, Inc.
  23. * under proprietary terms before Copyright ownership was assigned
  24. * to the Linux Foundation.
  25. */
  26. /**
  27. * @file ol_tx_send.h
  28. * @brief API definitions for the tx sendriptor module within the data SW.
  29. */
  30. #ifndef _OL_TX_SEND__H_
  31. #define _OL_TX_SEND__H_
  32. #include <cdf_nbuf.h> /* cdf_nbuf_t */
  33. #include <ol_txrx_types.h> /* ol_tx_send_t */
  34. /**
  35. * @flush the ol tx when surprise remove.
  36. *
  37. */
  38. void ol_tx_discard_target_frms(ol_txrx_pdev_handle pdev);
  39. /**
  40. * @brief Send a tx frame to the target.
  41. * @details
  42. *
  43. * @param pdev - the phy dev
  44. * @param vdev - the virtual device sending the data
  45. * (for specifying the transmitter address for multicast / broadcast data)
  46. * @param netbuf - the tx frame
  47. */
  48. void
  49. ol_tx_send(struct ol_txrx_pdev_t *pdev,
  50. struct ol_tx_desc_t *tx_desc, cdf_nbuf_t msdu);
  51. /**
  52. * @brief Send a tx batch download to the target.
  53. * @details
  54. * This function is different from above in that
  55. * it accepts a list of msdu's to be downloaded as a batch
  56. *
  57. * @param pdev - the phy dev
  58. * @param msdu_list - the Head pointer to the Tx Batch
  59. * @param num_msdus - Total msdus chained in msdu_list
  60. */
  61. int
  62. ol_tx_send_batch(struct ol_txrx_pdev_t *pdev,
  63. cdf_nbuf_t msdu_list, int num_msdus);
  64. /**
  65. * @brief Send a tx frame with a non-std header or payload type to the target.
  66. * @details
  67. *
  68. * @param pdev - the phy dev
  69. * @param vdev - the virtual device sending the data
  70. * (for specifying the transmitter address for multicast / broadcast data)
  71. * @param netbuf - the tx frame
  72. * @param pkt_type - what kind of non-std frame is being sent
  73. */
  74. void
  75. ol_tx_send_nonstd(struct ol_txrx_pdev_t *pdev,
  76. struct ol_tx_desc_t *tx_desc,
  77. cdf_nbuf_t msdu, enum htt_pkt_type pkt_type);
  78. #endif /* _OL_TX_SEND__H_ */