00001 00012 #ifndef _MM_BCN_H_ 00013 #define _MM_BCN_H_ 00014 00024 /* 00025 * INCLUDE FILES 00026 **************************************************************************************** 00027 */ 00028 // standard includes 00029 #include "co_int.h" 00030 #include "co_bool.h" 00031 00032 #include "co_utils.h" 00033 #include "ke_timer.h" 00034 #include "mm_task.h" 00035 #include "hal_desc.h" 00036 #include "hal_machw.h" 00037 #include "hal_dma.h" 00038 00039 #if (NX_P2P_GO) 00040 #include "p2p.h" 00041 #endif //(NX_P2P_GO) 00042 00043 00044 #if NX_BCN_AUTONOMOUS_TX 00045 /* 00046 * DEFINES 00047 **************************************************************************************** 00048 */ 00049 // Forward declaration 00050 struct vif_info_tag; 00051 00053 struct mm_bcn_env_tag 00054 { 00056 struct mm_bcn_change_req const *param; 00058 int tx_cfm; 00061 bool tx_pending; 00063 bool update_ongoing; 00066 bool update_pending; 00068 struct hal_dma_desc_tag dma; 00070 struct co_list tim_list; 00071 #if (NX_P2P_GO) 00073 uint8_t p2p_noa_req[NX_VIRT_DEV_MAX]; 00074 #endif //(NX_P2P_GO) 00075 }; 00076 00077 00078 /* 00079 * GLOBAL VARIABLES 00080 **************************************************************************************** 00081 */ 00082 extern struct mm_bcn_env_tag mm_bcn_env; 00083 00084 /* 00085 * FUNCTION PROTOTYPES 00086 **************************************************************************************** 00087 */ 00088 00094 void mm_bcn_init(void); 00095 00096 00097 00105 void mm_bcn_init_vif(struct vif_info_tag *vif); 00106 00113 void mm_bcn_change(struct mm_bcn_change_req const *param); 00114 00121 void mm_tim_update(struct mm_tim_update_req const *param); 00122 00128 void mm_bcn_transmit(void); 00129 00136 __INLINE bool mm_bcn_transmitting(void) 00137 { 00138 return (mm_bcn_env.tx_cfm > 0); 00139 } 00140 00141 #if (NX_P2P_GO) 00142 00150 void mm_bcn_update_p2p_noa(uint8_t vif_index, uint8_t operation); 00151 #endif //(NX_P2P_GO) 00152 00153 #if (NX_UMAC_PRESENT && RW_MESH_EN) 00154 00164 struct txl_buffer_tag *mm_bcn_get_buffer(uint8_t vif_index); 00165 #endif //(NX_UMAC_PRESENT && RW_MESH_EN) 00166 00167 #endif 00168 00170 00171 #endif // _MM_H_
1.6.1