spi: Use dev_get_drvdata at appropriate places
[deliverable/linux.git] / drivers / staging / csr / csr_wifi_nme_ap_serialize.c
1 /*****************************************************************************
2
3 (c) Cambridge Silicon Radio Limited 2012
4 All rights reserved and confidential information of CSR
5
6 Refer to LICENSE.txt included with this source for details
7 on the license terms.
8
9 *****************************************************************************/
10
11 /* Note: this is an auto-generated file. */
12 #include <linux/string.h>
13 #include <linux/slab.h>
14 #include "csr_msgconv.h"
15
16 #ifdef CSR_WIFI_NME_ENABLE
17 #ifdef CSR_WIFI_AP_ENABLE
18
19 #include "csr_wifi_nme_ap_prim.h"
20 #include "csr_wifi_nme_ap_serialize.h"
21
22 void CsrWifiNmeApPfree(void *ptr)
23 {
24 kfree(ptr);
25 }
26
27
28 size_t CsrWifiNmeApConfigSetReqSizeof(void *msg)
29 {
30 CsrWifiNmeApConfigSetReq *primitive = (CsrWifiNmeApConfigSetReq *) msg;
31 size_t bufferSize = 2;
32
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 */
49 {
50 u16 i2;
51 for (i2 = 0; i2 < 4; i2++)
52 {
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 */
58 }
59 }
60 {
61 u16 i2;
62 for (i2 = 0; i2 < 4; i2++)
63 {
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 */
69 }
70 }
71 bufferSize += 1; /* CsrWifiSmeApAccessType primitive->apMacConfig.accessType */
72 bufferSize += 1; /* u8 primitive->apMacConfig.macAddressListCount */
73 {
74 u16 i2;
75 for (i2 = 0; i2 < primitive->apMacConfig.macAddressListCount; i2++)
76 {
77 bufferSize += 6; /* u8 primitive->apMacConfig.macAddressList[i2].a[6] */
78 }
79 }
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 */
86 return bufferSize;
87 }
88
89
90 u8* CsrWifiNmeApConfigSetReqSer(u8 *ptr, size_t *len, void *msg)
91 {
92 CsrWifiNmeApConfigSetReq *primitive = (CsrWifiNmeApConfigSetReq *)msg;
93 *len = 0;
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);
110 {
111 u16 i2;
112 for (i2 = 0; i2 < 4; i2++)
113 {
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);
119 }
120 }
121 {
122 u16 i2;
123 for (i2 = 0; i2 < 4; i2++)
124 {
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);
130 }
131 }
132 CsrUint8Ser(ptr, len, (u8) primitive->apMacConfig.accessType);
133 CsrUint8Ser(ptr, len, (u8) primitive->apMacConfig.macAddressListCount);
134 {
135 u16 i2;
136 for (i2 = 0; i2 < primitive->apMacConfig.macAddressListCount; i2++)
137 {
138 CsrMemCpySer(ptr, len, (const void *) primitive->apMacConfig.macAddressList[i2].a, ((u16) (6)));
139 }
140 }
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);
147 return(ptr);
148 }
149
150
151 void* CsrWifiNmeApConfigSetReqDes(u8 *buffer, size_t length)
152 {
153 CsrWifiNmeApConfigSetReq *primitive = kmalloc(sizeof(CsrWifiNmeApConfigSetReq), GFP_KERNEL);
154 size_t offset;
155 offset = 0;
156
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);
173 {
174 u16 i2;
175 for (i2 = 0; i2 < 4; i2++)
176 {
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);
182 }
183 }
184 {
185 u16 i2;
186 for (i2 = 0; i2 < 4; i2++)
187 {
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);
193 }
194 }
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)
199 {
200 primitive->apMacConfig.macAddressList = kmalloc(sizeof(CsrWifiMacAddress) * primitive->apMacConfig.macAddressListCount, GFP_KERNEL);
201 }
202 {
203 u16 i2;
204 for (i2 = 0; i2 < primitive->apMacConfig.macAddressListCount; i2++)
205 {
206 CsrMemCpyDes(primitive->apMacConfig.macAddressList[i2].a, buffer, &offset, ((u16) (6)));
207 }
208 }
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);
215
216 return primitive;
217 }
218
219
220 void CsrWifiNmeApConfigSetReqSerFree(void *voidPrimitivePointer)
221 {
222 CsrWifiNmeApConfigSetReq *primitive = (CsrWifiNmeApConfigSetReq *) voidPrimitivePointer;
223 kfree(primitive->apMacConfig.macAddressList);
224 kfree(primitive);
225 }
226
227
228 size_t CsrWifiNmeApWpsRegisterReqSizeof(void *msg)
229 {
230 size_t bufferSize = 2;
231
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] */
237 return bufferSize;
238 }
239
240
241 u8* CsrWifiNmeApWpsRegisterReqSer(u8 *ptr, size_t *len, void *msg)
242 {
243 CsrWifiNmeApWpsRegisterReq *primitive = (CsrWifiNmeApWpsRegisterReq *)msg;
244 *len = 0;
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)));
250 return(ptr);
251 }
252
253
254 void* CsrWifiNmeApWpsRegisterReqDes(u8 *buffer, size_t length)
255 {
256 CsrWifiNmeApWpsRegisterReq *primitive = kmalloc(sizeof(CsrWifiNmeApWpsRegisterReq), GFP_KERNEL);
257 size_t offset;
258 offset = 0;
259
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)));
265
266 return primitive;
267 }
268
269
270 size_t CsrWifiNmeApStartReqSizeof(void *msg)
271 {
272 CsrWifiNmeApStartReq *primitive = (CsrWifiNmeApStartReq *) msg;
273 size_t bufferSize = 2;
274
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)
285 {
286 case CSR_WIFI_SME_AP_AUTH_TYPE_OPEN_SYSTEM:
287 bufferSize += 1; /* u8 primitive->apCredentials.nmeAuthType.openSystemEmpty.empty */
288 break;
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)
292 {
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] */
300 break;
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] */
308 break;
309 default:
310 break;
311 }
312 break;
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)
319 {
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] */
323 break;
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) */
327 break;
328 default:
329 break;
330 }
331 break;
332 default:
333 break;
334 }
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 */
339 {
340 u16 i3;
341 for (i3 = 0; i3 < primitive->p2pGoParam.operatingChanList.channelEntryListCount; i3++)
342 {
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 */
346 }
347 }
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 */
353 return bufferSize;
354 }
355
356
357 u8* CsrWifiNmeApStartReqSer(u8 *ptr, size_t *len, void *msg)
358 {
359 CsrWifiNmeApStartReq *primitive = (CsrWifiNmeApStartReq *)msg;
360 *len = 0;
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)
371 {
372 case CSR_WIFI_SME_AP_AUTH_TYPE_OPEN_SYSTEM:
373 CsrUint8Ser(ptr, len, (u8) primitive->apCredentials.nmeAuthType.openSystemEmpty.empty);
374 break;
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)
378 {
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)));
386 break;
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)));
394 break;
395 default:
396 break;
397 }
398 break;
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)
405 {
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)));
409 break;
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);
413 break;
414 default:
415 break;
416 }
417 break;
418 default:
419 break;
420 }
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);
425 {
426 u16 i3;
427 for (i3 = 0; i3 < primitive->p2pGoParam.operatingChanList.channelEntryListCount; i3++)
428 {
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)
432 {
433 CsrMemCpySer(ptr, len, (const void *) primitive->p2pGoParam.operatingChanList.channelEntryList[i3].operatingChannel, ((u16) (primitive->p2pGoParam.operatingChanList.channelEntryList[i3].operatingChannelCount)));
434 }
435 }
436 }
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);
442 return(ptr);
443 }
444
445
446 void* CsrWifiNmeApStartReqDes(u8 *buffer, size_t length)
447 {
448 CsrWifiNmeApStartReq *primitive = kmalloc(sizeof(CsrWifiNmeApStartReq), GFP_KERNEL);
449 size_t offset;
450 offset = 0;
451
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)
462 {
463 case CSR_WIFI_SME_AP_AUTH_TYPE_OPEN_SYSTEM:
464 CsrUint8Des((u8 *) &primitive->apCredentials.nmeAuthType.openSystemEmpty.empty, buffer, &offset);
465 break;
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)
469 {
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)));
477 break;
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)));
485 break;
486 default:
487 break;
488 }
489 break;
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)
496 {
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)));
500 break;
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);
504 break;
505 default:
506 break;
507 }
508 break;
509 default:
510 break;
511 }
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)
518 {
519 primitive->p2pGoParam.operatingChanList.channelEntryList = kmalloc(sizeof(CsrWifiSmeApP2pOperatingChanEntry) * primitive->p2pGoParam.operatingChanList.channelEntryListCount, GFP_KERNEL);
520 }
521 {
522 u16 i3;
523 for (i3 = 0; i3 < primitive->p2pGoParam.operatingChanList.channelEntryListCount; i3++)
524 {
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)
528 {
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)));
531 }
532 else
533 {
534 primitive->p2pGoParam.operatingChanList.channelEntryList[i3].operatingChannel = NULL;
535 }
536 }
537 }
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);
543
544 return primitive;
545 }
546
547
548 void CsrWifiNmeApStartReqSerFree(void *voidPrimitivePointer)
549 {
550 CsrWifiNmeApStartReq *primitive = (CsrWifiNmeApStartReq *) voidPrimitivePointer;
551 switch (primitive->apCredentials.authType)
552 {
553 case CSR_WIFI_SME_AP_AUTH_TYPE_PERSONAL:
554 switch (primitive->apCredentials.nmeAuthType.authTypePersonal.pskOrPassphrase)
555 {
556 case CSR_WIFI_NME_AP_CREDENTIAL_TYPE_PASSPHRASE:
557 kfree(primitive->apCredentials.nmeAuthType.authTypePersonal.authPers_credentials.passphrase.passphrase);
558 break;
559 default:
560 break;
561 }
562 break;
563 default:
564 break;
565 }
566 {
567 u16 i3;
568 for (i3 = 0; i3 < primitive->p2pGoParam.operatingChanList.channelEntryListCount; i3++)
569 {
570 kfree(primitive->p2pGoParam.operatingChanList.channelEntryList[i3].operatingChannel);
571 }
572 }
573 kfree(primitive->p2pGoParam.operatingChanList.channelEntryList);
574 kfree(primitive);
575 }
576
577
578 size_t CsrWifiNmeApWmmParamUpdateReqSizeof(void *msg)
579 {
580 size_t bufferSize = 2;
581
582 /* Calculate the Size of the Serialised Data. Could be more efficient (Try 51) */
583 {
584 u16 i1;
585 for (i1 = 0; i1 < 4; i1++)
586 {
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 */
592 }
593 }
594 {
595 u16 i1;
596 for (i1 = 0; i1 < 4; i1++)
597 {
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 */
603 }
604 }
605 return bufferSize;
606 }
607
608
609 u8* CsrWifiNmeApWmmParamUpdateReqSer(u8 *ptr, size_t *len, void *msg)
610 {
611 CsrWifiNmeApWmmParamUpdateReq *primitive = (CsrWifiNmeApWmmParamUpdateReq *)msg;
612 *len = 0;
613 CsrUint16Ser(ptr, len, primitive->common.type);
614 {
615 u16 i1;
616 for (i1 = 0; i1 < 4; i1++)
617 {
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);
623 }
624 }
625 {
626 u16 i1;
627 for (i1 = 0; i1 < 4; i1++)
628 {
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);
634 }
635 }
636 return(ptr);
637 }
638
639
640 void* CsrWifiNmeApWmmParamUpdateReqDes(u8 *buffer, size_t length)
641 {
642 CsrWifiNmeApWmmParamUpdateReq *primitive = kmalloc(sizeof(CsrWifiNmeApWmmParamUpdateReq), GFP_KERNEL);
643 size_t offset;
644 offset = 0;
645
646 CsrUint16Des(&primitive->common.type, buffer, &offset);
647 {
648 u16 i1;
649 for (i1 = 0; i1 < 4; i1++)
650 {
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);
656 }
657 }
658 {
659 u16 i1;
660 for (i1 = 0; i1 < 4; i1++)
661 {
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);
667 }
668 }
669
670 return primitive;
671 }
672
673
674 size_t CsrWifiNmeApStaRemoveReqSizeof(void *msg)
675 {
676 size_t bufferSize = 2;
677
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 */
682 return bufferSize;
683 }
684
685
686 u8* CsrWifiNmeApStaRemoveReqSer(u8 *ptr, size_t *len, void *msg)
687 {
688 CsrWifiNmeApStaRemoveReq *primitive = (CsrWifiNmeApStaRemoveReq *)msg;
689 *len = 0;
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);
694 return(ptr);
695 }
696
697
698 void* CsrWifiNmeApStaRemoveReqDes(u8 *buffer, size_t length)
699 {
700 CsrWifiNmeApStaRemoveReq *primitive = kmalloc(sizeof(CsrWifiNmeApStaRemoveReq), GFP_KERNEL);
701 size_t offset;
702 offset = 0;
703
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);
708
709 return primitive;
710 }
711
712
713 size_t CsrWifiNmeApWpsRegisterCfmSizeof(void *msg)
714 {
715 size_t bufferSize = 2;
716
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 */
720 return bufferSize;
721 }
722
723
724 u8* CsrWifiNmeApWpsRegisterCfmSer(u8 *ptr, size_t *len, void *msg)
725 {
726 CsrWifiNmeApWpsRegisterCfm *primitive = (CsrWifiNmeApWpsRegisterCfm *)msg;
727 *len = 0;
728 CsrUint16Ser(ptr, len, primitive->common.type);
729 CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
730 CsrUint16Ser(ptr, len, (u16) primitive->status);
731 return(ptr);
732 }
733
734
735 void* CsrWifiNmeApWpsRegisterCfmDes(u8 *buffer, size_t length)
736 {
737 CsrWifiNmeApWpsRegisterCfm *primitive = kmalloc(sizeof(CsrWifiNmeApWpsRegisterCfm), GFP_KERNEL);
738 size_t offset;
739 offset = 0;
740
741 CsrUint16Des(&primitive->common.type, buffer, &offset);
742 CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
743 CsrUint16Des((u16 *) &primitive->status, buffer, &offset);
744
745 return primitive;
746 }
747
748
749 size_t CsrWifiNmeApStartCfmSizeof(void *msg)
750 {
751 size_t bufferSize = 2;
752
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 */
758 return bufferSize;
759 }
760
761
762 u8* CsrWifiNmeApStartCfmSer(u8 *ptr, size_t *len, void *msg)
763 {
764 CsrWifiNmeApStartCfm *primitive = (CsrWifiNmeApStartCfm *)msg;
765 *len = 0;
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);
771 return(ptr);
772 }
773
774
775 void* CsrWifiNmeApStartCfmDes(u8 *buffer, size_t length)
776 {
777 CsrWifiNmeApStartCfm *primitive = kmalloc(sizeof(CsrWifiNmeApStartCfm), GFP_KERNEL);
778 size_t offset;
779 offset = 0;
780
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);
786
787 return primitive;
788 }
789
790
791 size_t CsrWifiNmeApStopCfmSizeof(void *msg)
792 {
793 size_t bufferSize = 2;
794
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 */
798 return bufferSize;
799 }
800
801
802 u8* CsrWifiNmeApStopCfmSer(u8 *ptr, size_t *len, void *msg)
803 {
804 CsrWifiNmeApStopCfm *primitive = (CsrWifiNmeApStopCfm *)msg;
805 *len = 0;
806 CsrUint16Ser(ptr, len, primitive->common.type);
807 CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag);
808 CsrUint16Ser(ptr, len, (u16) primitive->status);
809 return(ptr);
810 }
811
812
813 void* CsrWifiNmeApStopCfmDes(u8 *buffer, size_t length)
814 {
815 CsrWifiNmeApStopCfm *primitive = kmalloc(sizeof(CsrWifiNmeApStopCfm), GFP_KERNEL);
816 size_t offset;
817 offset = 0;
818
819 CsrUint16Des(&primitive->common.type, buffer, &offset);
820 CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset);
821 CsrUint16Des((u16 *) &primitive->status, buffer, &offset);
822
823 return primitive;
824 }
825
826
827 size_t CsrWifiNmeApStopIndSizeof(void *msg)
828 {
829 size_t bufferSize = 2;
830
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 */
835 return bufferSize;
836 }
837
838
839 u8* CsrWifiNmeApStopIndSer(u8 *ptr, size_t *len, void *msg)
840 {
841 CsrWifiNmeApStopInd *primitive = (CsrWifiNmeApStopInd *)msg;
842 *len = 0;
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);
847 return(ptr);
848 }
849
850
851 void* CsrWifiNmeApStopIndDes(u8 *buffer, size_t length)
852 {
853 CsrWifiNmeApStopInd *primitive = kmalloc(sizeof(CsrWifiNmeApStopInd), GFP_KERNEL);
854 size_t offset;
855 offset = 0;
856
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);
861
862 return primitive;
863 }
864
865
866 size_t CsrWifiNmeApStationIndSizeof(void *msg)
867 {
868 size_t bufferSize = 2;
869
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] */
875 return bufferSize;
876 }
877
878
879 u8* CsrWifiNmeApStationIndSer(u8 *ptr, size_t *len, void *msg)
880 {
881 CsrWifiNmeApStationInd *primitive = (CsrWifiNmeApStationInd *)msg;
882 *len = 0;
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)));
888 return(ptr);
889 }
890
891
892 void* CsrWifiNmeApStationIndDes(u8 *buffer, size_t length)
893 {
894 CsrWifiNmeApStationInd *primitive = kmalloc(sizeof(CsrWifiNmeApStationInd), GFP_KERNEL);
895 size_t offset;
896 offset = 0;
897
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)));
903
904 return primitive;
905 }
906
907
908 #endif /* CSR_WIFI_NME_ENABLE */
909 #endif /* CSR_WIFI_AP_ENABLE */
This page took 0.055082 seconds and 5 git commands to generate.