00001 00013 #ifndef _APM_H_ 00014 #define _APM_H_ 00015 00022 #include "mac.h" 00023 #include "co_list.h" 00024 #include "rwnx_config.h" 00025 #include "tx_swdesc.h" 00026 #include "sta_mgmt.h" 00027 00028 #if NX_BEACONING 00029 00031 struct apm 00032 { 00034 struct apm_start_req const *param; 00036 struct co_list bss_config; 00038 uint8_t aging_sta_idx; 00039 }; 00040 00041 00043 #define AGING_DURATION 25 * TU_DURATION * TU_DURATION 00045 #define MAC_AGING_STA 10 00047 #define STAID_NOTRAFFIC_THRESHOLD_NULL 3 00049 #define QOS_CAPA_VALUE 0x10 00050 00051 // Forward declaration 00052 struct vif_info_tag; 00053 00054 /* 00055 * FUNCTION PROTOTYPES 00056 **************************************************************************************** 00057 */ 00058 00064 void apm_init(void); 00065 00073 void apm_start_cfm(uint8_t status); 00074 00075 00081 void apm_set_bss_param(void); 00082 00089 void apm_bss_config_send(void); 00090 00096 void apm_bcn_set(void); 00097 00105 void apm_stop(struct vif_info_tag *vif); 00106 00119 bool apm_tx_int_ps_check(struct txdesc *txdesc); 00120 00132 void apm_tx_int_ps_postpone(struct txdesc *txdesc, struct sta_info_tag *sta); 00133 00145 void apm_tx_int_ps_sent(struct txdesc *txdesc, struct sta_info_tag *sta); 00146 00171 struct txdesc *apm_tx_int_ps_get_postpone(struct vif_info_tag *vif, 00172 struct sta_info_tag *sta, 00173 int *stop); 00174 00187 void apm_tx_int_ps_clear(struct vif_info_tag *vif, uint8_t sta_idx); 00189 extern struct apm apm_env; 00190 00191 #endif 00192 00194 00195 #endif // _APM_H_
1.6.1