6 \brief In this file we define the structure for Command Packet.
8 In this file we define the structure for Command Packet and the control unit
12 /*******************************************************************************
13 * Copyright (c) 2007 MediaTek Inc.
15 * All rights reserved. Copying, compilation, modification, distribution
16 * or any other use whatsoever of this material is strictly prohibited
17 * except in accordance with a Software License Agreement with
19 ********************************************************************************
22 /*******************************************************************************
25 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
26 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
27 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
28 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
29 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
30 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
31 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
32 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
33 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
34 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
35 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
36 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
37 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
39 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
40 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
41 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
42 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
43 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
45 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
46 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
47 * OF LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
48 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
49 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
51 ********************************************************************************
58 * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
59 * create V2.0 driver release based on label "MT6620_WIFI_DRIVER_V2_0_110318_1600" from main trunk
62 * [WCXRP00000077] [MT6620 Wi-Fi][Driver][FW] Eliminate use of ENUM_NETWORK_TYPE_T and replaced by ENUM_NETWORK_TYPE_INDEX_T only
63 * remove ENUM_NETWORK_TYPE_T definitions
65 * 09 03 2010 kevin.huang
67 * Refine #include sequence and solve recursive/nested #include issue
71 * 1) MMPDUs are now sent to MT6620 by CMD queue for keeping strict order of 1X/MMPDU/CMD packets
72 * 2) integrate with qmGetFrameAction() for deciding which MMPDU/1X could pass checking for sending
73 * 2) enhance CMD_INFO_T descriptor number from 10 to 32 to avoid descriptor underflow under concurrent network operation
77 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
80 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
87 /*******************************************************************************
88 * C O M P I L E R F L A G S
89 ********************************************************************************
92 /*******************************************************************************
93 * E X T E R N A L R E F E R E N C E S
94 ********************************************************************************
97 /*******************************************************************************
99 ********************************************************************************
102 /*******************************************************************************
104 ********************************************************************************
107 typedef enum _COMMAND_TYPE {
108 COMMAND_TYPE_GENERAL_IOCTL,
109 COMMAND_TYPE_NETWORK_IOCTL,
110 COMMAND_TYPE_SECURITY_FRAME,
111 COMMAND_TYPE_MANAGEMENT_FRAME,
113 } COMMAND_TYPE, *P_COMMAND_TYPE;
115 typedef VOID (*PFN_CMD_DONE_HANDLER) (
116 IN P_ADAPTER_T prAdapter,
117 IN P_CMD_INFO_T prCmdInfo,
118 IN PUINT_8 pucEventBuf
121 typedef VOID (*PFN_CMD_TIMEOUT_HANDLER) (
122 IN P_ADAPTER_T prAdapter,
123 IN P_CMD_INFO_T prCmdInfo
127 QUE_ENTRY_T rQueEntry;
129 COMMAND_TYPE eCmdType;
131 UINT_16 u2InfoBufLen; /* This is actual CMD buffer length */
132 PUINT_8 pucInfoBuffer; /* May pointer to structure in prAdapter */
133 P_NATIVE_PACKET prPacket; /* only valid when it's a security frame */
135 ENUM_NETWORK_TYPE_INDEX_T eNetworkType;
136 UINT_8 ucStaRecIndex; /* only valid when it's a security frame */
138 PFN_CMD_DONE_HANDLER pfCmdDoneHandler;
139 PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler;
141 BOOLEAN fgIsOid; /* Used to check if we need indicate */
146 BOOLEAN fgDriverDomainMCR; /* Access Driver Domain MCR, for CMD_ID_ACCESS_REG only */
148 UINT_32 u4SetInfoLen; /* Indicate how many byte we read for Set OID */
150 /* information indicating by OID/ioctl */
151 PVOID pvInformationBuffer;
152 UINT_32 u4InformationBufferLength;
155 UINT_32 u4PrivateData;
159 /*******************************************************************************
160 * P U B L I C D A T A
161 ********************************************************************************
164 /*******************************************************************************
165 * P R I V A T E D A T A
166 ********************************************************************************
169 /*******************************************************************************
171 ********************************************************************************
174 /*******************************************************************************
175 * F U N C T I O N D E C L A R A T I O N S
176 ********************************************************************************
180 IN P_ADAPTER_T prAdapter
184 cmdBufAllocateCmdInfo (
185 IN P_ADAPTER_T prAdapter,
191 IN P_ADAPTER_T prAdapter,
192 IN P_CMD_INFO_T prCmdInfo
195 /*----------------------------------------------------------------------------*/
196 /* Routines for CMDs */
197 /*----------------------------------------------------------------------------*/
199 wlanSendSetQueryCmd (
200 IN P_ADAPTER_T prAdapter,
205 PFN_CMD_DONE_HANDLER pfCmdDoneHandler,
206 PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler,
207 UINT_32 u4SetQueryInfoLen,
208 PUINT_8 pucInfoBuffer,
209 OUT PVOID pvSetQueryBuffer,
210 IN UINT_32 u4SetQueryBufferLen
214 /*******************************************************************************
216 ********************************************************************************
218 #endif /* _CMD_BUF_H */