--- /dev/null
+#ifndef __HAL_COM_TXBF_H__\r
+#define __HAL_COM_TXBF_H__\r
+\r
+/*\r
+typedef BOOLEAN\r
+(*TXBF_GET)(\r
+ IN PVOID pAdapter,\r
+ IN u1Byte getType,\r
+ OUT PVOID pOutBuf\r
+ );\r
+\r
+typedef BOOLEAN\r
+(*TXBF_SET)(\r
+ IN PVOID pAdapter,\r
+ IN u1Byte setType,\r
+ OUT PVOID pInBuf\r
+ );\r
+*/\r
+\r
+typedef enum _TXBF_SET_TYPE{\r
+ TXBF_SET_SOUNDING_ENTER,\r
+ TXBF_SET_SOUNDING_LEAVE,\r
+ TXBF_SET_SOUNDING_RATE,\r
+ TXBF_SET_SOUNDING_STATUS,\r
+ TXBF_SET_SOUNDING_FW_NDPA,\r
+ TXBF_SET_SOUNDING_CLK,\r
+ TXBF_SET_TX_PATH_RESET,\r
+ TXBF_SET_GET_TX_RATE\r
+}TXBF_SET_TYPE,*PTXBF_SET_TYPE;\r
+\r
+\r
+typedef enum _TXBF_GET_TYPE{\r
+ TXBF_GET_EXPLICIT_BEAMFORMEE,\r
+ TXBF_GET_EXPLICIT_BEAMFORMER,\r
+ TXBF_GET_MU_MIMO_STA,\r
+ TXBF_GET_MU_MIMO_AP\r
+}TXBF_GET_TYPE,*PTXBF_GET_TYPE;\r
+\r
+\r
+\r
+//2 HAL TXBF related\r
+typedef struct _HAL_TXBF_INFO {\r
+ u1Byte TXBFIdx;\r
+ u1Byte NdpaIdx;\r
+ u1Byte BW;\r
+ u1Byte Rate;\r
+\r
+ RT_TIMER Txbf_FwNdpaTimer;\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN) \r
+ RT_WORK_ITEM Txbf_EnterWorkItem; \r
+ RT_WORK_ITEM Txbf_LeaveWorkItem;\r
+ RT_WORK_ITEM Txbf_FwNdpaWorkItem;\r
+ RT_WORK_ITEM Txbf_ClkWorkItem;\r
+ RT_WORK_ITEM Txbf_StatusWorkItem;\r
+ RT_WORK_ITEM Txbf_RateWorkItem;\r
+ RT_WORK_ITEM Txbf_ResetTxPathWorkItem;\r
+ RT_WORK_ITEM Txbf_GetTxRateWorkItem;\r
+#endif\r
+\r
+} HAL_TXBF_INFO, *PHAL_TXBF_INFO;\r
+\r
+#if (BEAMFORMING_SUPPORT == 1)\r
+\r
+VOID\r
+halComTxbf_beamformInit(\r
+ IN PVOID pDM_VOID\r
+ );\r
+\r
+VOID\r
+halComTxbf_ConfigGtab(\r
+ IN PVOID pDM_VOID\r
+ );\r
+\r
+VOID \r
+halComTxbf_EnterWorkItemCallback(\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+ IN PADAPTER Adapter\r
+#else\r
+ IN PVOID pDM_VOID\r
+#endif\r
+ );\r
+\r
+VOID \r
+halComTxbf_LeaveWorkItemCallback(\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+ IN PADAPTER Adapter\r
+#else\r
+ IN PVOID pDM_VOID\r
+#endif\r
+ );\r
+\r
+VOID \r
+halComTxbf_FwNdpaWorkItemCallback(\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+ IN PADAPTER Adapter\r
+#else\r
+ IN PVOID pDM_VOID\r
+#endif\r
+ );\r
+\r
+VOID\r
+halComTxbf_ClkWorkItemCallback(\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+ IN PADAPTER Adapter\r
+#else\r
+ IN PVOID pDM_VOID\r
+#endif\r
+ );\r
+\r
+VOID\r
+halComTxbf_ResetTxPathWorkItemCallback(\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+ IN PADAPTER Adapter\r
+#else\r
+ IN PVOID pDM_VOID\r
+#endif\r
+ );\r
+\r
+VOID\r
+halComTxbf_GetTxRateWorkItemCallback(\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+ IN PADAPTER Adapter\r
+#else\r
+ IN PVOID pDM_VOID\r
+#endif\r
+ );\r
+\r
+VOID\r
+halComTxbf_RateWorkItemCallback( \r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+ IN PADAPTER Adapter\r
+#else\r
+ IN PVOID pDM_VOID\r
+#endif\r
+ );\r
+\r
+VOID \r
+halComTxbf_FwNdpaTimerCallback(\r
+ IN PRT_TIMER pTimer\r
+ );\r
+\r
+VOID\r
+halComTxbf_StatusWorkItemCallback(\r
+#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
+ IN PADAPTER Adapter\r
+#else\r
+ IN PVOID pDM_VOID\r
+#endif\r
+ );\r
+\r
+BOOLEAN\r
+HalComTxbf_Set(\r
+ IN PVOID pDM_VOID,\r
+ IN u1Byte setType,\r
+ IN PVOID pInBuf\r
+ );\r
+\r
+BOOLEAN\r
+HalComTxbf_Get(\r
+ IN PADAPTER Adapter,\r
+ IN u1Byte getType,\r
+ OUT PVOID pOutBuf\r
+ );\r
+\r
+#else\r
+#define halComTxbf_beamformInit(pDM_VOID) NULL\r
+#define halComTxbf_ConfigGtab(pDM_VOID) NULL\r
+#define halComTxbf_EnterWorkItemCallback(_Adapter) NULL\r
+#define halComTxbf_LeaveWorkItemCallback(_Adapter) NULL\r
+#define halComTxbf_FwNdpaWorkItemCallback(_Adapter) NULL\r
+#define halComTxbf_ClkWorkItemCallback(_Adapter) NULL\r
+#define halComTxbf_RateWorkItemCallback(_Adapter) NULL\r
+#define halComTxbf_FwNdpaTimerCallback(_Adapter) NULL\r
+#define halComTxbf_StatusWorkItemCallback(_Adapter) NULL\r
+#define HalComTxbf_Get(_Adapter, _getType, _pOutBuf)\r
+\r
+#endif\r
+ \r
+#endif // #ifndef __HAL_COM_TXBF_H__ \r
+\r