wlan_p2p_tgt_api.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. /*
  2. * Copyright (c) 2017-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: Contains p2p south bound interface definitions
  20. */
  21. #ifndef _WLAN_P2P_TGT_API_H_
  22. #define _WLAN_P2P_TGT_API_H_
  23. #include <qdf_types.h>
  24. #include <qdf_nbuf.h>
  25. struct scan_event;
  26. struct wlan_objmgr_psoc;
  27. struct wlan_objmgr_peer;
  28. struct p2p_noa_info;
  29. struct p2p_lo_event;
  30. struct mgmt_rx_event_params;
  31. enum mgmt_frame_type;
  32. #ifdef FEATURE_P2P_LISTEN_OFFLOAD
  33. /**
  34. * tgt_p2p_lo_event_cb() - Listen offload stop request
  35. * @psoc: soc object
  36. * @event_info: lo stop event buffer
  37. *
  38. * This function gets called from target interface.
  39. *
  40. * Return: QDF_STATUS_SUCCESS - in case of success
  41. */
  42. QDF_STATUS tgt_p2p_lo_event_cb(struct wlan_objmgr_psoc *psoc,
  43. struct p2p_lo_event *event_info);
  44. /**
  45. * tgt_p2p_register_lo_ev_handler() - register lo event
  46. * @psoc: soc object
  47. *
  48. * p2p tgt api to register listen offload event handler.
  49. *
  50. * Return: QDF_STATUS_SUCCESS - in case of success
  51. */
  52. QDF_STATUS tgt_p2p_register_lo_ev_handler(
  53. struct wlan_objmgr_psoc *psoc);
  54. /**
  55. * tgt_p2p_unregister_lo_ev_handler() - unregister lo event
  56. * @psoc: soc object
  57. *
  58. * p2p tgt api to unregister listen offload event handler.
  59. *
  60. * Return: QDF_STATUS_SUCCESS - in case of success
  61. */
  62. QDF_STATUS tgt_p2p_unregister_lo_ev_handler(
  63. struct wlan_objmgr_psoc *psoc);
  64. #else
  65. static inline QDF_STATUS tgt_p2p_register_lo_ev_handler(
  66. struct wlan_objmgr_psoc *psoc)
  67. {
  68. return QDF_STATUS_SUCCESS;
  69. }
  70. static inline QDF_STATUS tgt_p2p_unregister_lo_ev_handler(
  71. struct wlan_objmgr_psoc *psoc)
  72. {
  73. return QDF_STATUS_SUCCESS;
  74. }
  75. #endif
  76. /**
  77. * tgt_p2p_register_macaddr_rx_filter_evt_handler() - register add mac rx
  78. * filter status event
  79. * @psoc: soc object
  80. * @register: register or unregister
  81. *
  82. * p2p tgt api to register add mac rx filter status event
  83. *
  84. * Return: QDF_STATUS_SUCCESS - in case of success
  85. */
  86. QDF_STATUS tgt_p2p_register_macaddr_rx_filter_evt_handler(
  87. struct wlan_objmgr_psoc *psoc, bool register);
  88. /**
  89. * tgt_p2p_register_noa_ev_handler() - register noa event
  90. * @psoc: soc object
  91. *
  92. * p2p tgt api to register noa event handler.
  93. *
  94. * Return: QDF_STATUS_SUCCESS - in case of success
  95. */
  96. QDF_STATUS tgt_p2p_register_noa_ev_handler(
  97. struct wlan_objmgr_psoc *psoc);
  98. /**
  99. * tgt_p2p_unregister_noa_ev_handler() - unregister noa event
  100. * @psoc: soc object
  101. *
  102. * p2p tgt api to unregister noa event handler.
  103. *
  104. * Return: QDF_STATUS_SUCCESS - in case of success
  105. */
  106. QDF_STATUS tgt_p2p_unregister_noa_ev_handler(
  107. struct wlan_objmgr_psoc *psoc);
  108. /**
  109. * tgt_p2p_scan_event_cb() - Callback for scan event
  110. * @vdev: vdev object
  111. * @event: event information
  112. * @arg: registered arguments
  113. *
  114. * This function gets called from scan component when getting P2P
  115. * scan event.
  116. *
  117. * Return: None
  118. */
  119. void tgt_p2p_scan_event_cb(struct wlan_objmgr_vdev *vdev,
  120. struct scan_event *event, void *arg);
  121. /**
  122. * tgt_p2p_mgmt_download_comp_cb() - Callback for mgmt frame tx
  123. * complete
  124. * @context: tx context
  125. * @buf: buffer address
  126. * @free: need to free or not
  127. *
  128. * This function gets called from mgmt tx/rx component when mgmt
  129. * frame tx complete.
  130. *
  131. * Return: QDF_STATUS_SUCCESS - in case of success
  132. */
  133. QDF_STATUS tgt_p2p_mgmt_download_comp_cb(void *context,
  134. qdf_nbuf_t buf, bool free);
  135. /**
  136. * tgt_p2p_mgmt_ota_comp_cb() - Callback for mgmt frame tx ack
  137. * @context: tx context
  138. * @buf: buffer address
  139. * @status: tx status
  140. * @tx_compl_params: tx complete parameters
  141. *
  142. * This function gets called from mgmt tx/rx component when getting
  143. * mgmt frame tx ack.
  144. *
  145. * Return: QDF_STATUS_SUCCESS - in case of success
  146. */
  147. QDF_STATUS tgt_p2p_mgmt_ota_comp_cb(void *context, qdf_nbuf_t buf,
  148. uint32_t status, void *tx_compl_params);
  149. /**
  150. * tgt_p2p_mgmt_frame_rx_cb() - Callback for rx mgmt frame
  151. * @psoc: soc context
  152. * @peer: peer context
  153. * @buf: rx buffer
  154. * @mgmt_rx_params: mgmt rx parameters
  155. * @frm_type: frame type
  156. *
  157. * This function gets called from mgmt tx/rx component when rx mgmt
  158. * frame.
  159. *
  160. * Return: QDF_STATUS_SUCCESS - in case of success
  161. */
  162. QDF_STATUS tgt_p2p_mgmt_frame_rx_cb(struct wlan_objmgr_psoc *psoc,
  163. struct wlan_objmgr_peer *peer, qdf_nbuf_t buf,
  164. struct mgmt_rx_event_params *mgmt_rx_params,
  165. enum mgmt_frame_type frm_type);
  166. /**
  167. * tgt_p2p_noa_event_cb() - Callback for noa event
  168. * @psoc: soc object
  169. * @event_info: noa event information
  170. *
  171. * This function gets called from target interface.
  172. *
  173. * Return: QDF_STATUS_SUCCESS - in case of success
  174. */
  175. QDF_STATUS tgt_p2p_noa_event_cb(struct wlan_objmgr_psoc *psoc,
  176. struct p2p_noa_info *event_info);
  177. /**
  178. * tgt_p2p_add_mac_addr_status_event_cb() - Callback for set mac addr filter evt
  179. * @psoc: soc object
  180. * @event_info: event information type of p2p_set_mac_filter_evt
  181. *
  182. * This function gets called from target interface.
  183. *
  184. * Return: QDF_STATUS_SUCCESS - in case of success
  185. */
  186. QDF_STATUS
  187. tgt_p2p_add_mac_addr_status_event_cb(
  188. struct wlan_objmgr_psoc *psoc,
  189. struct p2p_set_mac_filter_evt *event_info);
  190. #endif /* _WLAN_P2P_TGT_API_H_ */