1 /*****************************************************************************
3 (c) Cambridge Silicon Radio Limited 2012
4 All rights reserved and confidential information of CSR
6 Refer to LICENSE.txt included with this source for details
9 *****************************************************************************/
11 /* Note: this is an auto-generated file. */
12 #include <linux/string.h>
13 #include <linux/slab.h>
14 #include "csr_msgconv.h"
16 #ifdef CSR_WIFI_NME_ENABLE
17 #ifdef CSR_WIFI_AP_ENABLE
19 #include "csr_wifi_nme_ap_prim.h"
20 #include "csr_wifi_nme_ap_serialize.h"
22 void CsrWifiNmeApPfree(void *ptr
)
28 size_t CsrWifiNmeApConfigSetReqSizeof(void *msg
)
30 CsrWifiNmeApConfigSetReq
*primitive
= (CsrWifiNmeApConfigSetReq
*) msg
;
31 size_t bufferSize
= 2;
33 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 104) */
34 bufferSize
+= 2; /* u16 primitive->apConfig.apGroupkeyTimeout */
35 bufferSize
+= 1; /* u8 primitive->apConfig.apStrictGtkRekey */
36 bufferSize
+= 2; /* u16 primitive->apConfig.apGmkTimeout */
37 bufferSize
+= 2; /* u16 primitive->apConfig.apResponseTimeout */
38 bufferSize
+= 1; /* u8 primitive->apConfig.apRetransLimit */
39 bufferSize
+= 1; /* CsrWifiSmeApPhySupportMask primitive->apMacConfig.phySupportedBitmap */
40 bufferSize
+= 2; /* u16 primitive->apMacConfig.beaconInterval */
41 bufferSize
+= 1; /* u8 primitive->apMacConfig.dtimPeriod */
42 bufferSize
+= 2; /* u16 primitive->apMacConfig.maxListenInterval */
43 bufferSize
+= 1; /* u8 primitive->apMacConfig.supportedRatesCount */
44 bufferSize
+= 20; /* u8 primitive->apMacConfig.supportedRates[20] */
45 bufferSize
+= 1; /* CsrWifiSmePreambleType primitive->apMacConfig.preamble */
46 bufferSize
+= 1; /* u8 primitive->apMacConfig.shortSlotTimeEnabled */
47 bufferSize
+= 1; /* CsrWifiSmeCtsProtectionType primitive->apMacConfig.ctsProtectionType */
48 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmEnabled */
51 for (i2
= 0; i2
< 4; i2
++)
53 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmApParams[i2].cwMin */
54 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmApParams[i2].cwMax */
55 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmApParams[i2].aifs */
56 bufferSize
+= 2; /* u16 primitive->apMacConfig.wmmApParams[i2].txopLimit */
57 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmApParams[i2].admissionControlMandatory */
62 for (i2
= 0; i2
< 4; i2
++)
64 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmApBcParams[i2].cwMin */
65 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmApBcParams[i2].cwMax */
66 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmApBcParams[i2].aifs */
67 bufferSize
+= 2; /* u16 primitive->apMacConfig.wmmApBcParams[i2].txopLimit */
68 bufferSize
+= 1; /* u8 primitive->apMacConfig.wmmApBcParams[i2].admissionControlMandatory */
71 bufferSize
+= 1; /* CsrWifiSmeApAccessType primitive->apMacConfig.accessType */
72 bufferSize
+= 1; /* u8 primitive->apMacConfig.macAddressListCount */
75 for (i2
= 0; i2
< primitive
->apMacConfig
.macAddressListCount
; i2
++)
77 bufferSize
+= 6; /* u8 primitive->apMacConfig.macAddressList[i2].a[6] */
80 bufferSize
+= 1; /* u8 primitive->apMacConfig.apHtParams.greenfieldSupported */
81 bufferSize
+= 1; /* u8 primitive->apMacConfig.apHtParams.shortGi20MHz */
82 bufferSize
+= 1; /* u8 primitive->apMacConfig.apHtParams.rxStbc */
83 bufferSize
+= 1; /* u8 primitive->apMacConfig.apHtParams.rifsModeAllowed */
84 bufferSize
+= 1; /* u8 primitive->apMacConfig.apHtParams.htProtection */
85 bufferSize
+= 1; /* u8 primitive->apMacConfig.apHtParams.dualCtsProtection */
90 u8
* CsrWifiNmeApConfigSetReqSer(u8
*ptr
, size_t *len
, void *msg
)
92 CsrWifiNmeApConfigSetReq
*primitive
= (CsrWifiNmeApConfigSetReq
*)msg
;
94 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
95 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apConfig
.apGroupkeyTimeout
);
96 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apConfig
.apStrictGtkRekey
);
97 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apConfig
.apGmkTimeout
);
98 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apConfig
.apResponseTimeout
);
99 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apConfig
.apRetransLimit
);
100 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.phySupportedBitmap
);
101 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apMacConfig
.beaconInterval
);
102 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.dtimPeriod
);
103 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apMacConfig
.maxListenInterval
);
104 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.supportedRatesCount
);
105 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apMacConfig
.supportedRates
, ((u16
) (20)));
106 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.preamble
);
107 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.shortSlotTimeEnabled
);
108 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.ctsProtectionType
);
109 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmEnabled
);
112 for (i2
= 0; i2
< 4; i2
++)
114 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmApParams
[i2
].cwMin
);
115 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmApParams
[i2
].cwMax
);
116 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmApParams
[i2
].aifs
);
117 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apMacConfig
.wmmApParams
[i2
].txopLimit
);
118 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmApParams
[i2
].admissionControlMandatory
);
123 for (i2
= 0; i2
< 4; i2
++)
125 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmApBcParams
[i2
].cwMin
);
126 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmApBcParams
[i2
].cwMax
);
127 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmApBcParams
[i2
].aifs
);
128 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apMacConfig
.wmmApBcParams
[i2
].txopLimit
);
129 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.wmmApBcParams
[i2
].admissionControlMandatory
);
132 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.accessType
);
133 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.macAddressListCount
);
136 for (i2
= 0; i2
< primitive
->apMacConfig
.macAddressListCount
; i2
++)
138 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apMacConfig
.macAddressList
[i2
].a
, ((u16
) (6)));
141 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.apHtParams
.greenfieldSupported
);
142 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.apHtParams
.shortGi20MHz
);
143 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.apHtParams
.rxStbc
);
144 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.apHtParams
.rifsModeAllowed
);
145 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.apHtParams
.htProtection
);
146 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apMacConfig
.apHtParams
.dualCtsProtection
);
151 void* CsrWifiNmeApConfigSetReqDes(u8
*buffer
, size_t length
)
153 CsrWifiNmeApConfigSetReq
*primitive
= kmalloc(sizeof(CsrWifiNmeApConfigSetReq
), GFP_KERNEL
);
157 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
158 CsrUint16Des((u16
*) &primitive
->apConfig
.apGroupkeyTimeout
, buffer
, &offset
);
159 CsrUint8Des((u8
*) &primitive
->apConfig
.apStrictGtkRekey
, buffer
, &offset
);
160 CsrUint16Des((u16
*) &primitive
->apConfig
.apGmkTimeout
, buffer
, &offset
);
161 CsrUint16Des((u16
*) &primitive
->apConfig
.apResponseTimeout
, buffer
, &offset
);
162 CsrUint8Des((u8
*) &primitive
->apConfig
.apRetransLimit
, buffer
, &offset
);
163 CsrUint8Des((u8
*) &primitive
->apMacConfig
.phySupportedBitmap
, buffer
, &offset
);
164 CsrUint16Des((u16
*) &primitive
->apMacConfig
.beaconInterval
, buffer
, &offset
);
165 CsrUint8Des((u8
*) &primitive
->apMacConfig
.dtimPeriod
, buffer
, &offset
);
166 CsrUint16Des((u16
*) &primitive
->apMacConfig
.maxListenInterval
, buffer
, &offset
);
167 CsrUint8Des((u8
*) &primitive
->apMacConfig
.supportedRatesCount
, buffer
, &offset
);
168 CsrMemCpyDes(primitive
->apMacConfig
.supportedRates
, buffer
, &offset
, ((u16
) (20)));
169 CsrUint8Des((u8
*) &primitive
->apMacConfig
.preamble
, buffer
, &offset
);
170 CsrUint8Des((u8
*) &primitive
->apMacConfig
.shortSlotTimeEnabled
, buffer
, &offset
);
171 CsrUint8Des((u8
*) &primitive
->apMacConfig
.ctsProtectionType
, buffer
, &offset
);
172 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmEnabled
, buffer
, &offset
);
175 for (i2
= 0; i2
< 4; i2
++)
177 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmApParams
[i2
].cwMin
, buffer
, &offset
);
178 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmApParams
[i2
].cwMax
, buffer
, &offset
);
179 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmApParams
[i2
].aifs
, buffer
, &offset
);
180 CsrUint16Des((u16
*) &primitive
->apMacConfig
.wmmApParams
[i2
].txopLimit
, buffer
, &offset
);
181 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmApParams
[i2
].admissionControlMandatory
, buffer
, &offset
);
186 for (i2
= 0; i2
< 4; i2
++)
188 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmApBcParams
[i2
].cwMin
, buffer
, &offset
);
189 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmApBcParams
[i2
].cwMax
, buffer
, &offset
);
190 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmApBcParams
[i2
].aifs
, buffer
, &offset
);
191 CsrUint16Des((u16
*) &primitive
->apMacConfig
.wmmApBcParams
[i2
].txopLimit
, buffer
, &offset
);
192 CsrUint8Des((u8
*) &primitive
->apMacConfig
.wmmApBcParams
[i2
].admissionControlMandatory
, buffer
, &offset
);
195 CsrUint8Des((u8
*) &primitive
->apMacConfig
.accessType
, buffer
, &offset
);
196 CsrUint8Des((u8
*) &primitive
->apMacConfig
.macAddressListCount
, buffer
, &offset
);
197 primitive
->apMacConfig
.macAddressList
= NULL
;
198 if (primitive
->apMacConfig
.macAddressListCount
)
200 primitive
->apMacConfig
.macAddressList
= kmalloc(sizeof(CsrWifiMacAddress
) * primitive
->apMacConfig
.macAddressListCount
, GFP_KERNEL
);
204 for (i2
= 0; i2
< primitive
->apMacConfig
.macAddressListCount
; i2
++)
206 CsrMemCpyDes(primitive
->apMacConfig
.macAddressList
[i2
].a
, buffer
, &offset
, ((u16
) (6)));
209 CsrUint8Des((u8
*) &primitive
->apMacConfig
.apHtParams
.greenfieldSupported
, buffer
, &offset
);
210 CsrUint8Des((u8
*) &primitive
->apMacConfig
.apHtParams
.shortGi20MHz
, buffer
, &offset
);
211 CsrUint8Des((u8
*) &primitive
->apMacConfig
.apHtParams
.rxStbc
, buffer
, &offset
);
212 CsrUint8Des((u8
*) &primitive
->apMacConfig
.apHtParams
.rifsModeAllowed
, buffer
, &offset
);
213 CsrUint8Des((u8
*) &primitive
->apMacConfig
.apHtParams
.htProtection
, buffer
, &offset
);
214 CsrUint8Des((u8
*) &primitive
->apMacConfig
.apHtParams
.dualCtsProtection
, buffer
, &offset
);
220 void CsrWifiNmeApConfigSetReqSerFree(void *voidPrimitivePointer
)
222 CsrWifiNmeApConfigSetReq
*primitive
= (CsrWifiNmeApConfigSetReq
*) voidPrimitivePointer
;
223 kfree(primitive
->apMacConfig
.macAddressList
);
228 size_t CsrWifiNmeApWpsRegisterReqSizeof(void *msg
)
230 size_t bufferSize
= 2;
232 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 17) */
233 bufferSize
+= 2; /* u16 primitive->interfaceTag */
234 bufferSize
+= 2; /* CsrWifiSmeWpsDpid primitive->selectedDevicePasswordId */
235 bufferSize
+= 2; /* CsrWifiSmeWpsConfigType primitive->selectedConfigMethod */
236 bufferSize
+= 8; /* u8 primitive->pin[8] */
241 u8
* CsrWifiNmeApWpsRegisterReqSer(u8
*ptr
, size_t *len
, void *msg
)
243 CsrWifiNmeApWpsRegisterReq
*primitive
= (CsrWifiNmeApWpsRegisterReq
*)msg
;
245 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
246 CsrUint16Ser(ptr
, len
, (u16
) primitive
->interfaceTag
);
247 CsrUint16Ser(ptr
, len
, (u16
) primitive
->selectedDevicePasswordId
);
248 CsrUint16Ser(ptr
, len
, (u16
) primitive
->selectedConfigMethod
);
249 CsrMemCpySer(ptr
, len
, (const void *) primitive
->pin
, ((u16
) (8)));
254 void* CsrWifiNmeApWpsRegisterReqDes(u8
*buffer
, size_t length
)
256 CsrWifiNmeApWpsRegisterReq
*primitive
= kmalloc(sizeof(CsrWifiNmeApWpsRegisterReq
), GFP_KERNEL
);
260 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
261 CsrUint16Des((u16
*) &primitive
->interfaceTag
, buffer
, &offset
);
262 CsrUint16Des((u16
*) &primitive
->selectedDevicePasswordId
, buffer
, &offset
);
263 CsrUint16Des((u16
*) &primitive
->selectedConfigMethod
, buffer
, &offset
);
264 CsrMemCpyDes(primitive
->pin
, buffer
, &offset
, ((u16
) (8)));
270 size_t CsrWifiNmeApStartReqSizeof(void *msg
)
272 CsrWifiNmeApStartReq
*primitive
= (CsrWifiNmeApStartReq
*) msg
;
273 size_t bufferSize
= 2;
275 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 112) */
276 bufferSize
+= 2; /* u16 primitive->interfaceTag */
277 bufferSize
+= 1; /* CsrWifiSmeApType primitive->apType */
278 bufferSize
+= 1; /* u8 primitive->cloakSsid */
279 bufferSize
+= 32; /* u8 primitive->ssid.ssid[32] */
280 bufferSize
+= 1; /* u8 primitive->ssid.length */
281 bufferSize
+= 1; /* CsrWifiSmeRadioIF primitive->ifIndex */
282 bufferSize
+= 1; /* u8 primitive->channel */
283 bufferSize
+= 1; /* CsrWifiSmeApAuthType primitive->apCredentials.authType */
284 switch (primitive
->apCredentials
.authType
)
286 case CSR_WIFI_SME_AP_AUTH_TYPE_OPEN_SYSTEM
:
287 bufferSize
+= 1; /* u8 primitive->apCredentials.nmeAuthType.openSystemEmpty.empty */
289 case CSR_WIFI_SME_AP_AUTH_TYPE_WEP
:
290 bufferSize
+= 1; /* CsrWifiSmeWepCredentialType primitive->apCredentials.nmeAuthType.authwep.wepKeyType */
291 switch (primitive
->apCredentials
.nmeAuthType
.authwep
.wepKeyType
)
293 case CSR_WIFI_SME_CREDENTIAL_TYPE_WEP128
:
294 bufferSize
+= 1; /* CsrWifiSmeWepAuthMode primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep128Key.wepAuthType */
295 bufferSize
+= 1; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep128Key.selectedWepKey */
296 bufferSize
+= 13; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep128Key.key1[13] */
297 bufferSize
+= 13; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep128Key.key2[13] */
298 bufferSize
+= 13; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep128Key.key3[13] */
299 bufferSize
+= 13; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep128Key.key4[13] */
301 case CSR_WIFI_SME_CREDENTIAL_TYPE_WEP64
:
302 bufferSize
+= 1; /* CsrWifiSmeWepAuthMode primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep64Key.wepAuthType */
303 bufferSize
+= 1; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep64Key.selectedWepKey */
304 bufferSize
+= 5; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep64Key.key1[5] */
305 bufferSize
+= 5; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep64Key.key2[5] */
306 bufferSize
+= 5; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep64Key.key3[5] */
307 bufferSize
+= 5; /* u8 primitive->apCredentials.nmeAuthType.authwep.wepCredentials.wep64Key.key4[5] */
313 case CSR_WIFI_SME_AP_AUTH_TYPE_PERSONAL
:
314 bufferSize
+= 1; /* CsrWifiSmeApAuthSupportMask primitive->apCredentials.nmeAuthType.authTypePersonal.authSupport */
315 bufferSize
+= 2; /* CsrWifiSmeApRsnCapabilitiesMask primitive->apCredentials.nmeAuthType.authTypePersonal.rsnCapabilities */
316 bufferSize
+= 2; /* CsrWifiSmeApWapiCapabilitiesMask primitive->apCredentials.nmeAuthType.authTypePersonal.wapiCapabilities */
317 bufferSize
+= 1; /* CsrWifiNmeApPersCredentialType primitive->apCredentials.nmeAuthType.authTypePersonal.pskOrPassphrase */
318 switch (primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.pskOrPassphrase
)
320 case CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PSK
:
321 bufferSize
+= 2; /* u16 primitive->apCredentials.nmeAuthType.authTypePersonal.authPers_credentials.psk.encryptionMode */
322 bufferSize
+= 32; /* u8 primitive->apCredentials.nmeAuthType.authTypePersonal.authPers_credentials.psk.psk[32] */
324 case CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PASSPHRASE
:
325 bufferSize
+= 2; /* u16 primitive->apCredentials.nmeAuthType.authTypePersonal.authPers_credentials.passphrase.encryptionMode */
326 bufferSize
+= (primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.passphrase
.passphrase
? strlen(primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.passphrase
.passphrase
) : 0) + 1; /* char* primitive->apCredentials.nmeAuthType.authTypePersonal.authPers_credentials.passphrase.passphrase (0 byte len + 1 for NULL Term) */
335 bufferSize
+= 1; /* u8 primitive->maxConnections */
336 bufferSize
+= 1; /* CsrWifiSmeP2pGroupCapabilityMask primitive->p2pGoParam.groupCapability */
337 bufferSize
+= 3; /* u8 primitive->p2pGoParam.operatingChanList.country[3] */
338 bufferSize
+= 1; /* u8 primitive->p2pGoParam.operatingChanList.channelEntryListCount */
341 for (i3
= 0; i3
< primitive
->p2pGoParam
.operatingChanList
.channelEntryListCount
; i3
++)
343 bufferSize
+= 1; /* u8 primitive->p2pGoParam.operatingChanList.channelEntryList[i3].operatingClass */
344 bufferSize
+= 1; /* u8 primitive->p2pGoParam.operatingChanList.channelEntryList[i3].operatingChannelCount */
345 bufferSize
+= primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannelCount
; /* u8 primitive->p2pGoParam.operatingChanList.channelEntryList[i3].operatingChannel */
348 bufferSize
+= 1; /* u8 primitive->p2pGoParam.opPsEnabled */
349 bufferSize
+= 1; /* u8 primitive->p2pGoParam.ctWindow */
350 bufferSize
+= 1; /* CsrWifiSmeP2pNoaConfigMethod primitive->p2pGoParam.noaConfigMethod */
351 bufferSize
+= 1; /* u8 primitive->p2pGoParam.allowNoaWithNonP2pDevices */
352 bufferSize
+= 1; /* u8 primitive->wpsEnabled */
357 u8
* CsrWifiNmeApStartReqSer(u8
*ptr
, size_t *len
, void *msg
)
359 CsrWifiNmeApStartReq
*primitive
= (CsrWifiNmeApStartReq
*)msg
;
361 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
362 CsrUint16Ser(ptr
, len
, (u16
) primitive
->interfaceTag
);
363 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apType
);
364 CsrUint8Ser(ptr
, len
, (u8
) primitive
->cloakSsid
);
365 CsrMemCpySer(ptr
, len
, (const void *) primitive
->ssid
.ssid
, ((u16
) (32)));
366 CsrUint8Ser(ptr
, len
, (u8
) primitive
->ssid
.length
);
367 CsrUint8Ser(ptr
, len
, (u8
) primitive
->ifIndex
);
368 CsrUint8Ser(ptr
, len
, (u8
) primitive
->channel
);
369 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.authType
);
370 switch (primitive
->apCredentials
.authType
)
372 case CSR_WIFI_SME_AP_AUTH_TYPE_OPEN_SYSTEM
:
373 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.nmeAuthType
.openSystemEmpty
.empty
);
375 case CSR_WIFI_SME_AP_AUTH_TYPE_WEP
:
376 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.nmeAuthType
.authwep
.wepKeyType
);
377 switch (primitive
->apCredentials
.nmeAuthType
.authwep
.wepKeyType
)
379 case CSR_WIFI_SME_CREDENTIAL_TYPE_WEP128
:
380 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.wepAuthType
);
381 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.selectedWepKey
);
382 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.key1
, ((u16
) (13)));
383 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.key2
, ((u16
) (13)));
384 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.key3
, ((u16
) (13)));
385 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.key4
, ((u16
) (13)));
387 case CSR_WIFI_SME_CREDENTIAL_TYPE_WEP64
:
388 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.wepAuthType
);
389 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.selectedWepKey
);
390 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.key1
, ((u16
) (5)));
391 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.key2
, ((u16
) (5)));
392 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.key3
, ((u16
) (5)));
393 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.key4
, ((u16
) (5)));
399 case CSR_WIFI_SME_AP_AUTH_TYPE_PERSONAL
:
400 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authSupport
);
401 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.rsnCapabilities
);
402 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.wapiCapabilities
);
403 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.pskOrPassphrase
);
404 switch (primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.pskOrPassphrase
)
406 case CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PSK
:
407 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.psk
.encryptionMode
);
408 CsrMemCpySer(ptr
, len
, (const void *) primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.psk
.psk
, ((u16
) (32)));
410 case CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PASSPHRASE
:
411 CsrUint16Ser(ptr
, len
, (u16
) primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.passphrase
.encryptionMode
);
412 CsrCharStringSer(ptr
, len
, primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.passphrase
.passphrase
);
421 CsrUint8Ser(ptr
, len
, (u8
) primitive
->maxConnections
);
422 CsrUint8Ser(ptr
, len
, (u8
) primitive
->p2pGoParam
.groupCapability
);
423 CsrMemCpySer(ptr
, len
, (const void *) primitive
->p2pGoParam
.operatingChanList
.country
, ((u16
) (3)));
424 CsrUint8Ser(ptr
, len
, (u8
) primitive
->p2pGoParam
.operatingChanList
.channelEntryListCount
);
427 for (i3
= 0; i3
< primitive
->p2pGoParam
.operatingChanList
.channelEntryListCount
; i3
++)
429 CsrUint8Ser(ptr
, len
, (u8
) primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingClass
);
430 CsrUint8Ser(ptr
, len
, (u8
) primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannelCount
);
431 if (primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannelCount
)
433 CsrMemCpySer(ptr
, len
, (const void *) primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannel
, ((u16
) (primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannelCount
)));
437 CsrUint8Ser(ptr
, len
, (u8
) primitive
->p2pGoParam
.opPsEnabled
);
438 CsrUint8Ser(ptr
, len
, (u8
) primitive
->p2pGoParam
.ctWindow
);
439 CsrUint8Ser(ptr
, len
, (u8
) primitive
->p2pGoParam
.noaConfigMethod
);
440 CsrUint8Ser(ptr
, len
, (u8
) primitive
->p2pGoParam
.allowNoaWithNonP2pDevices
);
441 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wpsEnabled
);
446 void* CsrWifiNmeApStartReqDes(u8
*buffer
, size_t length
)
448 CsrWifiNmeApStartReq
*primitive
= kmalloc(sizeof(CsrWifiNmeApStartReq
), GFP_KERNEL
);
452 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
453 CsrUint16Des((u16
*) &primitive
->interfaceTag
, buffer
, &offset
);
454 CsrUint8Des((u8
*) &primitive
->apType
, buffer
, &offset
);
455 CsrUint8Des((u8
*) &primitive
->cloakSsid
, buffer
, &offset
);
456 CsrMemCpyDes(primitive
->ssid
.ssid
, buffer
, &offset
, ((u16
) (32)));
457 CsrUint8Des((u8
*) &primitive
->ssid
.length
, buffer
, &offset
);
458 CsrUint8Des((u8
*) &primitive
->ifIndex
, buffer
, &offset
);
459 CsrUint8Des((u8
*) &primitive
->channel
, buffer
, &offset
);
460 CsrUint8Des((u8
*) &primitive
->apCredentials
.authType
, buffer
, &offset
);
461 switch (primitive
->apCredentials
.authType
)
463 case CSR_WIFI_SME_AP_AUTH_TYPE_OPEN_SYSTEM
:
464 CsrUint8Des((u8
*) &primitive
->apCredentials
.nmeAuthType
.openSystemEmpty
.empty
, buffer
, &offset
);
466 case CSR_WIFI_SME_AP_AUTH_TYPE_WEP
:
467 CsrUint8Des((u8
*) &primitive
->apCredentials
.nmeAuthType
.authwep
.wepKeyType
, buffer
, &offset
);
468 switch (primitive
->apCredentials
.nmeAuthType
.authwep
.wepKeyType
)
470 case CSR_WIFI_SME_CREDENTIAL_TYPE_WEP128
:
471 CsrUint8Des((u8
*) &primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.wepAuthType
, buffer
, &offset
);
472 CsrUint8Des((u8
*) &primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.selectedWepKey
, buffer
, &offset
);
473 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.key1
, buffer
, &offset
, ((u16
) (13)));
474 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.key2
, buffer
, &offset
, ((u16
) (13)));
475 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.key3
, buffer
, &offset
, ((u16
) (13)));
476 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep128Key
.key4
, buffer
, &offset
, ((u16
) (13)));
478 case CSR_WIFI_SME_CREDENTIAL_TYPE_WEP64
:
479 CsrUint8Des((u8
*) &primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.wepAuthType
, buffer
, &offset
);
480 CsrUint8Des((u8
*) &primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.selectedWepKey
, buffer
, &offset
);
481 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.key1
, buffer
, &offset
, ((u16
) (5)));
482 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.key2
, buffer
, &offset
, ((u16
) (5)));
483 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.key3
, buffer
, &offset
, ((u16
) (5)));
484 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authwep
.wepCredentials
.wep64Key
.key4
, buffer
, &offset
, ((u16
) (5)));
490 case CSR_WIFI_SME_AP_AUTH_TYPE_PERSONAL
:
491 CsrUint8Des((u8
*) &primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authSupport
, buffer
, &offset
);
492 CsrUint16Des((u16
*) &primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.rsnCapabilities
, buffer
, &offset
);
493 CsrUint16Des((u16
*) &primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.wapiCapabilities
, buffer
, &offset
);
494 CsrUint8Des((u8
*) &primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.pskOrPassphrase
, buffer
, &offset
);
495 switch (primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.pskOrPassphrase
)
497 case CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PSK
:
498 CsrUint16Des((u16
*) &primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.psk
.encryptionMode
, buffer
, &offset
);
499 CsrMemCpyDes(primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.psk
.psk
, buffer
, &offset
, ((u16
) (32)));
501 case CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PASSPHRASE
:
502 CsrUint16Des((u16
*) &primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.passphrase
.encryptionMode
, buffer
, &offset
);
503 CsrCharStringDes(&primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.passphrase
.passphrase
, buffer
, &offset
);
512 CsrUint8Des((u8
*) &primitive
->maxConnections
, buffer
, &offset
);
513 CsrUint8Des((u8
*) &primitive
->p2pGoParam
.groupCapability
, buffer
, &offset
);
514 CsrMemCpyDes(primitive
->p2pGoParam
.operatingChanList
.country
, buffer
, &offset
, ((u16
) (3)));
515 CsrUint8Des((u8
*) &primitive
->p2pGoParam
.operatingChanList
.channelEntryListCount
, buffer
, &offset
);
516 primitive
->p2pGoParam
.operatingChanList
.channelEntryList
= NULL
;
517 if (primitive
->p2pGoParam
.operatingChanList
.channelEntryListCount
)
519 primitive
->p2pGoParam
.operatingChanList
.channelEntryList
= kmalloc(sizeof(CsrWifiSmeApP2pOperatingChanEntry
) * primitive
->p2pGoParam
.operatingChanList
.channelEntryListCount
, GFP_KERNEL
);
523 for (i3
= 0; i3
< primitive
->p2pGoParam
.operatingChanList
.channelEntryListCount
; i3
++)
525 CsrUint8Des((u8
*) &primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingClass
, buffer
, &offset
);
526 CsrUint8Des((u8
*) &primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannelCount
, buffer
, &offset
);
527 if (primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannelCount
)
529 primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannel
= kmalloc(primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannelCount
, GFP_KERNEL
);
530 CsrMemCpyDes(primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannel
, buffer
, &offset
, ((u16
) (primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannelCount
)));
534 primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannel
= NULL
;
538 CsrUint8Des((u8
*) &primitive
->p2pGoParam
.opPsEnabled
, buffer
, &offset
);
539 CsrUint8Des((u8
*) &primitive
->p2pGoParam
.ctWindow
, buffer
, &offset
);
540 CsrUint8Des((u8
*) &primitive
->p2pGoParam
.noaConfigMethod
, buffer
, &offset
);
541 CsrUint8Des((u8
*) &primitive
->p2pGoParam
.allowNoaWithNonP2pDevices
, buffer
, &offset
);
542 CsrUint8Des((u8
*) &primitive
->wpsEnabled
, buffer
, &offset
);
548 void CsrWifiNmeApStartReqSerFree(void *voidPrimitivePointer
)
550 CsrWifiNmeApStartReq
*primitive
= (CsrWifiNmeApStartReq
*) voidPrimitivePointer
;
551 switch (primitive
->apCredentials
.authType
)
553 case CSR_WIFI_SME_AP_AUTH_TYPE_PERSONAL
:
554 switch (primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.pskOrPassphrase
)
556 case CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PASSPHRASE
:
557 kfree(primitive
->apCredentials
.nmeAuthType
.authTypePersonal
.authPers_credentials
.passphrase
.passphrase
);
568 for (i3
= 0; i3
< primitive
->p2pGoParam
.operatingChanList
.channelEntryListCount
; i3
++)
570 kfree(primitive
->p2pGoParam
.operatingChanList
.channelEntryList
[i3
].operatingChannel
);
573 kfree(primitive
->p2pGoParam
.operatingChanList
.channelEntryList
);
578 size_t CsrWifiNmeApWmmParamUpdateReqSizeof(void *msg
)
580 size_t bufferSize
= 2;
582 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 51) */
585 for (i1
= 0; i1
< 4; i1
++)
587 bufferSize
+= 1; /* u8 primitive->wmmApParams[i1].cwMin */
588 bufferSize
+= 1; /* u8 primitive->wmmApParams[i1].cwMax */
589 bufferSize
+= 1; /* u8 primitive->wmmApParams[i1].aifs */
590 bufferSize
+= 2; /* u16 primitive->wmmApParams[i1].txopLimit */
591 bufferSize
+= 1; /* u8 primitive->wmmApParams[i1].admissionControlMandatory */
596 for (i1
= 0; i1
< 4; i1
++)
598 bufferSize
+= 1; /* u8 primitive->wmmApBcParams[i1].cwMin */
599 bufferSize
+= 1; /* u8 primitive->wmmApBcParams[i1].cwMax */
600 bufferSize
+= 1; /* u8 primitive->wmmApBcParams[i1].aifs */
601 bufferSize
+= 2; /* u16 primitive->wmmApBcParams[i1].txopLimit */
602 bufferSize
+= 1; /* u8 primitive->wmmApBcParams[i1].admissionControlMandatory */
609 u8
* CsrWifiNmeApWmmParamUpdateReqSer(u8
*ptr
, size_t *len
, void *msg
)
611 CsrWifiNmeApWmmParamUpdateReq
*primitive
= (CsrWifiNmeApWmmParamUpdateReq
*)msg
;
613 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
616 for (i1
= 0; i1
< 4; i1
++)
618 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wmmApParams
[i1
].cwMin
);
619 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wmmApParams
[i1
].cwMax
);
620 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wmmApParams
[i1
].aifs
);
621 CsrUint16Ser(ptr
, len
, (u16
) primitive
->wmmApParams
[i1
].txopLimit
);
622 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wmmApParams
[i1
].admissionControlMandatory
);
627 for (i1
= 0; i1
< 4; i1
++)
629 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wmmApBcParams
[i1
].cwMin
);
630 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wmmApBcParams
[i1
].cwMax
);
631 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wmmApBcParams
[i1
].aifs
);
632 CsrUint16Ser(ptr
, len
, (u16
) primitive
->wmmApBcParams
[i1
].txopLimit
);
633 CsrUint8Ser(ptr
, len
, (u8
) primitive
->wmmApBcParams
[i1
].admissionControlMandatory
);
640 void* CsrWifiNmeApWmmParamUpdateReqDes(u8
*buffer
, size_t length
)
642 CsrWifiNmeApWmmParamUpdateReq
*primitive
= kmalloc(sizeof(CsrWifiNmeApWmmParamUpdateReq
), GFP_KERNEL
);
646 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
649 for (i1
= 0; i1
< 4; i1
++)
651 CsrUint8Des((u8
*) &primitive
->wmmApParams
[i1
].cwMin
, buffer
, &offset
);
652 CsrUint8Des((u8
*) &primitive
->wmmApParams
[i1
].cwMax
, buffer
, &offset
);
653 CsrUint8Des((u8
*) &primitive
->wmmApParams
[i1
].aifs
, buffer
, &offset
);
654 CsrUint16Des((u16
*) &primitive
->wmmApParams
[i1
].txopLimit
, buffer
, &offset
);
655 CsrUint8Des((u8
*) &primitive
->wmmApParams
[i1
].admissionControlMandatory
, buffer
, &offset
);
660 for (i1
= 0; i1
< 4; i1
++)
662 CsrUint8Des((u8
*) &primitive
->wmmApBcParams
[i1
].cwMin
, buffer
, &offset
);
663 CsrUint8Des((u8
*) &primitive
->wmmApBcParams
[i1
].cwMax
, buffer
, &offset
);
664 CsrUint8Des((u8
*) &primitive
->wmmApBcParams
[i1
].aifs
, buffer
, &offset
);
665 CsrUint16Des((u16
*) &primitive
->wmmApBcParams
[i1
].txopLimit
, buffer
, &offset
);
666 CsrUint8Des((u8
*) &primitive
->wmmApBcParams
[i1
].admissionControlMandatory
, buffer
, &offset
);
674 size_t CsrWifiNmeApStaRemoveReqSizeof(void *msg
)
676 size_t bufferSize
= 2;
678 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 12) */
679 bufferSize
+= 2; /* u16 primitive->interfaceTag */
680 bufferSize
+= 6; /* u8 primitive->staMacAddress.a[6] */
681 bufferSize
+= 1; /* u8 primitive->keepBlocking */
686 u8
* CsrWifiNmeApStaRemoveReqSer(u8
*ptr
, size_t *len
, void *msg
)
688 CsrWifiNmeApStaRemoveReq
*primitive
= (CsrWifiNmeApStaRemoveReq
*)msg
;
690 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
691 CsrUint16Ser(ptr
, len
, (u16
) primitive
->interfaceTag
);
692 CsrMemCpySer(ptr
, len
, (const void *) primitive
->staMacAddress
.a
, ((u16
) (6)));
693 CsrUint8Ser(ptr
, len
, (u8
) primitive
->keepBlocking
);
698 void* CsrWifiNmeApStaRemoveReqDes(u8
*buffer
, size_t length
)
700 CsrWifiNmeApStaRemoveReq
*primitive
= kmalloc(sizeof(CsrWifiNmeApStaRemoveReq
), GFP_KERNEL
);
704 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
705 CsrUint16Des((u16
*) &primitive
->interfaceTag
, buffer
, &offset
);
706 CsrMemCpyDes(primitive
->staMacAddress
.a
, buffer
, &offset
, ((u16
) (6)));
707 CsrUint8Des((u8
*) &primitive
->keepBlocking
, buffer
, &offset
);
713 size_t CsrWifiNmeApWpsRegisterCfmSizeof(void *msg
)
715 size_t bufferSize
= 2;
717 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 7) */
718 bufferSize
+= 2; /* u16 primitive->interfaceTag */
719 bufferSize
+= 2; /* CsrResult primitive->status */
724 u8
* CsrWifiNmeApWpsRegisterCfmSer(u8
*ptr
, size_t *len
, void *msg
)
726 CsrWifiNmeApWpsRegisterCfm
*primitive
= (CsrWifiNmeApWpsRegisterCfm
*)msg
;
728 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
729 CsrUint16Ser(ptr
, len
, (u16
) primitive
->interfaceTag
);
730 CsrUint16Ser(ptr
, len
, (u16
) primitive
->status
);
735 void* CsrWifiNmeApWpsRegisterCfmDes(u8
*buffer
, size_t length
)
737 CsrWifiNmeApWpsRegisterCfm
*primitive
= kmalloc(sizeof(CsrWifiNmeApWpsRegisterCfm
), GFP_KERNEL
);
741 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
742 CsrUint16Des((u16
*) &primitive
->interfaceTag
, buffer
, &offset
);
743 CsrUint16Des((u16
*) &primitive
->status
, buffer
, &offset
);
749 size_t CsrWifiNmeApStartCfmSizeof(void *msg
)
751 size_t bufferSize
= 2;
753 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 40) */
754 bufferSize
+= 2; /* u16 primitive->interfaceTag */
755 bufferSize
+= 2; /* CsrResult primitive->status */
756 bufferSize
+= 32; /* u8 primitive->ssid.ssid[32] */
757 bufferSize
+= 1; /* u8 primitive->ssid.length */
762 u8
* CsrWifiNmeApStartCfmSer(u8
*ptr
, size_t *len
, void *msg
)
764 CsrWifiNmeApStartCfm
*primitive
= (CsrWifiNmeApStartCfm
*)msg
;
766 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
767 CsrUint16Ser(ptr
, len
, (u16
) primitive
->interfaceTag
);
768 CsrUint16Ser(ptr
, len
, (u16
) primitive
->status
);
769 CsrMemCpySer(ptr
, len
, (const void *) primitive
->ssid
.ssid
, ((u16
) (32)));
770 CsrUint8Ser(ptr
, len
, (u8
) primitive
->ssid
.length
);
775 void* CsrWifiNmeApStartCfmDes(u8
*buffer
, size_t length
)
777 CsrWifiNmeApStartCfm
*primitive
= kmalloc(sizeof(CsrWifiNmeApStartCfm
), GFP_KERNEL
);
781 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
782 CsrUint16Des((u16
*) &primitive
->interfaceTag
, buffer
, &offset
);
783 CsrUint16Des((u16
*) &primitive
->status
, buffer
, &offset
);
784 CsrMemCpyDes(primitive
->ssid
.ssid
, buffer
, &offset
, ((u16
) (32)));
785 CsrUint8Des((u8
*) &primitive
->ssid
.length
, buffer
, &offset
);
791 size_t CsrWifiNmeApStopCfmSizeof(void *msg
)
793 size_t bufferSize
= 2;
795 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 7) */
796 bufferSize
+= 2; /* u16 primitive->interfaceTag */
797 bufferSize
+= 2; /* CsrResult primitive->status */
802 u8
* CsrWifiNmeApStopCfmSer(u8
*ptr
, size_t *len
, void *msg
)
804 CsrWifiNmeApStopCfm
*primitive
= (CsrWifiNmeApStopCfm
*)msg
;
806 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
807 CsrUint16Ser(ptr
, len
, (u16
) primitive
->interfaceTag
);
808 CsrUint16Ser(ptr
, len
, (u16
) primitive
->status
);
813 void* CsrWifiNmeApStopCfmDes(u8
*buffer
, size_t length
)
815 CsrWifiNmeApStopCfm
*primitive
= kmalloc(sizeof(CsrWifiNmeApStopCfm
), GFP_KERNEL
);
819 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
820 CsrUint16Des((u16
*) &primitive
->interfaceTag
, buffer
, &offset
);
821 CsrUint16Des((u16
*) &primitive
->status
, buffer
, &offset
);
827 size_t CsrWifiNmeApStopIndSizeof(void *msg
)
829 size_t bufferSize
= 2;
831 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 8) */
832 bufferSize
+= 2; /* u16 primitive->interfaceTag */
833 bufferSize
+= 1; /* CsrWifiSmeApType primitive->apType */
834 bufferSize
+= 2; /* CsrResult primitive->status */
839 u8
* CsrWifiNmeApStopIndSer(u8
*ptr
, size_t *len
, void *msg
)
841 CsrWifiNmeApStopInd
*primitive
= (CsrWifiNmeApStopInd
*)msg
;
843 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
844 CsrUint16Ser(ptr
, len
, (u16
) primitive
->interfaceTag
);
845 CsrUint8Ser(ptr
, len
, (u8
) primitive
->apType
);
846 CsrUint16Ser(ptr
, len
, (u16
) primitive
->status
);
851 void* CsrWifiNmeApStopIndDes(u8
*buffer
, size_t length
)
853 CsrWifiNmeApStopInd
*primitive
= kmalloc(sizeof(CsrWifiNmeApStopInd
), GFP_KERNEL
);
857 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
858 CsrUint16Des((u16
*) &primitive
->interfaceTag
, buffer
, &offset
);
859 CsrUint8Des((u8
*) &primitive
->apType
, buffer
, &offset
);
860 CsrUint16Des((u16
*) &primitive
->status
, buffer
, &offset
);
866 size_t CsrWifiNmeApStationIndSizeof(void *msg
)
868 size_t bufferSize
= 2;
870 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 18) */
871 bufferSize
+= 2; /* u16 primitive->interfaceTag */
872 bufferSize
+= 1; /* CsrWifiSmeMediaStatus primitive->mediaStatus */
873 bufferSize
+= 6; /* u8 primitive->peerMacAddress.a[6] */
874 bufferSize
+= 6; /* u8 primitive->peerDeviceAddress.a[6] */
879 u8
* CsrWifiNmeApStationIndSer(u8
*ptr
, size_t *len
, void *msg
)
881 CsrWifiNmeApStationInd
*primitive
= (CsrWifiNmeApStationInd
*)msg
;
883 CsrUint16Ser(ptr
, len
, primitive
->common
.type
);
884 CsrUint16Ser(ptr
, len
, (u16
) primitive
->interfaceTag
);
885 CsrUint8Ser(ptr
, len
, (u8
) primitive
->mediaStatus
);
886 CsrMemCpySer(ptr
, len
, (const void *) primitive
->peerMacAddress
.a
, ((u16
) (6)));
887 CsrMemCpySer(ptr
, len
, (const void *) primitive
->peerDeviceAddress
.a
, ((u16
) (6)));
892 void* CsrWifiNmeApStationIndDes(u8
*buffer
, size_t length
)
894 CsrWifiNmeApStationInd
*primitive
= kmalloc(sizeof(CsrWifiNmeApStationInd
), GFP_KERNEL
);
898 CsrUint16Des(&primitive
->common
.type
, buffer
, &offset
);
899 CsrUint16Des((u16
*) &primitive
->interfaceTag
, buffer
, &offset
);
900 CsrUint8Des((u8
*) &primitive
->mediaStatus
, buffer
, &offset
);
901 CsrMemCpyDes(primitive
->peerMacAddress
.a
, buffer
, &offset
, ((u16
) (6)));
902 CsrMemCpyDes(primitive
->peerDeviceAddress
.a
, buffer
, &offset
, ((u16
) (6)));
908 #endif /* CSR_WIFI_NME_ENABLE */
909 #endif /* CSR_WIFI_AP_ENABLE */