00001
00013 #ifndef _TXU_CNTRL_H_
00014 #define _TXU_CNTRL_H_
00015
00016 #include "co_int.h"
00017 #include "co_bool.h"
00018 #include "rwnx_config.h"
00019
00026 struct txdesc;
00027
00028
00029
00030
00031
00032
00034
00036 #define TX_STATUS_DONE CO_BIT(0)
00038 #define TX_STATUS_RETRY_REQUIRED CO_BIT(1)
00040 #define TX_STATUS_SW_RETRY_REQUIRED CO_BIT(2)
00042 #define TX_STATUS_ACKNOWLEDGED CO_BIT(3)
00043
00045
00047 #define TXU_CNTRL_RETRY CO_BIT(0)
00049 #define TXU_CNTRL_UNDER_BA CO_BIT(1)
00051 #define TXU_CNTRL_MORE_DATA CO_BIT(2)
00052
00057 #define TXU_CNTRL_MGMT CO_BIT(3)
00059 #define TXU_CNTRL_MGMT_NO_CCK CO_BIT(4)
00061 #define TXU_CNTRL_MGMT_PM_MON CO_BIT(5)
00063 #define TXU_CNTRL_AMSDU CO_BIT(6)
00065 #define TXU_CNTRL_MGMT_ROBUST CO_BIT(7)
00067 #define TXU_CNTRL_USE_4ADDR CO_BIT(8)
00069 #define TXU_CNTRL_EOSP CO_BIT(9)
00071 #define TXU_CNTRL_MESH_FWD CO_BIT(10)
00073 #define TXU_CNTRL_TDLS CO_BIT(11)
00075 #define TXU_CNTRL_POSTPONE_PS CO_BIT(12)
00077 #define TXU_CNTRL_RC_TRIAL CO_BIT(13)
00079 #define TXU_CNTRL_UASPD_TRIGGER CO_BIT(14)
00081
00082
00083
00084
00085
00086
00099 bool txu_cntrl_push(struct txdesc *txdesc, uint8_t access_category);
00100
00111 void txu_cntrl_frame_build(struct txdesc *txdesc, uint32_t buf);
00112
00123 void txu_cntrl_tkip_mic_append(struct txdesc *txdesc, uint8_t ac);
00124
00134 void txu_cntrl_cfm(struct txdesc *txdesc);
00135
00148 void txu_cntrl_protect_mgmt_frame(struct txdesc *txdesc, struct mac_hdr *mac_hdr,
00149 uint16_t hdr_len);
00150
00151 #if NX_FULLY_HOSTED
00152
00168 uint32_t txu_cntrl_mgmt_mic_pbd_append(struct txdesc *txdesc);
00169 #endif
00171
00172 #endif // _TXU_CNTRL_H_