00001 00013 #ifndef _TXL_CFM_H_ 00014 #define _TXL_CFM_H_ 00015 00025 /* 00026 * INCLUDE FILES 00027 **************************************************************************************** 00028 */ 00029 #include "co_int.h" 00030 #include "co_list.h" 00031 #include "tx_swdesc.h" 00032 00033 /* 00034 * TYPE and STRUCT DEFINITIONS 00035 **************************************************************************************** 00036 */ 00038 extern const uint32_t txl_cfm_evt_bit[NX_TXQ_CNT]; 00039 00041 struct txl_cfm_env_tag 00042 { 00044 struct co_list cfmlist[NX_TXQ_CNT]; 00045 }; 00046 00047 /* 00048 * GLOBAL VARIABLE DECLARATION 00049 **************************************************************************************** 00050 */ 00052 extern struct txl_cfm_env_tag txl_cfm_env; 00053 00054 00055 /* 00056 * FUNCTION DECLARATIONS 00057 **************************************************************************************** 00058 */ 00068 __INLINE struct tx_cfm_tag *txl_cfm_tag_get(struct txdesc *txdesc) 00069 { 00070 #if NX_FULLY_HOSTED 00071 struct tx_cfm_tag *cfm = &txdesc->host.cfm; 00072 #else 00073 struct tx_cfm_tag *cfm = &txdesc->lmac.hw_desc->cfm; 00074 #endif 00075 00076 return cfm; 00077 } 00078 00096 void txl_cfm_init(void); 00097 00108 void txl_cfm_push(struct txdesc *txdesc, uint32_t status, uint8_t access_category); 00109 00136 void txl_cfm_evt(int access_category); 00137 00138 #if NX_AMPDU_TX 00139 00150 void txl_ba_push(struct rxdesc *rxdesc); 00151 #endif 00152 00163 void txl_cfm_flush_desc(uint8_t access_category, struct txdesc *txdesc, uint32_t status); 00164 00175 void txl_cfm_flush(uint8_t access_category, struct co_list *list, uint32_t status); 00176 00178 00179 #endif // _TX_CFM_H_
1.6.1