cmd_buf.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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. * 10 04 2010 cp.wu
  13. * [WCXRP00000077] [MT6620 Wi-Fi][Driver][FW] Eliminate use of ENUM_NETWORK_TYPE_T and replaced by
  14. * ENUM_NETWORK_TYPE_INDEX_T only
  15. * remove ENUM_NETWORK_TYPE_T definitions
  16. *
  17. * 09 03 2010 kevin.huang
  18. * NULL
  19. * Refine #include sequence and solve recursive/nested #include issue
  20. *
  21. * 07 13 2010 cp.wu
  22. *
  23. * 1) MMPDUs are now sent to MT6620 by CMD queue for keeping strict order of 1X/MMPDU/CMD packets
  24. * 2) integrate with qmGetFrameAction() for deciding which MMPDU/1X could pass checking for sending
  25. * 2) enhance CMD_INFO_T descriptor number from 10 to 32 to avoid descriptor underflow
  26. * under concurrent network operation
  27. *
  28. * 07 08 2010 cp.wu
  29. *
  30. * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
  31. *
  32. * 07 01 2010 cm.chang
  33. * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
  34. * Enable change log
  35. */
  36. #ifndef _CMD_BUF_H
  37. #define _CMD_BUF_H
  38. /*******************************************************************************
  39. * C O M P I L E R F L A G S
  40. ********************************************************************************
  41. */
  42. /*******************************************************************************
  43. * E X T E R N A L R E F E R E N C E S
  44. ********************************************************************************
  45. */
  46. /*******************************************************************************
  47. * C O N S T A N T S
  48. ********************************************************************************
  49. */
  50. /*******************************************************************************
  51. * D A T A T Y P E S
  52. ********************************************************************************
  53. */
  54. typedef enum _COMMAND_TYPE {
  55. COMMAND_TYPE_GENERAL_IOCTL,
  56. COMMAND_TYPE_NETWORK_IOCTL,
  57. COMMAND_TYPE_SECURITY_FRAME,
  58. COMMAND_TYPE_MANAGEMENT_FRAME,
  59. COMMAND_TYPE_NUM
  60. } COMMAND_TYPE, *P_COMMAND_TYPE;
  61. typedef VOID(*PFN_CMD_DONE_HANDLER) (IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  62. typedef VOID(*PFN_CMD_TIMEOUT_HANDLER) (IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  63. struct _CMD_INFO_T {
  64. QUE_ENTRY_T rQueEntry;
  65. COMMAND_TYPE eCmdType;
  66. UINT_16 u2InfoBufLen; /* This is actual CMD buffer length */
  67. PUINT_8 pucInfoBuffer; /* May pointer to structure in prAdapter */
  68. P_NATIVE_PACKET prPacket; /* only valid when it's a security frame */
  69. ENUM_NETWORK_TYPE_INDEX_T eNetworkType;
  70. UINT_8 ucStaRecIndex; /* only valid when it's a security frame */
  71. PFN_CMD_DONE_HANDLER pfCmdDoneHandler;
  72. PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler;
  73. BOOLEAN fgIsOid; /* Used to check if we need indicate */
  74. UINT_8 ucCID;
  75. BOOLEAN fgSetQuery;
  76. BOOLEAN fgNeedResp;
  77. BOOLEAN fgDriverDomainMCR; /* Access Driver Domain MCR, for CMD_ID_ACCESS_REG only */
  78. UINT_8 ucCmdSeqNum;
  79. UINT_32 u4SetInfoLen; /* Indicate how many byte we read for Set OID */
  80. /* information indicating by OID/ioctl */
  81. PVOID pvInformationBuffer;
  82. UINT_32 u4InformationBufferLength;
  83. /* private data */
  84. UINT_32 u4PrivateData;
  85. };
  86. /*******************************************************************************
  87. * P U B L I C D A T A
  88. ********************************************************************************
  89. */
  90. /*******************************************************************************
  91. * P R I V A T E D A T A
  92. ********************************************************************************
  93. */
  94. /*******************************************************************************
  95. * M A C R O S
  96. ********************************************************************************
  97. */
  98. /*******************************************************************************
  99. * F U N C T I O N D E C L A R A T I O N S
  100. ********************************************************************************
  101. */
  102. VOID cmdBufInitialize(IN P_ADAPTER_T prAdapter);
  103. P_CMD_INFO_T cmdBufAllocateCmdInfo(IN P_ADAPTER_T prAdapter, IN UINT_32 u4Length);
  104. VOID cmdBufFreeCmdInfo(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  105. /*----------------------------------------------------------------------------*/
  106. /* Routines for CMDs */
  107. /*----------------------------------------------------------------------------*/
  108. WLAN_STATUS
  109. wlanSendSetQueryCmd(IN P_ADAPTER_T prAdapter,
  110. UINT_8 ucCID,
  111. BOOLEAN fgSetQuery,
  112. BOOLEAN fgNeedResp,
  113. BOOLEAN fgIsOid,
  114. PFN_CMD_DONE_HANDLER pfCmdDoneHandler,
  115. PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler,
  116. UINT_32 u4SetQueryInfoLen,
  117. PUINT_8 pucInfoBuffer, OUT PVOID pvSetQueryBuffer, IN UINT_32 u4SetQueryBufferLen);
  118. VOID cmdBufDumpCmdQueue(P_QUE_T prQueue, CHAR *queName);
  119. /*******************************************************************************
  120. * F U N C T I O N S
  121. ********************************************************************************
  122. */
  123. #endif /* _CMD_BUF_H */