wlan_p2p_tgt_api.h 5.6 KB

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