/* ** Id: */ /*! \file "cmd_buf.h" \brief In this file we define the structure for Command Packet. In this file we define the structure for Command Packet and the control unit of MGMT Memory Pool. */ /* ** Log: cmd_buf.h ** ** 01 21 2013 terry.wu ** [BORA00002207] [MT6630 Wi-Fi] TXM & MQM Implementation ** Update TX path based on new ucBssIndex modifications. ** ** 01 17 2013 cm.chang ** [BORA00002149] [MT6630 Wi-Fi] Initial software development ** Use ucBssIndex to replace eNetworkTypeIndex ** ** 09 17 2012 cm.chang ** [BORA00002149] [MT6630 Wi-Fi] Initial software development ** Duplicate source from MT6620 v2.3 driver branch ** (Davinci label: MT6620_WIFI_Driver_V2_3_120913_1942_As_MT6630_Base) * * 10 04 2010 cp.wu * [WCXRP00000077] [MT6620 Wi-Fi][Driver][FW] Eliminate use of ENUM_NETWORK_TYPE_T and replaced by * ENUM_NETWORK_TYPE_INDEX_T only * remove ENUM_NETWORK_TYPE_T definitions * * 09 03 2010 kevin.huang * NULL * Refine #include sequence and solve recursive/nested #include issue * * 07 13 2010 cp.wu * * 1) MMPDUs are now sent to MT6620 by CMD queue for keeping strict order of 1X/MMPDU/CMD packets * 2) integrate with qmGetFrameAction() for deciding which MMPDU/1X could pass checking for sending * 2) enhance CMD_INFO_T descriptor number from 10 to 32 to avoid descriptor underflow * under concurrent network operation * * 07 08 2010 cp.wu * * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository. * * 07 01 2010 cm.chang * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver * Enable change log */ #ifndef _CMD_BUF_H #define _CMD_BUF_H /******************************************************************************* * C O M P I L E R F L A G S ******************************************************************************** */ /******************************************************************************* * E X T E R N A L R E F E R E N C E S ******************************************************************************** */ /******************************************************************************* * C O N S T A N T S ******************************************************************************** */ /******************************************************************************* * D A T A T Y P E S ******************************************************************************** */ typedef enum _COMMAND_TYPE { COMMAND_TYPE_GENERAL_IOCTL, COMMAND_TYPE_NETWORK_IOCTL, COMMAND_TYPE_SECURITY_FRAME, COMMAND_TYPE_MANAGEMENT_FRAME, COMMAND_TYPE_NUM } COMMAND_TYPE, *P_COMMAND_TYPE; typedef VOID(*PFN_CMD_DONE_HANDLER) (IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf); typedef VOID(*PFN_CMD_TIMEOUT_HANDLER) (IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo); struct _CMD_INFO_T { QUE_ENTRY_T rQueEntry; COMMAND_TYPE eCmdType; UINT_16 u2InfoBufLen; /* This is actual CMD buffer length */ PUINT_8 pucInfoBuffer; /* May pointer to structure in prAdapter */ P_MSDU_INFO_T prMsduInfo; /* only valid when it's a security/MGMT frame */ P_NATIVE_PACKET prPacket; /* only valid when it's a security frame */ UINT_8 ucBssIndex; UINT_8 ucStaRecIndex; /* only valid when it's a security frame */ PFN_CMD_DONE_HANDLER pfCmdDoneHandler; PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler; BOOLEAN fgIsOid; /* Used to check if we need indicate */ UINT_8 ucCID; BOOLEAN fgSetQuery; BOOLEAN fgNeedResp; BOOLEAN fgDriverDomainMCR; /* Access Driver Domain MCR, for CMD_ID_ACCESS_REG only */ UINT_8 ucCmdSeqNum; UINT_32 u4SetInfoLen; /* Indicate how many byte we read for Set OID */ /* information indicating by OID/ioctl */ PVOID pvInformationBuffer; UINT_32 u4InformationBufferLength; /* private data */ UINT_32 u4PrivateData; }; /******************************************************************************* * P U B L I C D A T A ******************************************************************************** */ /******************************************************************************* * P R I V A T E D A T A ******************************************************************************** */ /******************************************************************************* * M A C R O S ******************************************************************************** */ /******************************************************************************* * F U N C T I O N D E C L A R A T I O N S ******************************************************************************** */ VOID cmdBufInitialize(IN P_ADAPTER_T prAdapter); P_CMD_INFO_T cmdBufAllocateCmdInfo(IN P_ADAPTER_T prAdapter, IN UINT_32 u4Length); VOID cmdBufFreeCmdInfo(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo); /*----------------------------------------------------------------------------*/ /* Routines for CMDs */ /*----------------------------------------------------------------------------*/ WLAN_STATUS wlanSendSetQueryCmd(IN P_ADAPTER_T prAdapter, UINT_8 ucCID, BOOLEAN fgSetQuery, BOOLEAN fgNeedResp, BOOLEAN fgIsOid, PFN_CMD_DONE_HANDLER pfCmdDoneHandler, PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler, UINT_32 u4SetQueryInfoLen, PUINT_8 pucInfoBuffer, OUT PVOID pvSetQueryBuffer, IN UINT_32 u4SetQueryBufferLen); /******************************************************************************* * F U N C T I O N S ******************************************************************************** */ #endif /* _CMD_BUF_H */