Commit | Line | Data |
---|---|---|
635d2b00 GKH |
1 | /***************************************************************************** |
2 | ||
3 | (c) Cambridge Silicon Radio Limited 2011 | |
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 | ||
13 | #include "csr_pmem.h" | |
14 | #include "csr_msgconv.h" | |
15 | #include "csr_unicode.h" | |
16 | ||
17 | ||
18 | #include "csr_wifi_router_prim.h" | |
19 | #include "csr_wifi_router_serialize.h" | |
20 | ||
21 | void CsrWifiRouterPfree(void *ptr) | |
22 | { | |
23 | CsrPmemFree(ptr); | |
24 | } | |
25 | ||
26 | ||
27 | CsrSize CsrWifiRouterMaPacketSubscribeReqSizeof(void *msg) | |
28 | { | |
29 | CsrSize bufferSize = 2; | |
30 | ||
31 | /* Calculate the Size of the Serialised Data. Could be more efficient (Try 12) */ | |
8c87f69a | 32 | bufferSize += 2; /* u16 primitive->interfaceTag */ |
635d2b00 | 33 | bufferSize += 1; /* CsrWifiRouterEncapsulation primitive->encapsulation */ |
8c87f69a | 34 | bufferSize += 2; /* u16 primitive->protocol */ |
26a6b2e1 | 35 | bufferSize += 4; /* u32 primitive->oui */ |
635d2b00 GKH |
36 | return bufferSize; |
37 | } | |
38 | ||
39 | ||
7e6f5794 | 40 | u8* CsrWifiRouterMaPacketSubscribeReqSer(u8 *ptr, CsrSize *len, void *msg) |
635d2b00 GKH |
41 | { |
42 | CsrWifiRouterMaPacketSubscribeReq *primitive = (CsrWifiRouterMaPacketSubscribeReq *)msg; | |
43 | *len = 0; | |
44 | CsrUint16Ser(ptr, len, primitive->common.type); | |
8c87f69a | 45 | CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag); |
7e6f5794 | 46 | CsrUint8Ser(ptr, len, (u8) primitive->encapsulation); |
8c87f69a | 47 | CsrUint16Ser(ptr, len, (u16) primitive->protocol); |
26a6b2e1 | 48 | CsrUint32Ser(ptr, len, (u32) primitive->oui); |
635d2b00 GKH |
49 | return(ptr); |
50 | } | |
51 | ||
52 | ||
7e6f5794 | 53 | void* CsrWifiRouterMaPacketSubscribeReqDes(u8 *buffer, CsrSize length) |
635d2b00 GKH |
54 | { |
55 | CsrWifiRouterMaPacketSubscribeReq *primitive = (CsrWifiRouterMaPacketSubscribeReq *) CsrPmemAlloc(sizeof(CsrWifiRouterMaPacketSubscribeReq)); | |
56 | CsrSize offset; | |
57 | offset = 0; | |
58 | ||
59 | CsrUint16Des(&primitive->common.type, buffer, &offset); | |
8c87f69a | 60 | CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset); |
7e6f5794 | 61 | CsrUint8Des((u8 *) &primitive->encapsulation, buffer, &offset); |
8c87f69a | 62 | CsrUint16Des((u16 *) &primitive->protocol, buffer, &offset); |
26a6b2e1 | 63 | CsrUint32Des((u32 *) &primitive->oui, buffer, &offset); |
635d2b00 GKH |
64 | |
65 | return primitive; | |
66 | } | |
67 | ||
68 | ||
69 | CsrSize CsrWifiRouterMaPacketReqSizeof(void *msg) | |
70 | { | |
71 | CsrWifiRouterMaPacketReq *primitive = (CsrWifiRouterMaPacketReq *) msg; | |
72 | CsrSize bufferSize = 2; | |
73 | ||
74 | /* Calculate the Size of the Serialised Data. Could be more efficient (Try 20) */ | |
8c87f69a | 75 | bufferSize += 2; /* u16 primitive->interfaceTag */ |
7e6f5794 | 76 | bufferSize += 1; /* u8 primitive->subscriptionHandle */ |
8c87f69a | 77 | bufferSize += 2; /* u16 primitive->frameLength */ |
7e6f5794 | 78 | bufferSize += primitive->frameLength; /* u8 primitive->frame */ |
635d2b00 GKH |
79 | bufferSize += 4; /* CsrWifiRouterFrameFreeFunction primitive->freeFunction */ |
80 | bufferSize += 2; /* CsrWifiRouterPriority primitive->priority */ | |
26a6b2e1 | 81 | bufferSize += 4; /* u32 primitive->hostTag */ |
5379b13d | 82 | bufferSize += 1; /* u8 primitive->cfmRequested */ |
635d2b00 GKH |
83 | return bufferSize; |
84 | } | |
85 | ||
86 | ||
7e6f5794 | 87 | u8* CsrWifiRouterMaPacketReqSer(u8 *ptr, CsrSize *len, void *msg) |
635d2b00 GKH |
88 | { |
89 | CsrWifiRouterMaPacketReq *primitive = (CsrWifiRouterMaPacketReq *)msg; | |
90 | *len = 0; | |
91 | CsrUint16Ser(ptr, len, primitive->common.type); | |
8c87f69a | 92 | CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag); |
7e6f5794 | 93 | CsrUint8Ser(ptr, len, (u8) primitive->subscriptionHandle); |
8c87f69a | 94 | CsrUint16Ser(ptr, len, (u16) primitive->frameLength); |
635d2b00 GKH |
95 | if (primitive->frameLength) |
96 | { | |
8c87f69a | 97 | CsrMemCpySer(ptr, len, (const void *) primitive->frame, ((u16) (primitive->frameLength))); |
635d2b00 GKH |
98 | } |
99 | CsrUint32Ser(ptr, len, 0); /* Special for Function Pointers... primitive->freeFunction */ | |
8c87f69a | 100 | CsrUint16Ser(ptr, len, (u16) primitive->priority); |
26a6b2e1 | 101 | CsrUint32Ser(ptr, len, (u32) primitive->hostTag); |
7e6f5794 | 102 | CsrUint8Ser(ptr, len, (u8) primitive->cfmRequested); |
635d2b00 GKH |
103 | return(ptr); |
104 | } | |
105 | ||
106 | ||
7e6f5794 | 107 | void* CsrWifiRouterMaPacketReqDes(u8 *buffer, CsrSize length) |
635d2b00 GKH |
108 | { |
109 | CsrWifiRouterMaPacketReq *primitive = (CsrWifiRouterMaPacketReq *) CsrPmemAlloc(sizeof(CsrWifiRouterMaPacketReq)); | |
110 | CsrSize offset; | |
111 | offset = 0; | |
112 | ||
113 | CsrUint16Des(&primitive->common.type, buffer, &offset); | |
8c87f69a | 114 | CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset); |
7e6f5794 | 115 | CsrUint8Des((u8 *) &primitive->subscriptionHandle, buffer, &offset); |
8c87f69a | 116 | CsrUint16Des((u16 *) &primitive->frameLength, buffer, &offset); |
635d2b00 GKH |
117 | if (primitive->frameLength) |
118 | { | |
7e6f5794 | 119 | primitive->frame = (u8 *)CsrPmemAlloc(primitive->frameLength); |
8c87f69a | 120 | CsrMemCpyDes(primitive->frame, buffer, &offset, ((u16) (primitive->frameLength))); |
635d2b00 GKH |
121 | } |
122 | else | |
123 | { | |
124 | primitive->frame = NULL; | |
125 | } | |
126 | primitive->freeFunction = NULL; /* Special for Function Pointers... */ | |
127 | offset += 4; | |
8c87f69a | 128 | CsrUint16Des((u16 *) &primitive->priority, buffer, &offset); |
26a6b2e1 | 129 | CsrUint32Des((u32 *) &primitive->hostTag, buffer, &offset); |
7e6f5794 | 130 | CsrUint8Des((u8 *) &primitive->cfmRequested, buffer, &offset); |
635d2b00 GKH |
131 | |
132 | return primitive; | |
133 | } | |
134 | ||
135 | ||
136 | void CsrWifiRouterMaPacketReqSerFree(void *voidPrimitivePointer) | |
137 | { | |
138 | CsrWifiRouterMaPacketReq *primitive = (CsrWifiRouterMaPacketReq *) voidPrimitivePointer; | |
139 | CsrPmemFree(primitive->frame); | |
140 | CsrPmemFree(primitive); | |
141 | } | |
142 | ||
143 | ||
144 | CsrSize CsrWifiRouterMaPacketResSizeof(void *msg) | |
145 | { | |
146 | CsrSize bufferSize = 2; | |
147 | ||
148 | /* Calculate the Size of the Serialised Data. Could be more efficient (Try 8) */ | |
8c87f69a | 149 | bufferSize += 2; /* u16 primitive->interfaceTag */ |
7e6f5794 | 150 | bufferSize += 1; /* u8 primitive->subscriptionHandle */ |
635d2b00 GKH |
151 | bufferSize += 2; /* CsrResult primitive->result */ |
152 | return bufferSize; | |
153 | } | |
154 | ||
155 | ||
7e6f5794 | 156 | u8* CsrWifiRouterMaPacketResSer(u8 *ptr, CsrSize *len, void *msg) |
635d2b00 GKH |
157 | { |
158 | CsrWifiRouterMaPacketRes *primitive = (CsrWifiRouterMaPacketRes *)msg; | |
159 | *len = 0; | |
160 | CsrUint16Ser(ptr, len, primitive->common.type); | |
8c87f69a | 161 | CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag); |
7e6f5794 | 162 | CsrUint8Ser(ptr, len, (u8) primitive->subscriptionHandle); |
8c87f69a | 163 | CsrUint16Ser(ptr, len, (u16) primitive->result); |
635d2b00 GKH |
164 | return(ptr); |
165 | } | |
166 | ||
167 | ||
7e6f5794 | 168 | void* CsrWifiRouterMaPacketResDes(u8 *buffer, CsrSize length) |
635d2b00 GKH |
169 | { |
170 | CsrWifiRouterMaPacketRes *primitive = (CsrWifiRouterMaPacketRes *) CsrPmemAlloc(sizeof(CsrWifiRouterMaPacketRes)); | |
171 | CsrSize offset; | |
172 | offset = 0; | |
173 | ||
174 | CsrUint16Des(&primitive->common.type, buffer, &offset); | |
8c87f69a | 175 | CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset); |
7e6f5794 | 176 | CsrUint8Des((u8 *) &primitive->subscriptionHandle, buffer, &offset); |
8c87f69a | 177 | CsrUint16Des((u16 *) &primitive->result, buffer, &offset); |
635d2b00 GKH |
178 | |
179 | return primitive; | |
180 | } | |
181 | ||
182 | ||
183 | CsrSize CsrWifiRouterMaPacketCancelReqSizeof(void *msg) | |
184 | { | |
185 | CsrSize bufferSize = 2; | |
186 | ||
187 | /* Calculate the Size of the Serialised Data. Could be more efficient (Try 17) */ | |
8c87f69a | 188 | bufferSize += 2; /* u16 primitive->interfaceTag */ |
26a6b2e1 | 189 | bufferSize += 4; /* u32 primitive->hostTag */ |
635d2b00 | 190 | bufferSize += 2; /* CsrWifiRouterPriority primitive->priority */ |
7e6f5794 | 191 | bufferSize += 6; /* u8 primitive->peerMacAddress.a[6] */ |
635d2b00 GKH |
192 | return bufferSize; |
193 | } | |
194 | ||
195 | ||
7e6f5794 | 196 | u8* CsrWifiRouterMaPacketCancelReqSer(u8 *ptr, CsrSize *len, void *msg) |
635d2b00 GKH |
197 | { |
198 | CsrWifiRouterMaPacketCancelReq *primitive = (CsrWifiRouterMaPacketCancelReq *)msg; | |
199 | *len = 0; | |
200 | CsrUint16Ser(ptr, len, primitive->common.type); | |
8c87f69a | 201 | CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag); |
26a6b2e1 | 202 | CsrUint32Ser(ptr, len, (u32) primitive->hostTag); |
8c87f69a GKH |
203 | CsrUint16Ser(ptr, len, (u16) primitive->priority); |
204 | CsrMemCpySer(ptr, len, (const void *) primitive->peerMacAddress.a, ((u16) (6))); | |
635d2b00 GKH |
205 | return(ptr); |
206 | } | |
207 | ||
208 | ||
7e6f5794 | 209 | void* CsrWifiRouterMaPacketCancelReqDes(u8 *buffer, CsrSize length) |
635d2b00 GKH |
210 | { |
211 | CsrWifiRouterMaPacketCancelReq *primitive = (CsrWifiRouterMaPacketCancelReq *) CsrPmemAlloc(sizeof(CsrWifiRouterMaPacketCancelReq)); | |
212 | CsrSize offset; | |
213 | offset = 0; | |
214 | ||
215 | CsrUint16Des(&primitive->common.type, buffer, &offset); | |
8c87f69a | 216 | CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset); |
26a6b2e1 | 217 | CsrUint32Des((u32 *) &primitive->hostTag, buffer, &offset); |
8c87f69a GKH |
218 | CsrUint16Des((u16 *) &primitive->priority, buffer, &offset); |
219 | CsrMemCpyDes(primitive->peerMacAddress.a, buffer, &offset, ((u16) (6))); | |
635d2b00 GKH |
220 | |
221 | return primitive; | |
222 | } | |
223 | ||
224 | ||
225 | CsrSize CsrWifiRouterMaPacketSubscribeCfmSizeof(void *msg) | |
226 | { | |
227 | CsrSize bufferSize = 2; | |
228 | ||
229 | /* Calculate the Size of the Serialised Data. Could be more efficient (Try 10) */ | |
8c87f69a | 230 | bufferSize += 2; /* u16 primitive->interfaceTag */ |
7e6f5794 | 231 | bufferSize += 1; /* u8 primitive->subscriptionHandle */ |
635d2b00 | 232 | bufferSize += 2; /* CsrResult primitive->status */ |
8c87f69a | 233 | bufferSize += 2; /* u16 primitive->allocOffset */ |
635d2b00 GKH |
234 | return bufferSize; |
235 | } | |
236 | ||
237 | ||
7e6f5794 | 238 | u8* CsrWifiRouterMaPacketSubscribeCfmSer(u8 *ptr, CsrSize *len, void *msg) |
635d2b00 GKH |
239 | { |
240 | CsrWifiRouterMaPacketSubscribeCfm *primitive = (CsrWifiRouterMaPacketSubscribeCfm *)msg; | |
241 | *len = 0; | |
242 | CsrUint16Ser(ptr, len, primitive->common.type); | |
8c87f69a | 243 | CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag); |
7e6f5794 | 244 | CsrUint8Ser(ptr, len, (u8) primitive->subscriptionHandle); |
8c87f69a GKH |
245 | CsrUint16Ser(ptr, len, (u16) primitive->status); |
246 | CsrUint16Ser(ptr, len, (u16) primitive->allocOffset); | |
635d2b00 GKH |
247 | return(ptr); |
248 | } | |
249 | ||
250 | ||
7e6f5794 | 251 | void* CsrWifiRouterMaPacketSubscribeCfmDes(u8 *buffer, CsrSize length) |
635d2b00 GKH |
252 | { |
253 | CsrWifiRouterMaPacketSubscribeCfm *primitive = (CsrWifiRouterMaPacketSubscribeCfm *) CsrPmemAlloc(sizeof(CsrWifiRouterMaPacketSubscribeCfm)); | |
254 | CsrSize offset; | |
255 | offset = 0; | |
256 | ||
257 | CsrUint16Des(&primitive->common.type, buffer, &offset); | |
8c87f69a | 258 | CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset); |
7e6f5794 | 259 | CsrUint8Des((u8 *) &primitive->subscriptionHandle, buffer, &offset); |
8c87f69a GKH |
260 | CsrUint16Des((u16 *) &primitive->status, buffer, &offset); |
261 | CsrUint16Des((u16 *) &primitive->allocOffset, buffer, &offset); | |
635d2b00 GKH |
262 | |
263 | return primitive; | |
264 | } | |
265 | ||
266 | ||
267 | CsrSize CsrWifiRouterMaPacketUnsubscribeCfmSizeof(void *msg) | |
268 | { | |
269 | CsrSize bufferSize = 2; | |
270 | ||
271 | /* Calculate the Size of the Serialised Data. Could be more efficient (Try 7) */ | |
8c87f69a | 272 | bufferSize += 2; /* u16 primitive->interfaceTag */ |
635d2b00 GKH |
273 | bufferSize += 2; /* CsrResult primitive->status */ |
274 | return bufferSize; | |
275 | } | |
276 | ||
277 | ||
7e6f5794 | 278 | u8* CsrWifiRouterMaPacketUnsubscribeCfmSer(u8 *ptr, CsrSize *len, void *msg) |
635d2b00 GKH |
279 | { |
280 | CsrWifiRouterMaPacketUnsubscribeCfm *primitive = (CsrWifiRouterMaPacketUnsubscribeCfm *)msg; | |
281 | *len = 0; | |
282 | CsrUint16Ser(ptr, len, primitive->common.type); | |
8c87f69a GKH |
283 | CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag); |
284 | CsrUint16Ser(ptr, len, (u16) primitive->status); | |
635d2b00 GKH |
285 | return(ptr); |
286 | } | |
287 | ||
288 | ||
7e6f5794 | 289 | void* CsrWifiRouterMaPacketUnsubscribeCfmDes(u8 *buffer, CsrSize length) |
635d2b00 GKH |
290 | { |
291 | CsrWifiRouterMaPacketUnsubscribeCfm *primitive = (CsrWifiRouterMaPacketUnsubscribeCfm *) CsrPmemAlloc(sizeof(CsrWifiRouterMaPacketUnsubscribeCfm)); | |
292 | CsrSize offset; | |
293 | offset = 0; | |
294 | ||
295 | CsrUint16Des(&primitive->common.type, buffer, &offset); | |
8c87f69a GKH |
296 | CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset); |
297 | CsrUint16Des((u16 *) &primitive->status, buffer, &offset); | |
635d2b00 GKH |
298 | |
299 | return primitive; | |
300 | } | |
301 | ||
302 | ||
303 | CsrSize CsrWifiRouterMaPacketCfmSizeof(void *msg) | |
304 | { | |
305 | CsrSize bufferSize = 2; | |
306 | ||
307 | /* Calculate the Size of the Serialised Data. Could be more efficient (Try 13) */ | |
8c87f69a | 308 | bufferSize += 2; /* u16 primitive->interfaceTag */ |
635d2b00 | 309 | bufferSize += 2; /* CsrResult primitive->result */ |
26a6b2e1 | 310 | bufferSize += 4; /* u32 primitive->hostTag */ |
8c87f69a | 311 | bufferSize += 2; /* u16 primitive->rate */ |
635d2b00 GKH |
312 | return bufferSize; |
313 | } | |
314 | ||
315 | ||
7e6f5794 | 316 | u8* CsrWifiRouterMaPacketCfmSer(u8 *ptr, CsrSize *len, void *msg) |
635d2b00 GKH |
317 | { |
318 | CsrWifiRouterMaPacketCfm *primitive = (CsrWifiRouterMaPacketCfm *)msg; | |
319 | *len = 0; | |
320 | CsrUint16Ser(ptr, len, primitive->common.type); | |
8c87f69a GKH |
321 | CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag); |
322 | CsrUint16Ser(ptr, len, (u16) primitive->result); | |
26a6b2e1 | 323 | CsrUint32Ser(ptr, len, (u32) primitive->hostTag); |
8c87f69a | 324 | CsrUint16Ser(ptr, len, (u16) primitive->rate); |
635d2b00 GKH |
325 | return(ptr); |
326 | } | |
327 | ||
328 | ||
7e6f5794 | 329 | void* CsrWifiRouterMaPacketCfmDes(u8 *buffer, CsrSize length) |
635d2b00 GKH |
330 | { |
331 | CsrWifiRouterMaPacketCfm *primitive = (CsrWifiRouterMaPacketCfm *) CsrPmemAlloc(sizeof(CsrWifiRouterMaPacketCfm)); | |
332 | CsrSize offset; | |
333 | offset = 0; | |
334 | ||
335 | CsrUint16Des(&primitive->common.type, buffer, &offset); | |
8c87f69a GKH |
336 | CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset); |
337 | CsrUint16Des((u16 *) &primitive->result, buffer, &offset); | |
26a6b2e1 | 338 | CsrUint32Des((u32 *) &primitive->hostTag, buffer, &offset); |
8c87f69a | 339 | CsrUint16Des((u16 *) &primitive->rate, buffer, &offset); |
635d2b00 GKH |
340 | |
341 | return primitive; | |
342 | } | |
343 | ||
344 | ||
345 | CsrSize CsrWifiRouterMaPacketIndSizeof(void *msg) | |
346 | { | |
347 | CsrWifiRouterMaPacketInd *primitive = (CsrWifiRouterMaPacketInd *) msg; | |
348 | CsrSize bufferSize = 2; | |
349 | ||
350 | /* Calculate the Size of the Serialised Data. Could be more efficient (Try 21) */ | |
8c87f69a | 351 | bufferSize += 2; /* u16 primitive->interfaceTag */ |
7e6f5794 | 352 | bufferSize += 1; /* u8 primitive->subscriptionHandle */ |
635d2b00 | 353 | bufferSize += 2; /* CsrResult primitive->result */ |
8c87f69a | 354 | bufferSize += 2; /* u16 primitive->frameLength */ |
7e6f5794 | 355 | bufferSize += primitive->frameLength; /* u8 primitive->frame */ |
635d2b00 | 356 | bufferSize += 4; /* CsrWifiRouterFrameFreeFunction primitive->freeFunction */ |
ab2b8c73 GKH |
357 | bufferSize += 2; /* s16 primitive->rssi */ |
358 | bufferSize += 2; /* s16 primitive->snr */ | |
8c87f69a | 359 | bufferSize += 2; /* u16 primitive->rate */ |
635d2b00 GKH |
360 | return bufferSize; |
361 | } | |
362 | ||
363 | ||
7e6f5794 | 364 | u8* CsrWifiRouterMaPacketIndSer(u8 *ptr, CsrSize *len, void *msg) |
635d2b00 GKH |
365 | { |
366 | CsrWifiRouterMaPacketInd *primitive = (CsrWifiRouterMaPacketInd *)msg; | |
367 | *len = 0; | |
368 | CsrUint16Ser(ptr, len, primitive->common.type); | |
8c87f69a | 369 | CsrUint16Ser(ptr, len, (u16) primitive->interfaceTag); |
7e6f5794 | 370 | CsrUint8Ser(ptr, len, (u8) primitive->subscriptionHandle); |
8c87f69a GKH |
371 | CsrUint16Ser(ptr, len, (u16) primitive->result); |
372 | CsrUint16Ser(ptr, len, (u16) primitive->frameLength); | |
635d2b00 GKH |
373 | if (primitive->frameLength) |
374 | { | |
8c87f69a | 375 | CsrMemCpySer(ptr, len, (const void *) primitive->frame, ((u16) (primitive->frameLength))); |
635d2b00 GKH |
376 | } |
377 | CsrUint32Ser(ptr, len, 0); /* Special for Function Pointers... primitive->freeFunction */ | |
8c87f69a GKH |
378 | CsrUint16Ser(ptr, len, (u16) primitive->rssi); |
379 | CsrUint16Ser(ptr, len, (u16) primitive->snr); | |
380 | CsrUint16Ser(ptr, len, (u16) primitive->rate); | |
635d2b00 GKH |
381 | return(ptr); |
382 | } | |
383 | ||
384 | ||
7e6f5794 | 385 | void* CsrWifiRouterMaPacketIndDes(u8 *buffer, CsrSize length) |
635d2b00 GKH |
386 | { |
387 | CsrWifiRouterMaPacketInd *primitive = (CsrWifiRouterMaPacketInd *) CsrPmemAlloc(sizeof(CsrWifiRouterMaPacketInd)); | |
388 | CsrSize offset; | |
389 | offset = 0; | |
390 | ||
391 | CsrUint16Des(&primitive->common.type, buffer, &offset); | |
8c87f69a | 392 | CsrUint16Des((u16 *) &primitive->interfaceTag, buffer, &offset); |
7e6f5794 | 393 | CsrUint8Des((u8 *) &primitive->subscriptionHandle, buffer, &offset); |
8c87f69a GKH |
394 | CsrUint16Des((u16 *) &primitive->result, buffer, &offset); |
395 | CsrUint16Des((u16 *) &primitive->frameLength, buffer, &offset); | |
635d2b00 GKH |
396 | if (primitive->frameLength) |
397 | { | |
7e6f5794 | 398 | primitive->frame = (u8 *)CsrPmemAlloc(primitive->frameLength); |
8c87f69a | 399 | CsrMemCpyDes(primitive->frame, buffer, &offset, ((u16) (primitive->frameLength))); |
635d2b00 GKH |
400 | } |
401 | else | |
402 | { | |
403 | primitive->frame = NULL; | |
404 | } | |
405 | primitive->freeFunction = NULL; /* Special for Function Pointers... */ | |
406 | offset += 4; | |
8c87f69a GKH |
407 | CsrUint16Des((u16 *) &primitive->rssi, buffer, &offset); |
408 | CsrUint16Des((u16 *) &primitive->snr, buffer, &offset); | |
409 | CsrUint16Des((u16 *) &primitive->rate, buffer, &offset); | |
635d2b00 GKH |
410 | |
411 | return primitive; | |
412 | } | |
413 | ||
414 | ||
415 | void CsrWifiRouterMaPacketIndSerFree(void *voidPrimitivePointer) | |
416 | { | |
417 | CsrWifiRouterMaPacketInd *primitive = (CsrWifiRouterMaPacketInd *) voidPrimitivePointer; | |
418 | CsrPmemFree(primitive->frame); | |
419 | CsrPmemFree(primitive); | |
420 | } | |
421 | ||
422 |