wlan_pdev_mlme.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
  3. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for any
  6. * purpose with or without fee is hereby granted, provided that the above
  7. * copyright notice and this permission notice appear in all copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  10. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  11. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  12. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  13. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  14. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  15. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  16. */
  17. /**
  18. * DOC: Define PDEV MLME structure and APIs
  19. */
  20. #ifndef _WLAN_PDEV_MLME_H_
  21. #define _WLAN_PDEV_MLME_H_
  22. #include <qdf_timer.h>
  23. #include <include/wlan_vdev_mlme.h>
  24. #include <wlan_ext_mlme_obj_types.h>
  25. /*
  26. * struct pdev_restart_attr - Pdev restart attributes
  27. * @vdev: vdev on which the pdev restart cmd was enqueued
  28. * @restart_bmap: Bitmap for vdev requesting multivdev restart
  29. *
  30. * NB: Not using kernel-doc comment since the kernel-doc script
  31. * doesn't handle the qdf_bitmap() macro.
  32. */
  33. struct pdev_restart_attr {
  34. struct wlan_objmgr_vdev *vdev;
  35. qdf_bitmap(restart_bmap, WLAN_UMAC_PSOC_MAX_VDEVS);
  36. };
  37. /*
  38. * struct pdev_mlme_obj - PDEV MLME component object
  39. * @pdev: PDEV object
  40. * @ext_pdev_ptr: PDEV MLME legacy pointer
  41. * @mlme_register_ops: Call back to register MLME legacy APIs
  42. * @vdev_restart_lock: Lock for VDEVs restart
  43. * @restart_req_timer: Timer handle for VDEVs restart
  44. * @restart_pend_vdev_bmap: Bitmap for VDEV RESTART command pending
  45. * @restart_send_vdev_bmap: Bitmap for VDEV RESTART command sending
  46. * @start_send_vdev_arr: Bitmap for VDEV START command sending
  47. * @pdev_restart:
  48. * @multivdev_restart_wait_cnt:
  49. *
  50. * NB: Not using kernel-doc comment since the kernel-doc script
  51. * doesn't handle the qdf_bitmap() macro.
  52. */
  53. struct pdev_mlme_obj {
  54. struct wlan_objmgr_pdev *pdev;
  55. mlme_pdev_ext_t *ext_pdev_ptr;
  56. QDF_STATUS (*mlme_register_ops)(struct vdev_mlme_obj *vdev_mlme);
  57. qdf_spinlock_t vdev_restart_lock;
  58. qdf_timer_t restart_req_timer;
  59. qdf_bitmap(restart_pend_vdev_bmap, WLAN_UMAC_PSOC_MAX_VDEVS);
  60. qdf_bitmap(restart_send_vdev_bmap, WLAN_UMAC_PSOC_MAX_VDEVS);
  61. qdf_bitmap(start_send_vdev_arr, WLAN_UMAC_PSOC_MAX_VDEVS);
  62. struct pdev_restart_attr pdev_restart;
  63. qdf_atomic_t multivdev_restart_wait_cnt;
  64. };
  65. #endif