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 * [WCXRP00000077] [MT6620 Wi-Fi][Driver][FW] Eliminate use of ENUM_NETWORK_TYPE_T and replaced by ENUM_NETWORK_TYPE_INDEX_T only
59 * remove ENUM_NETWORK_TYPE_T definitions
61 * 09 03 2010 kevin.huang
63 * Refine #include sequence and solve recursive/nested #include issue
67 * 1) MMPDUs are now sent to MT6620 by CMD queue for keeping strict order of 1X/MMPDU/CMD packets
68 * 2) integrate with qmGetFrameAction() for deciding which MMPDU/1X could pass checking for sending
69 * 2) enhance CMD_INFO_T descriptor number from 10 to 32 to avoid descriptor underflow under concurrent network operation
73 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
76 * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
83 /*******************************************************************************
84 * C O M P I L E R F L A G S
85 ********************************************************************************
88 /*******************************************************************************
89 * E X T E R N A L R E F E R E N C E S
90 ********************************************************************************
93 /*******************************************************************************
95 ********************************************************************************
98 /*******************************************************************************
100 ********************************************************************************
103 typedef enum _COMMAND_TYPE {
104 COMMAND_TYPE_GENERAL_IOCTL,
105 COMMAND_TYPE_NETWORK_IOCTL,
106 COMMAND_TYPE_SECURITY_FRAME,
107 COMMAND_TYPE_MANAGEMENT_FRAME,
109 } COMMAND_TYPE, *P_COMMAND_TYPE;
111 typedef VOID (*PFN_CMD_DONE_HANDLER) (
112 IN P_ADAPTER_T prAdapter,
113 IN P_CMD_INFO_T prCmdInfo,
114 IN PUINT_8 pucEventBuf
117 typedef VOID (*PFN_CMD_TIMEOUT_HANDLER) (
118 IN P_ADAPTER_T prAdapter,
119 IN P_CMD_INFO_T prCmdInfo
123 QUE_ENTRY_T rQueEntry;
125 COMMAND_TYPE eCmdType;
127 UINT_16 u2InfoBufLen; /* This is actual CMD buffer length */
128 PUINT_8 pucInfoBuffer; /* May pointer to structure in prAdapter */
129 P_NATIVE_PACKET prPacket; /* only valid when it's a security frame */
131 ENUM_NETWORK_TYPE_INDEX_T eNetworkType;
132 UINT_8 ucStaRecIndex; /* only valid when it's a security frame */
134 PFN_CMD_DONE_HANDLER pfCmdDoneHandler;
135 PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler;
137 BOOLEAN fgIsOid; /* Used to check if we need indicate */
142 BOOLEAN fgDriverDomainMCR; /* Access Driver Domain MCR, for CMD_ID_ACCESS_REG only */
144 UINT_32 u4SetInfoLen; /* Indicate how many byte we read for Set OID */
146 /* information indicating by OID/ioctl */
147 PVOID pvInformationBuffer;
148 UINT_32 u4InformationBufferLength;
151 UINT_32 u4PrivateData;
155 /*******************************************************************************
156 * P U B L I C D A T A
157 ********************************************************************************
160 /*******************************************************************************
161 * P R I V A T E D A T A
162 ********************************************************************************
165 /*******************************************************************************
167 ********************************************************************************
170 /*******************************************************************************
171 * F U N C T I O N D E C L A R A T I O N S
172 ********************************************************************************
176 IN P_ADAPTER_T prAdapter
180 cmdBufAllocateCmdInfo (
181 IN P_ADAPTER_T prAdapter,
187 IN P_ADAPTER_T prAdapter,
188 IN P_CMD_INFO_T prCmdInfo
191 /*----------------------------------------------------------------------------*/
192 /* Routines for CMDs */
193 /*----------------------------------------------------------------------------*/
195 wlanSendSetQueryCmd (
196 IN P_ADAPTER_T prAdapter,
201 PFN_CMD_DONE_HANDLER pfCmdDoneHandler,
202 PFN_CMD_TIMEOUT_HANDLER pfCmdTimeoutHandler,
203 UINT_32 u4SetQueryInfoLen,
204 PUINT_8 pucInfoBuffer,
205 OUT PVOID pvSetQueryBuffer,
206 IN UINT_32 u4SetQueryBufferLen
210 /*******************************************************************************
212 ********************************************************************************
214 #endif /* _CMD_BUF_H */