FreeCalypso > hg > fc-magnetite
annotate src/gpf3/ccd/gsm6_tlv.c @ 639:026c98f757a6
tpudrv12.h & targets/gtm900.h: our current support is for MGC2GSMT version only
As it turns out, there exist two different Huawei-made hw platforms both
bearing the marketing name GTM900-B: one is MG01GSMT, the other is MGC2GSMT.
The two are NOT fw-compatible: aside from flash chip differences which
should be handled by autodetection, the two hw platforms are already known
to have different RFFEs with different control signals, and there may be
other differences not yet known. Our current gtm900 build target is for
MGC2GSMT only; we do not yet have a specimen of MG01GSMT on hand, hence
no support for that version will be possible until and unless someone
provides one.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 30 Jan 2020 18:19:01 +0000 |
parents | c41a534f33c6 |
children |
rev | line source |
---|---|
2
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +----------------------------------------------------------------------------- |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project : |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul : gsm6_tlv.c |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +----------------------------------------------------------------------------- |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved. |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 | |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG. |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +----------------------------------------------------------------------------- |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : Definition of encoding and decoding functions for GSM6_TLV elements |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 +----------------------------------------------------------------------------- |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 /* |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 * standard definitions like GLOBAL, UCHAR, ERROR etc. |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #include "typedefs.h" |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include "header.h" |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 /* |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 * Prototypes of ccd (USE_DRIVER EQ undef) for prototypes only |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 * look at ccdapi.h |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #undef USE_DRIVER |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #include "ccdapi.h" |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 /* |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 * Types and functions for bit access and manipulation |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #include "ccd_globs.h" |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #include "bitfun.h" |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /* |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 * Prototypes of ccd internal functions |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #include "ccd.h" |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 /* |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 * Declaration of coder/decoder tables |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #include "ccdtable.h" |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #include "ccddata.h" |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #ifndef RUN_INT_RAM |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 /* |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 +--------------------------------------------------------------------+ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 | PROJECT : CCD (6144) MODULE : CDC_GSM | |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 | STATE : code ROUTINE : cdc_gsm6tlv_decode | |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 +--------------------------------------------------------------------+ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 PURPOSE : Decoding of the GSM Type 6TLV element. This element |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 consists of a 8 bit T component a |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 16 Bit L component and a V component wich |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 length depends on the value of the L component. |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 SHORT cdc_gsm6tlv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 { |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 T_TLV_SORT tlv_inf; |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 tlv_inf.gotTag = TRUE; |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 tlv_inf.gotLen = TRUE; |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 #ifdef DEBUG_CCD |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 #ifndef CCD_SYMBOLS |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 TRACE_CCD (globs, "cdc_gsm6tlv_decode()"); |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 #else |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 TRACE_CCD (globs, "cdc_gsm6tlv_decode() %s", ccddata_get_alias((USHORT) e_ref, 1)); |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 #endif |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 #endif |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 return cdc_tlv_decode (c_ref, e_ref, &tlv_inf, globs); |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 } |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 #endif /* !RUN_INT_RAM */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 #ifndef RUN_INT_RAM |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 /* |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 +--------------------------------------------------------------------+ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 | PROJECT : CCD (6144) MODULE : CDC_GSM | |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 | STATE : code ROUTINE : cdc_gsm6tlv_encode | |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 +--------------------------------------------------------------------+ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 PURPOSE : Encoding of the GSM Type 6TLV element. This element |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 consists of a 8 bit T component a |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 16 Bit L component and a V component wich |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 length depends on the value of the L component. |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 */ |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 SHORT cdc_gsm6tlv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 { |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 #ifdef DEBUG_CCD |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 #ifndef CCD_SYMBOLS |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 TRACE_CCD (globs, "cdc_gsm6tlv_encode()"); |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 #else |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 TRACE_CCD (globs, "cdc_gsm6tlv_encode() %s", ccddata_get_alias((USHORT) e_ref, 1)); |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 #endif |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 #endif |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 cdc_tlv_encode (e_ref, 8, 16, globs); |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 return 1; |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 } |
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 #endif /* !RUN_INT_RAM */ |