27 LARc[0] = sr & 0x3f; sr >>= 6;
29 LARc[1] = sr & 0x3f; sr >>= 6;
31 LARc[2] = sr & 0x1f; sr >>= 5;
32 LARc[3] = sr & 0x1f; sr >>= 5;
34 LARc[4] = sr & 0xf; sr >>= 4;
35 LARc[5] = sr & 0xf; sr >>= 4;
37 LARc[6] = sr & 0x7; sr >>= 3;
38 LARc[7] = sr & 0x7; sr >>= 3;
40 Nc[0] = sr & 0x7f; sr >>= 7;
41 bc[0] = sr & 0x3; sr >>= 2;
42 Mc[0] = sr & 0x3; sr >>= 2;
44 xmaxc[0] = sr & 0x3f; sr >>= 6;
45 xmc[0] = sr & 0x7; sr >>= 3;
47 xmc[1] = sr & 0x7; sr >>= 3;
48 xmc[2] = sr & 0x7; sr >>= 3;
50 xmc[3] = sr & 0x7; sr >>= 3;
51 xmc[4] = sr & 0x7; sr >>= 3;
52 xmc[5] = sr & 0x7; sr >>= 3;
54 xmc[6] = sr & 0x7; sr >>= 3;
55 xmc[7] = sr & 0x7; sr >>= 3;
56 xmc[8] = sr & 0x7; sr >>= 3;
58 xmc[9] = sr & 0x7; sr >>= 3;
59 xmc[10] = sr & 0x7; sr >>= 3;
61 xmc[11] = sr & 0x7; sr >>= 3;
62 xmc[12] = sr & 0x7; sr >>= 3;
64 Nc[1] = sr & 0x7f; sr >>= 7;
65 bc[1] = sr & 0x3; sr >>= 2;
66 Mc[1] = sr & 0x3; sr >>= 2;
68 xmaxc[1] = sr & 0x3f; sr >>= 6;
69 xmc[13] = sr & 0x7; sr >>= 3;
71 xmc[14] = sr & 0x7; sr >>= 3;
72 xmc[15] = sr & 0x7; sr >>= 3;
74 xmc[16] = sr & 0x7; sr >>= 3;
75 xmc[17] = sr & 0x7; sr >>= 3;
76 xmc[18] = sr & 0x7; sr >>= 3;
78 xmc[19] = sr & 0x7; sr >>= 3;
79 xmc[20] = sr & 0x7; sr >>= 3;
80 xmc[21] = sr & 0x7; sr >>= 3;
82 xmc[22] = sr & 0x7; sr >>= 3;
83 xmc[23] = sr & 0x7; sr >>= 3;
85 xmc[24] = sr & 0x7; sr >>= 3;
86 xmc[25] = sr & 0x7; sr >>= 3;
88 Nc[2] = sr & 0x7f; sr >>= 7;
89 bc[2] = sr & 0x3; sr >>= 2;
90 Mc[2] = sr & 0x3; sr >>= 2;
92 xmaxc[2] = sr & 0x3f; sr >>= 6;
93 xmc[26] = sr & 0x7; sr >>= 3;
95 xmc[27] = sr & 0x7; sr >>= 3;
96 xmc[28] = sr & 0x7; sr >>= 3;
98 xmc[29] = sr & 0x7; sr >>= 3;
99 xmc[30] = sr & 0x7; sr >>= 3;
100 xmc[31] = sr & 0x7; sr >>= 3;
102 xmc[32] = sr & 0x7; sr >>= 3;
103 xmc[33] = sr & 0x7; sr >>= 3;
104 xmc[34] = sr & 0x7; sr >>= 3;
106 xmc[35] = sr & 0x7; sr >>= 3;
107 xmc[36] = sr & 0x7; sr >>= 3;
109 xmc[37] = sr & 0x7; sr >>= 3;
110 xmc[38] = sr & 0x7; sr >>= 3;
112 Nc[3] = sr & 0x7f; sr >>= 7;
113 bc[3] = sr & 0x3; sr >>= 2;
114 Mc[3] = sr & 0x3; sr >>= 2;
116 xmaxc[3] = sr & 0x3f; sr >>= 6;
117 xmc[39] = sr & 0x7; sr >>= 3;
119 xmc[40] = sr & 0x7; sr >>= 3;
120 xmc[41] = sr & 0x7; sr >>= 3;
122 xmc[42] = sr & 0x7; sr >>= 3;
123 xmc[43] = sr & 0x7; sr >>= 3;
124 xmc[44] = sr & 0x7; sr >>= 3;
126 xmc[45] = sr & 0x7; sr >>= 3;
127 xmc[46] = sr & 0x7; sr >>= 3;
128 xmc[47] = sr & 0x7; sr >>= 3;
130 xmc[48] = sr & 0x7; sr >>= 3;
131 xmc[49] = sr & 0x7; sr >>= 3;
133 xmc[50] = sr & 0x7; sr >>= 3;
134 xmc[51] = sr & 0x7; sr >>= 3;
141 LARc[0] = sr & 0x3f; sr >>= 6;
142 LARc[1] = sr & 0x3f; sr >>= 6;
144 LARc[2] = sr & 0x1f; sr >>= 5;
146 LARc[3] = sr & 0x1f; sr >>= 5;
147 LARc[4] = sr & 0xf; sr >>= 4;
149 LARc[5] = sr & 0xf; sr >>= 4;
150 LARc[6] = sr & 0x7; sr >>= 3;
151 LARc[7] = sr & 0x7; sr >>= 3;
153 Nc[0] = sr & 0x7f; sr >>= 7;
155 bc[0] = sr & 0x3; sr >>= 2;
156 Mc[0] = sr & 0x3; sr >>= 2;
158 xmaxc[0] = sr & 0x3f; sr >>= 6;
159 xmc[0] = sr & 0x7; sr >>= 3;
160 xmc[1] = sr & 0x7; sr >>= 3;
162 xmc[2] = sr & 0x7; sr >>= 3;
163 xmc[3] = sr & 0x7; sr >>= 3;
164 xmc[4] = sr & 0x7; sr >>= 3;
166 xmc[5] = sr & 0x7; sr >>= 3;
167 xmc[6] = sr & 0x7; sr >>= 3;
169 xmc[7] = sr & 0x7; sr >>= 3;
170 xmc[8] = sr & 0x7; sr >>= 3;
171 xmc[9] = sr & 0x7; sr >>= 3;
173 xmc[10] = sr & 0x7; sr >>= 3;
174 xmc[11] = sr & 0x7; sr >>= 3;
175 xmc[12] = sr & 0x7; sr >>= 3;
177 Nc[1] = sr & 0x7f; sr >>= 7;
179 bc[1] = sr & 0x3; sr >>= 2;
180 Mc[1] = sr & 0x3; sr >>= 2;
182 xmaxc[1] = sr & 0x3f; sr >>= 6;
183 xmc[13] = sr & 0x7; sr >>= 3;
184 xmc[14] = sr & 0x7; sr >>= 3;
186 xmc[15] = sr & 0x7; sr >>= 3;
187 xmc[16] = sr & 0x7; sr >>= 3;
188 xmc[17] = sr & 0x7; sr >>= 3;
190 xmc[18] = sr & 0x7; sr >>= 3;
191 xmc[19] = sr & 0x7; sr >>= 3;
193 xmc[20] = sr & 0x7; sr >>= 3;
194 xmc[21] = sr & 0x7; sr >>= 3;
195 xmc[22] = sr & 0x7; sr >>= 3;
197 xmc[23] = sr & 0x7; sr >>= 3;
198 xmc[24] = sr & 0x7; sr >>= 3;
199 xmc[25] = sr & 0x7; sr >>= 3;
201 Nc[2] = sr & 0x7f; sr >>= 7;
203 bc[2] = sr & 0x3; sr >>= 2;
204 Mc[2] = sr & 0x3; sr >>= 2;
206 xmaxc[2] = sr & 0x3f; sr >>= 6;
207 xmc[26] = sr & 0x7; sr >>= 3;
208 xmc[27] = sr & 0x7; sr >>= 3;
210 xmc[28] = sr & 0x7; sr >>= 3;
211 xmc[29] = sr & 0x7; sr >>= 3;
212 xmc[30] = sr & 0x7; sr >>= 3;
214 xmc[31] = sr & 0x7; sr >>= 3;
215 xmc[32] = sr & 0x7; sr >>= 3;
217 xmc[33] = sr & 0x7; sr >>= 3;
218 xmc[34] = sr & 0x7; sr >>= 3;
219 xmc[35] = sr & 0x7; sr >>= 3;
221 xmc[36] = sr & 0x7; sr >>= 3;
222 xmc[37] = sr & 0x7; sr >>= 3;
223 xmc[38] = sr & 0x7; sr >>= 3;
225 Nc[3] = sr & 0x7f; sr >>= 7;
227 bc[3] = sr & 0x3; sr >>= 2;
228 Mc[3] = sr & 0x3; sr >>= 2;
230 xmaxc[3] = sr & 0x3f; sr >>= 6;
231 xmc[39] = sr & 0x7; sr >>= 3;
232 xmc[40] = sr & 0x7; sr >>= 3;
234 xmc[41] = sr & 0x7; sr >>= 3;
235 xmc[42] = sr & 0x7; sr >>= 3;
236 xmc[43] = sr & 0x7; sr >>= 3;
238 xmc[44] = sr & 0x7; sr >>= 3;
239 xmc[45] = sr & 0x7; sr >>= 3;
241 xmc[46] = sr & 0x7; sr >>= 3;
242 xmc[47] = sr & 0x7; sr >>= 3;
243 xmc[48] = sr & 0x7; sr >>= 3;
245 xmc[49] = sr & 0x7; sr >>= 3;
246 xmc[50] = sr & 0x7; sr >>= 3;
247 xmc[51] = sr & 0x7; sr >>= 3;
255 if (((*
c >> 4) & 0x0F) !=
GSM_MAGIC)
return -1;
257 LARc[0] = (*
c++ & 0xF) << 2;
258 LARc[0] |= (*
c >> 6) & 0x3;
259 LARc[1] = *
c++ & 0x3F;
260 LARc[2] = (*
c >> 3) & 0x1F;
261 LARc[3] = (*
c++ & 0x7) << 2;
262 LARc[3] |= (*
c >> 6) & 0x3;
263 LARc[4] = (*
c >> 2) & 0xF;
264 LARc[5] = (*
c++ & 0x3) << 2;
265 LARc[5] |= (*
c >> 6) & 0x3;
266 LARc[6] = (*
c >> 3) & 0x7;
267 LARc[7] = *
c++ & 0x7;
268 Nc[0] = (*
c >> 1) & 0x7F;
269 bc[0] = (*
c++ & 0x1) << 1;
270 bc[0] |= (*
c >> 7) & 0x1;
271 Mc[0] = (*
c >> 5) & 0x3;
272 xmaxc[0] = (*
c++ & 0x1F) << 1;
273 xmaxc[0] |= (*
c >> 7) & 0x1;
274 xmc[0] = (*
c >> 4) & 0x7;
275 xmc[1] = (*
c >> 1) & 0x7;
276 xmc[2] = (*
c++ & 0x1) << 2;
277 xmc[2] |= (*
c >> 6) & 0x3;
278 xmc[3] = (*
c >> 3) & 0x7;
280 xmc[5] = (*
c >> 5) & 0x7;
281 xmc[6] = (*
c >> 2) & 0x7;
282 xmc[7] = (*
c++ & 0x3) << 1;
283 xmc[7] |= (*
c >> 7) & 0x1;
284 xmc[8] = (*
c >> 4) & 0x7;
285 xmc[9] = (*
c >> 1) & 0x7;
286 xmc[10] = (*
c++ & 0x1) << 2;
287 xmc[10] |= (*
c >> 6) & 0x3;
288 xmc[11] = (*
c >> 3) & 0x7;
289 xmc[12] = *
c++ & 0x7;
290 Nc[1] = (*
c >> 1) & 0x7F;
291 bc[1] = (*
c++ & 0x1) << 1;
292 bc[1] |= (*
c >> 7) & 0x1;
293 Mc[1] = (*
c >> 5) & 0x3;
294 xmaxc[1] = (*
c++ & 0x1F) << 1;
295 xmaxc[1] |= (*
c >> 7) & 0x1;
296 xmc[13] = (*
c >> 4) & 0x7;
297 xmc[14] = (*
c >> 1) & 0x7;
298 xmc[15] = (*
c++ & 0x1) << 2;
299 xmc[15] |= (*
c >> 6) & 0x3;
300 xmc[16] = (*
c >> 3) & 0x7;
301 xmc[17] = *
c++ & 0x7;
302 xmc[18] = (*
c >> 5) & 0x7;
303 xmc[19] = (*
c >> 2) & 0x7;
304 xmc[20] = (*
c++ & 0x3) << 1;
305 xmc[20] |= (*
c >> 7) & 0x1;
306 xmc[21] = (*
c >> 4) & 0x7;
307 xmc[22] = (*
c >> 1) & 0x7;
308 xmc[23] = (*
c++ & 0x1) << 2;
309 xmc[23] |= (*
c >> 6) & 0x3;
310 xmc[24] = (*
c >> 3) & 0x7;
311 xmc[25] = *
c++ & 0x7;
312 Nc[2] = (*
c >> 1) & 0x7F;
313 bc[2] = (*
c++ & 0x1) << 1;
314 bc[2] |= (*
c >> 7) & 0x1;
315 Mc[2] = (*
c >> 5) & 0x3;
316 xmaxc[2] = (*
c++ & 0x1F) << 1;
317 xmaxc[2] |= (*
c >> 7) & 0x1;
318 xmc[26] = (*
c >> 4) & 0x7;
319 xmc[27] = (*
c >> 1) & 0x7;
320 xmc[28] = (*
c++ & 0x1) << 2;
321 xmc[28] |= (*
c >> 6) & 0x3;
322 xmc[29] = (*
c >> 3) & 0x7;
323 xmc[30] = *
c++ & 0x7;
324 xmc[31] = (*
c >> 5) & 0x7;
325 xmc[32] = (*
c >> 2) & 0x7;
326 xmc[33] = (*
c++ & 0x3) << 1;
327 xmc[33] |= (*
c >> 7) & 0x1;
328 xmc[34] = (*
c >> 4) & 0x7;
329 xmc[35] = (*
c >> 1) & 0x7;
330 xmc[36] = (*
c++ & 0x1) << 2;
331 xmc[36] |= (*
c >> 6) & 0x3;
332 xmc[37] = (*
c >> 3) & 0x7;
333 xmc[38] = *
c++ & 0x7;
334 Nc[3] = (*
c >> 1) & 0x7F;
335 bc[3] = (*
c++ & 0x1) << 1;
336 bc[3] |= (*
c >> 7) & 0x1;
337 Mc[3] = (*
c >> 5) & 0x3;
338 xmaxc[3] = (*
c++ & 0x1F) << 1;
339 xmaxc[3] |= (*
c >> 7) & 0x1;
340 xmc[39] = (*
c >> 4) & 0x7;
341 xmc[40] = (*
c >> 1) & 0x7;
342 xmc[41] = (*
c++ & 0x1) << 2;
343 xmc[41] |= (*
c >> 6) & 0x3;
344 xmc[42] = (*
c >> 3) & 0x7;
345 xmc[43] = *
c++ & 0x7;
346 xmc[44] = (*
c >> 5) & 0x7;
347 xmc[45] = (*
c >> 2) & 0x7;
348 xmc[46] = (*
c++ & 0x3) << 1;
349 xmc[46] |= (*
c >> 7) & 0x1;
350 xmc[47] = (*
c >> 4) & 0x7;
351 xmc[48] = (*
c >> 1) & 0x7;
352 xmc[49] = (*
c++ & 0x1) << 2;
353 xmc[49] |= (*
c >> 6) & 0x3;
354 xmc[50] = (*
c >> 3) & 0x7;
int gsm_decode P3((s, c, target), gsm s, gsm_byte *c, gsm_signal *target)
unsigned char frame_chain
unsigned char frame_index