Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
csr_wifi_nme_ap_serialize.c
Go to the documentation of this file.
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"
21 
22 void CsrWifiNmeApPfree(void *ptr)
23 {
24  kfree(ptr);
25 }
26 
27 
29 {
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 {
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);
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 
152 {
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  {
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 {
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 {
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  {
287  bufferSize += 1; /* u8 primitive->apCredentials.nmeAuthType.openSystemEmpty.empty */
288  break;
290  bufferSize += 1; /* CsrWifiSmeWepCredentialType primitive->apCredentials.nmeAuthType.authwep.wepKeyType */
291  switch (primitive->apCredentials.nmeAuthType.authwep.wepKeyType)
292  {
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;
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;
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 */
319  {
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;
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  {
374  break;
376  CsrUint8Ser(ptr, len, (u8) primitive->apCredentials.nmeAuthType.authwep.wepKeyType);
377  switch (primitive->apCredentials.nmeAuthType.authwep.wepKeyType)
378  {
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;
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;
405  {
408  CsrMemCpySer(ptr, len, (const void *) primitive->apCredentials.nmeAuthType.authTypePersonal.authPers_credentials.psk.psk, ((u16) (32)));
409  break;
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)));
425  {
426  u16 i3;
427  for (i3 = 0; i3 < primitive->p2pGoParam.operatingChanList.channelEntryListCount; i3++)
428  {
432  {
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 {
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  {
464  CsrUint8Des((u8 *) &primitive->apCredentials.nmeAuthType.openSystemEmpty.empty, buffer, &offset);
465  break;
467  CsrUint8Des((u8 *) &primitive->apCredentials.nmeAuthType.authwep.wepKeyType, buffer, &offset);
468  switch (primitive->apCredentials.nmeAuthType.authwep.wepKeyType)
469  {
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;
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;
491  CsrUint8Des((u8 *) &primitive->apCredentials.nmeAuthType.authTypePersonal.authSupport, buffer, &offset);
492  CsrUint16Des((u16 *) &primitive->apCredentials.nmeAuthType.authTypePersonal.rsnCapabilities, buffer, &offset);
494  CsrUint8Des((u8 *) &primitive->apCredentials.nmeAuthType.authTypePersonal.pskOrPassphrase, buffer, &offset);
496  {
499  CsrMemCpyDes(primitive->apCredentials.nmeAuthType.authTypePersonal.authPers_credentials.psk.psk, buffer, &offset, ((u16) (32)));
500  break;
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);
518  {
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);
528  {
531  }
532  else
533  {
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  {
555  {
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  {
571  }
572  }
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 {
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 */