cmd_buf.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. /*
  2. ** Id:
  3. */
  4. /*! \file "cmd_buf.h"
  5. \brief In this file we define the structure for Command Packet.
  6. In this file we define the structure for Command Packet and the control unit
  7. of MGMT Memory Pool.
  8. */
  9. /*
  10. ** Log: cmd_buf.h
  11. **
  12. ** 01 21 2013 terry.wu
  13. ** [BORA00002207] [MT6630 Wi-Fi] TXM & MQM Implementation
  14. ** Update TX path based on new ucBssIndex modifications.
  15. **
  16. ** 01 17 2013 cm.chang
  17. ** [BORA00002149] [MT6630 Wi-Fi] Initial software development
  18. ** Use ucBssIndex to replace eNetworkTypeIndex
  19. **
  20. ** 09 17 2012 cm.chang
  21. ** [BORA00002149] [MT6630 Wi-Fi] Initial software development
  22. ** Duplicate source from MT6620 v2.3 driver branch
  23. ** (Davinci label: MT6620_WIFI_Driver_V2_3_120913_1942_As_MT6630_Base)
  24. *
  25. * 10 04 2010 cp.wu
  26. * [WCXRP00000077] [MT6620 Wi-Fi][Driver][FW] Eliminate use of ENUM_NETWORK_TYPE_T and replaced by
  27. * ENUM_NETWORK_TYPE_INDEX_T only
  28. * remove ENUM_NETWORK_TYPE_T definitions
  29. *
  30. * 09 03 2010 kevin.huang
  31. * NULL
  32. * Refine #include sequence and solve recursive/nested #include issue
  33. *
  34. * 07 13 2010 cp.wu
  35. *
  36. * 1) MMPDUs are now sent to MT6620 by CMD queue for keeping strict order of 1X/MMPDU/CMD packets
  37. * 2) integrate with qmGetFrameAction() for deciding which MMPDU/1X could pass checking for sending
  38. * 2) enhance CMD_INFO_T descriptor number from 10 to 32 to avoid descriptor underflow
  39. * under concurrent network operation
  40. *
  41. * 07 08 2010 cp.wu
  42. *
  43. * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
  44. *
  45. * 07 01 2010 cm.chang
  46. * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
  47. * Enable change log
  48. */
  49. #ifndef _CMD_BUF_H
  50. #define _CMD_BUF_H
  51. /*******************************************************************************
  52. * C O M P I L E R F L A G S
  53. ********************************************************************************
  54. */
  55. /*******************************************************************************
  56. * E X T E R N A L R E F E R E N C E S
  57. ********************************************************************************
  58. */
  59. /*******************************************************************************
  60. * C O N S T A N T S
  61. ********************************************************************************
  62. */
  63. /*******************************************************************************
  64. * D A T A T Y P E S
  65. ********************************************************************************
  66. */
  67. typedef enum _COMMAND_TYPE {
  68. COMMAND_TYPE_GENERAL_IOCTL,
  69. COMMAND_TYPE_NETWORK_IOCTL,
  70. COMMAND_TYPE_SECURITY_FRAME,
  71. COMMAND_TYPE_MANAGEMENT_FRAME,
  72. COMMAND_TYPE_NUM
  73. } COMMAND_TYPE, *P_COMMAND_TYPE;
  74. typedef VOID(*PFN_CMD_DONE_HANDLER) (IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  75. typedef VOID(*PFN_CMD_TIMEOUT_HANDLER) (IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  76. struct _CMD_INFO_T {
  77. QUE_ENTRY_T rQueEntry;
  78. COMMAND_TYPE eCmdType;
  79. UINT_16 u2InfoBufLen; /* This is actual CMD buffer length */
  80. PUINT_8 pucInfoBuffer; /* May pointer to structure in prAdapter */
  81. P_MSDU_INFO_T prMsduInfo; /* only valid when it's a security/MGMT frame */
  82. P_NATIVE_PACKET prPacket; /* only valid when it's a security frame */
  83. UINT_8 ucBssIndex;
  84. UINT_8 ucStaRecIndex; /* only valid when it's a security frame */
  85. PFN_CMD_DONE_HANDLER pfCmdDoneHandler;
  86. PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler;
  87. BOOLEAN fgIsOid; /* Used to check if we need indicate */
  88. UINT_8 ucCID;
  89. BOOLEAN fgSetQuery;
  90. BOOLEAN fgNeedResp;
  91. BOOLEAN fgDriverDomainMCR; /* Access Driver Domain MCR, for CMD_ID_ACCESS_REG only */
  92. UINT_8 ucCmdSeqNum;
  93. UINT_32 u4SetInfoLen; /* Indicate how many byte we read for Set OID */
  94. /* information indicating by OID/ioctl */
  95. PVOID pvInformationBuffer;
  96. UINT_32 u4InformationBufferLength;
  97. /* private data */
  98. UINT_32 u4PrivateData;
  99. };
  100. /*******************************************************************************
  101. * P U B L I C D A T A
  102. ********************************************************************************
  103. */
  104. /*******************************************************************************
  105. * P R I V A T E D A T A
  106. ********************************************************************************
  107. */
  108. /*******************************************************************************
  109. * M A C R O S
  110. ********************************************************************************
  111. */
  112. /*******************************************************************************
  113. * F U N C T I O N D E C L A R A T I O N S
  114. ********************************************************************************
  115. */
  116. VOID cmdBufInitialize(IN P_ADAPTER_T prAdapter);
  117. P_CMD_INFO_T cmdBufAllocateCmdInfo(IN P_ADAPTER_T prAdapter, IN UINT_32 u4Length);
  118. VOID cmdBufFreeCmdInfo(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  119. /*----------------------------------------------------------------------------*/
  120. /* Routines for CMDs */
  121. /*----------------------------------------------------------------------------*/
  122. WLAN_STATUS
  123. wlanSendSetQueryCmd(IN P_ADAPTER_T prAdapter,
  124. UINT_8 ucCID,
  125. BOOLEAN fgSetQuery,
  126. BOOLEAN fgNeedResp,
  127. BOOLEAN fgIsOid,
  128. PFN_CMD_DONE_HANDLER pfCmdDoneHandler,
  129. PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler,
  130. UINT_32 u4SetQueryInfoLen,
  131. PUINT_8 pucInfoBuffer, OUT PVOID pvSetQueryBuffer, IN UINT_32 u4SetQueryBufferLen);
  132. /*******************************************************************************
  133. * F U N C T I O N S
  134. ********************************************************************************
  135. */
  136. #endif /* _CMD_BUF_H */