rmmi_context.h
42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*******************************************************************************
* Filename:
* ---------
* rmmi_context.h
*
* Project:
* --------
* MT6208
*
* Description:
* ------------
* This file is intends for �K.
*
* Author:
* -------
* -------
*
*==============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*==============================================================================
*******************************************************************************/
/********************************************************************************
* Copyright Statement:
* --------------------
*
* This product has been developed using a protocol stack
* developed by Sasken Communication Technologies Limited.
*
********************************************************************************/
#ifndef _RMMI_CONTEXT_H
#define _RMMI_CONTEXT_H
//#include "Kal_release.h" /* in dir. Kal */
//#include "stacklib.h"
//#include "event_shed.h"
//#include "fat_fs.h" //BT_DEBUG
//#include "rmmi_gati.h"
#include "l4c_common_enum.h"
#include "ps2sat_struct.h"
//#include "l4c2phb_enums.h"
#include "mcd_l4_common.h"
//#include "l3_inc_enums.h"
#include "as2l4c_struct.h"
#include "rmmi_common_enum.h"
//#include "kal_non_specific_general_types.h"
#include "fs_type.h"
#include "kal_general_types.h"
#include "cmux_vp_num.h"
#include "ps_public_enum.h"
#include "kal_public_api.h"
#include "l4c2phb_struct.h"
#include "l4c_aux_struct.h"
#include "med_struct.h"
#include "sim_public_enum.h"
/* CONSTANTS */
#define NULL_TERM '\0' /* string termination */
#define INVALID_ENUM 255 /* invalid enum value */
#define RMMI_PTR rmmi_ptr_g
#define RMMI_COMM_PTR rmmi_common_ptr_g
#define rmmi_skip_spaces(source_string_ptr) \
while( source_string_ptr->string_ptr[ source_string_ptr->index ] \
== RMMI_SPACE ) \
{ \
source_string_ptr->index++; \
}
//030617 mtk00468 add for skip unused character before character a
#define rmmi_skip_none_a(source_string_ptr, length) \
while( (source_string_ptr->index < length) && !((source_string_ptr->string_ptr[ source_string_ptr->index ] == RMMI_CHAR_A) ||\
(source_string_ptr->string_ptr[ source_string_ptr->index ] == rmmi_char_a)) ) \
{ \
source_string_ptr->index++; \
}
#define RMMI_IS_LOWER( alpha_char ) \
( ( (alpha_char >= rmmi_char_a) && (alpha_char <= rmmi_char_z) ) ? 1 : 0 )
#define RMMI_IS_UPPER( alpha_char ) \
( ( (alpha_char >= RMMI_CHAR_A) && (alpha_char <= RMMI_CHAR_Z) ) ? 1 : 0 )
#define RMMI_IS_HEX_ALPHA( alpha_char ) \
( ( (alpha_char >= RMMI_CHAR_A) && (alpha_char <= RMMI_CHAR_F) ) ? 1 : 0 )
#define RMMI_IS_NUMBER( alpha_char ) \
( ( (alpha_char >= RMMI_CHAR_0) && (alpha_char <= RMMI_CHAR_9) ) ? 1 : 0 )
#define RMMI_IS_ALPHA( alpha_char ) \
( ( RMMI_IS_UPPER(alpha_char) || RMMI_IS_LOWER(alpha_char) ) ? 1 : 0 )
#define RMMI_IS_SYMBOL( alpha_char ) \
( ( (alpha_char == RMMI_CHAR_PLUS) || (alpha_char == RMMI_CHAR_STAR) || \
(alpha_char == RMMI_CHAR_POUND) || (alpha_char == RMMI_COMMA) || \
(alpha_char == RMMI_CHAR_DOT) || (alpha_char == RMMI_FORWARD_SLASH) || \
(alpha_char == RMMI_COLON) || (alpha_char == RMMI_HAT) || \
(alpha_char == RMMI_CHAR_MINUS) || \
(alpha_char == RMMI_L_SQ_BRACKET) || \
(alpha_char == RMMI_R_SQ_BRACKET) || \
(alpha_char == RMMI_L_ANGLE_BRACKET) || \
(alpha_char == RMMI_CHAR_ULINE) || \
(alpha_char == RMMI_SPACE) || \
(alpha_char == RMMI_SEMICOLON) || \
(alpha_char == RMMI_R_ANGLE_BRACKET) \
) ? 1 : 0 )
#define RMMI_IS_EXT_CHAR( alpha_char ) \
( ( (alpha_char == RMMI_HAT) || (alpha_char == RMMI_CHAR_TILDE) || \
(alpha_char == RMMI_L_SQ_BRACKET) || (alpha_char == RMMI_R_SQ_BRACKET) || \
(alpha_char == RMMI_L_CURLY_BRACKET) || (alpha_char == RMMI_R_CURLY_BRACKET) || \
(alpha_char == RMMI_CHAR_REVERSE_SOLIDUS) ||(alpha_char == RMMI_CHAR_VERTICAL_LINE) \
) ? 1 : 0 )
//#if !defined(__MTK_TARGET__) && defined(__RMMI_UT__)
//#define RMMI_UART_GetOwnerID(port) rmmi_current_mod_id
//#endif
typedef kal_bool(*UART_TRANS_FUNC_PTR) (kal_uint8);
typedef kal_uint32 RMMI_UART_FLAG;
#ifdef __GAS_SUPPORT__
#define GAS_MAX_MODULE_COUNT 2
/* Structure */
typedef struct
{
module_type mod_id; /* The module id which uses this interface. */
} gas_mod_src_struct;
#endif /*__GAS_SUPPORT__*/
typedef struct rmmi_report_mode_struct
{
kal_uint32 einfo; /* proprietary +ECPI: call progress information */
kal_uint32 ecpi; /* proprietary +ECPI: call progress information */
kal_uint32 eind; /* proprietary +EIND: general indication */
kal_uint8 ccm; /* rmmi_report_mode_enum */
kal_uint8 acm_warning; /* rmmi_report_mode_enum */
kal_uint8 call_wait; /* rmmi_report_mode_enum */
kal_uint8 cdip; /* rmmi_report_mode_enum */
kal_uint8 clip; /* rmmi_report_mode_enum */
kal_uint8 clir; /* rmmi_report_mode_enum */
kal_uint8 cnap; /* rmmi_report_mode_enum */
kal_uint8 colp; /* rmmi_report_mode_enum */
kal_uint8 ss_mo; /* rmmi_report_mode_enum */
kal_uint8 ss_mt; /* rmmi_report_mode_enum */
kal_uint8 ussd; /* rmmi_report_mode_enum */
kal_uint8 compression; /* rmmi_report_mode_enum */
kal_uint8 ps_reg; /* rmmi_nw_reg_report_mode_enum */
kal_uint8 cs_reg; /* rmmi_nw_reg_report_mode_enum */
kal_uint8 timezone; /* rmmi_report_mode_enum */
kal_uint8 crc; /* rmmi_report_mode_enum, for +CRC */
kal_uint8 cr; /* rmmi_report_mode_enum, for +CR */
kal_uint8 ecsq;
kal_uint8 ecsq_count;
kal_uint8 cgerep;
kal_uint8 cmer_mode;
kal_uint8 cmer_keyp;
kal_uint8 cmer_ind;
kal_uint8 cmer_bfr;
#if defined(__MMI_FMI__)
kal_uint8 cmer_tscrn;
#else
kal_uint8 esims;
#endif
/* Bit 0(SMS ready), Bit 1(PHB ready), Bit 7(AT ready), others reserved */
} rmmi_report_mode_struct;
#ifdef __OP01__
typedef struct rmmi_op01_report_mode_struct
{
kal_uint8 dsci;
kal_uint8 rfsw;
kal_uint8 cardmode;
} rmmi_op01_report_mode_struct;
#endif
typedef struct rmmi_rsp_mode_struct
{
kal_uint32 echo_flag; /* rmmi_cmd_echo_enum */
kal_uint8 suppress_flag; /* rmmi_result_code_suppress_enum */
kal_uint8 format; /* rmmi_result_code_format */
kal_uint8 ext_result_code;
} rmmi_rsp_mode_struct;
typedef struct rmmi_single_cmd_struct
{
kal_uint16 cmd_code; /* rmmi_extended_cmd_id_enum */
kal_uint8 cmd_mode; /* rmmi_cmd_mode_enum */
} rmmi_single_cmd_struct;
typedef struct basic_cmd_struct
{
kal_uint8 cmd_code; /* rmmi_basic_cmd_id_enum */
kal_uint8 cmd_mode; /* rmmi_cmd_mode_enum */
kal_bool is_this_node_used;
kal_uint8 value;
struct basic_cmd_struct *next_ptr;
} rmmi_multiple_basic_cmd_struct;
typedef struct rmmi_cmd_struct
{
kal_uint8 which_present; /* rmmi_cmd_type_enum */
rmmi_single_cmd_struct single_cmd;
rmmi_multiple_basic_cmd_struct multiple_cmd; //not used now
} rmmi_cmd_struct;
typedef struct
{
kal_uint8 s0; /* auto answer */
kal_uint8 s2; /* escape character (+++) */
kal_uint8 s3; /* CR */
kal_uint8 s4; /* LF */
kal_uint8 s5; /* backspace */
kal_uint8 s6; /* pause before dialing */
kal_uint8 s7; /* connect timeout */
kal_uint8 s8; /* , pause time */
kal_uint8 s10; /* disconnect timeout */
kal_uint8 s32; /* XON character */
kal_uint8 s33; /* XOFF character */
kal_uint8 s95;
} rmmi_s_register_struct;
typedef struct uart_queue_struct
{
kal_uint16 head;
kal_uint16 length;
kal_uint8 data[MAX_DATA_QUEUE_LENGTH];
} rmmi_uart_queue_struct;
typedef struct
{
kal_uint16 head;
kal_uint16 length;
kal_uint8 data[MAX_DATA_QUEUE_LENGTH];
} rmmi_uart_output_queue_struct;
typedef struct
{
kal_bool sat_in_menu;
kal_bool sat_in_process;
kal_bool sat_normal_standby;
kal_bool sat_ready;
kal_uint8 sat_input_type;
kal_uint8 sat_input_reveal;
kal_uint8 sat_input_min_len;
kal_uint8 sat_input_max_len;
kal_bool sat_redial;
kal_bool sat_redial_count;
kal_uint32 sat_duration;
} rmmi_SAT_info_struct;
typedef struct rmmi_cind_struct
{
kal_uint8 battchg;
kal_uint8 signal;
kal_uint8 service;
kal_uint8 message;
kal_uint8 call;
kal_uint8 roam;
kal_uint8 smsfull;
kal_uint8 callsetup;
kal_uint8 callheld; //for BT HF 1.5
} rmmi_cind_struct;
typedef struct rmmi_reg_state_struct
{
kal_uint32 cell_id; // for +CREG, +CGREG, high 16 bits for RNC id, low 16 bits for cell_id
kal_uint16 lac_value; // for +CREG, +CGREG
kal_uint8 act; // [MAUI_01360129]
kal_uint8 gsm_state; // for +CREG
kal_uint8 gprs_state; //for +CGREG
} rmmi_reg_state_struct;
/* init by l4cphb_start_cnf_hdlr */
typedef struct rmmi_phb_info_struct
{
kal_uint8 sim_phb_len; //max length of name in SIM EFadn
kal_uint8 sim_fdn_len; //max length of name in EFfdn
kal_uint8 msisdn_alpha_length; //max length of EFmsisdn
kal_uint8 sim_email_len; // max length of email in EF_EMAIL
} rmmi_phb_info_struct;
typedef struct
{
l4c_phb_entry_struct entry;
l4c_number_struct num[3];
phb_email_struct email;
} rmmi_phb_cpbw_struct;
typedef struct rmmi_clip_info_struct
{
kal_uint8 number[41]; //MAX_CC_ADDR_LEN
kal_uint8 type;
kal_uint8 subaddr[41]; //MAX_CC_ADDR_LEN
kal_uint8 satype;
kal_uint8 cli_validity;
} rmmi_clip_info_struct;
typedef struct rmmi_cbst_struct
{
kal_uint8 speed;
kal_uint8 name;
kal_uint8 ce;
} rmmi_cbst_struct;
typedef struct rmmi_crlp_strnct
{
kal_uint8 iws;
kal_uint8 mws;
kal_uint8 T1;
kal_uint8 N2;
} rmmi_crlp_strnct;
typedef struct rmmi_profile_struct
{
rmmi_s_register_struct s_reg;
rmmi_cbst_struct rmmi_cbst;
rmmi_crlp_strnct rmmi_crlp;
kal_uint8 rmmi_ciwf;
kal_uint8 rmmi_atv;
kal_uint8 rmmi_ate;
kal_uint8 rmmi_atq;
kal_uint8 rmmi_atx;
kal_uint8 rmmi_atw;
kal_uint8 rmmi_atampC;
kal_uint8 rmmi_atampD;
kal_uint8 rmmi_atampK;
} rmmi_profile_struct;
typedef struct
{
kal_uint8 reason;
kal_uint8 mode;
kal_uint8 timer;
kal_uint8 dest_buffer[50];
kal_uint8 sub_dest_buffer[50];
kal_bool sub_addr_flag;
} ccfc_req_param_struct; /* for remembering params of AT+CFCC */
typedef struct
{
kal_uint8 mode;
} ccwa_req_param_struct; /* for remembering params of AT+CCWA */
typedef struct
{
kal_uint8 reason;
kal_uint8 mode;
kal_uint8 passwd[9];
} clck_ss_req_param_struct; /* for remembering params of AT+CLCK */
typedef struct rmmi_transfer_struct
{
module_type dest_mod;
UART_PORT port;
} rmmi_transfer_struct;
typedef struct rmmi_common_context_struct
{
#ifdef __CMUX_SUPPORT__
kal_uint8 physical_port;
kal_bool cmux_enable;
#endif /* __CMUX_SUPPORT__ */
#ifdef __BT_SUPPORT__
kal_uint8 rmmi_hf_src;
kal_bool hf_urc_report_flag;
#endif
kal_bool cmd_from_tst; //command is from Catcher
#if defined(__PHB_STORAGE_BY_MMI__)
/***********************************************
* It is more appropriate to use a structure to contain the info.
* for different PHB type. But, we only need to remember the info of ME PHB currently,
* So we can do this in the future if needed.
************************************************/
kal_uint16 phb_me_total;
kal_uint16 phb_me_used;
kal_uint16 phb_me_free;
kal_uint16 phb_me_max_name_len;
kal_uint16 phb_me_max_num_len;
kal_uint16 phb_me_max_email_len;
#endif
RMMI_UART_FLAG isAtdAction_flag; /* mtk00714 20040412 : remember ATD this action after setup_cnf */
RMMI_UART_FLAG isAtdAbort_flag; /* mtk01616 070323 to know it's a Atd abort by any character */
#if defined(__CMUX_MODEM_STATUS_SUPPORT__)
RMMI_UART_FLAG isDSRAbort_flag;
#endif
#ifdef SYNCML_DM_SUPPORT
kal_bool lock_atci;
#endif
#ifdef __GEMINI__
rmmi_sim_uart_setting_enum sim_uart_setting;
sim_interface_enum rmmi_uart_owner[RMMI_MAX_CHANNEL_NUMBER];
#endif
RMMI_UART_FLAG uart_plugout;
RMMI_UART_FLAG uart_stop_send_flag;
RMMI_UART_FLAG is_multi_cmd;
RMMI_UART_FLAG multi_cmd_error; // this flag using to verify if error occur , we should abort command processor
RMMI_UART_FLAG is_sms_cmd; //using to cehck string is sms command and send " > " to DTE
kal_uint8 source[RMMI_MAX_CHANNEL_NUMBER];
kal_uint8 port[RMMI_MAX_CHANNEL_NUMBER];
kal_uint8 uart_port_value; /* this value store the default value form NVRAM */
rmmi_transfer_struct transfer;
rmmi_uart_queue_struct uart_input_queue[RMMI_MAX_CHANNEL_NUMBER];
rmmi_uart_queue_struct uart_output_queue[RMMI_MAX_CHANNEL_NUMBER];
kal_uint8 multi_cmd_string[RMMI_MAX_CHANNEL_NUMBER][MAX_MULTIPLE_CMD_INFO_LEN];
#ifdef __TC01__
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
#if defined(__AT_ETSTLP_SUPPORT__) || !defined(__MMI_FMI__)
kal_uint8 etstlp_port[2]; //for tst_port_ps and tst_port_l1
#endif
} rmmi_common_context_struct;
typedef struct rmmi_context_struct
{
/*************************************************************************/
/* Below context are placed in the front of RMMI context */
/* to increase immediate offset access , to reduce ROM size */
/* Please KEEP the position for the following frequent used variables */
/*************************************************************************/
kal_uint8 current_src;
kal_uint8 char_set; //+CSCS
rmmi_phb_type_enum phb_storage_type;
kal_bool is_ucm_action;
kal_uint16 cmee_err; // error value for +CME:<err>
kal_bool uart_in_data_mode;
kal_uint8 online_cmd_state;
kal_uint8 response_type;
kal_bool ats0_auto_answer; //mtk01616_070707 add this to prevent print OK for auto answer
#ifdef __UCM_SUPPORT__
kal_bool is_ata_action; //mtk01616_070707 add this to handle ATA result code
kal_bool is_compound_action; //MAUI_02016224
#endif
/* use to check if sim verified */
kal_bool command_allow; // using to keep if password required, only some AT command can access when pin puk or ph_sim pending
kal_uint16 cmd_error_cause; // SMU saves command not allow cause for +cme error value to TA
rmmi_s_register_struct s_reg;
void *arg_list[RMMI_MAX_ARG_NUM];
rmmi_rsp_mode_struct rsp_mode;
rmmi_cind_struct indicators; // for +CIND and +CMER
rmmi_report_mode_struct report_mode;
rmmi_reg_state_struct register_status; //registration status for +CREG, +CGREG
/***********************************************************************/
/* Above context are placed in the front of L4C context */
/* to increase immediate offset access , to reduce ROM size */
/* Please try to KEEP the position for these frequent used variables */
/***********************************************************************/
/* settings */
kal_uint8 em_enable; //mtk00468 add for using to keep the em enable or disable engineer mode information
kal_uint8 date_aux_mode; // this variable using for +CSDF to keep in local
kal_uint8 cring_type; //mtk00714 add for +CRC (remember cring_type for rmmi_ring_repeat_hdlr)
kal_uint8 error_report_mode; // /* +CMEE <mode>: rmmi_error_report_mode_enum */
kal_uint8 plmn_format;
kal_uint8 cops_mode;
kal_uint8 CPOL_plmn_format;
kal_uint8 smsal_bfr; /* +CNMI : <bfr> */
kal_uint8 CNMI_mode; // +CNMI: <mode>: result code mode
//kal_uint16 max_plmn_list_len; //+CPOL ?
kal_bool cb_mode;
kal_bool csdh_show; //mtk00714: for +CSDH , hide/show detail Text mode parameters.
kal_bool clae_mode; // we save clae mode in rmmi context
kal_bool cmut_mode; // we save clae mode in rmmi context
kal_uint8 preferred_lang;
kal_uint8 ring_count; // for ATS0
rmmi_phb_info_struct phb_info;
rmmi_clip_info_struct clip_info;
kal_uint8 casp_soundID; //for +CASP proprietary command , timeout hdlr parameter.
//kal_bool is_gprs_data_dialing; /* ATH is not allowed to hangup existed voice call after dialup failed */ //mtk02285, 201003, 6251_ram
#ifdef __MOD_TCM__
kal_uint8 cgatt_last_action; /* mtk00714 20040611 add to avoid continuos at+cgatt=0 or at+cgatt=1 */
#endif //mtk02285, 201003, 6251_ram
kal_uint16 cpbr_range[2];
kal_uint16 phb_del_index;
kal_uint8 phb_del_storage;
kal_uint8 cpbr_ln_base_index;
#ifdef __OP01__
kal_uint8 scpbr_num_index;
kal_uint8 scpbr_entry_found;
l4_name_struct scpbr_alphaId;
rmmi_phb_cpbw_struct *scpbw_entry_ptr;
rmmi_op01_report_mode_struct op01_report_mode;
#endif
kal_bool is_cpbw_phb_fdn;
#if defined(__AT_EPBW_SUPPORT__)
kal_bool phb_is_epbw;
#endif
l4c_source_id_enum online_cmd_state_src_id; //MAUI_01652672, mtk02285, 20090324
#ifdef __IRDA_SUPPORT__
//kal_uint8 ppp_nsapi; //mtk02285, 201003, 6251_ram
#endif
#ifdef __RSAT__
kal_bool sat_icon_displayed; //mtk00924: display icon for STK SMS, SS, USSD, DTMF
#endif /* __RSAT__ */
kal_uint8 except_src; //for unsolicited code, but don't send it to this src. ex. MT data call, don't send RING to bt hs
kal_uint8 imei_action; //rmmi_imei_action_enum
kal_bool invalid_sim; //mtk00924 2005_0418 : when sim invalid there are some cmd not allowed
kal_uint8 rmmi_atd_mem; //mtk01616_090116 :rmmi_mem_dial_enum
#if defined(__MMI_FMI__)
kal_bool MMI_string_enable;
kal_bool screenshot_pending;
FS_HANDLE screenshot_fd;
kal_uint16 screenshot_index;
#endif
kal_uint16 action_cmd; //rmmi_extended_cmd_id_enum
kal_uint8 ws46;
#ifdef __BT_SUPPORT__
kal_uint8 last_reported_ciev_signal; //hong_rx_level
kal_bool send_ciev_callheld; //mtk01616_090923: explictly to send +CIEV:<callheld> even the status is not changed
#endif
kal_uint8 ath_for_dialup; //mtk01616_080923: ATH is for dialup failure, we use this to prevent ATH to disconnect call
kal_uint8 last_number_dialed[MAX_CC_ADDR_LEN];//atdL last number dialed
#if 0 //__CTM_SUPPORT__
/* under construction !*/
#endif
kal_uint8 em_volume_level;
kal_uint8 em_volume_type;
kal_uint8 em_audio_type;
kal_uint8 em_audio_gain;
kal_uint8 em_audio_mode;
kal_uint8 em_eadp_action;
/* Context for AT+EAPS */
kal_uint8 eaps_action;
kal_uint8 eaps_para1;
kal_uint8 eaps_para2;
kal_uint8 eaps_para3;
void* eaps_audio_param;
#ifdef __VOIP__
kal_bool cm_cmd_approve; //Send Call Management command to MMI to get approval
void *string_ptr;
void *node_ptr;
void *id;
#endif /* __VOIP__ */
#if !defined(__MMI_FMI__)
kal_uint8 poweroff_src_id;
kal_uint8 is_spn_valid;
kal_uint8 spn[17];
#endif
kal_uint32 eind_ready_flag;
kal_uint8 vgr_gain;
kal_uint8 vgt_gain;
kal_uint16 last_executed_P2_fail; //[MAUI_01292349] mtk02480l 27.007: +CPIN? return PIN2/PUK2 if previous command execured authentication failure, i.e. cmee_err= 17/18
#if defined(__MODEM_EM_MODE__)
kal_uint8 em_src_id; // used to remember EM request src_id
#endif
#if defined(__ENABLE_MYBCCH__)
kal_uint8 mybcch_src_id;
#endif
#ifdef __GATI_ENABLE__
gati_mod_src_struct gati_mod_src_table[GATI_MAX_MODULE_COUNT]; /* The table which record the relation of module to src_id and its control status */
kal_uint8 gati_binary_mode_module[MAX_SOURCE_NUM]; /* The module id that active the binary mode for specific source id */
kal_uint32 gati_stop_read_data_from_uart; /* The bit map to specify which src_id is now stop receiving data from the UART */
kal_uint32 gati_pending_rtr_ind; /* The bit map to specify if there are rtr indication from the UART during the ATCI stop receiving data from the UART */
gati_buffer_struct gati_buffer; /* The buffer will be used when the mode is in the binary mode and there is some data from other module which does not active the binary mode. */
kal_uint8 gati_buffer_count;
/* The following variables are temp ones used to transmit informations between functions */
kal_bool gati_write_allow_flag; /* This flag is used to allow the writing action for the owner of the binary mode */
kal_uint16 gati_actual_write; /* This variable is used to get the actual write size to the output queue in the rmmi_uart_write_data */
kal_uint8 gati_data_type; /* This variable is used to know if the data type is integrity or not */
#endif
#ifdef __GAS_SUPPORT__
gas_mod_src_struct gas_mod_src_table[GAS_MAX_MODULE_COUNT];
#endif
#ifdef __SMS_STORAGE_BY_MMI__
kal_uint8 usm_src_id;
#endif
#if defined(__SMS_STORAGE_BY_MMI__)
kal_bool cpms_query;
kal_bool cpms_set;
kal_uint8 esmss_mode;
#endif
#ifdef __AT_EPBUM_SUPPORT__
kal_uint8 phb_anr_occurrence;
kal_uint8 phb_email_occurrence;
kal_uint8 phb_sne_occurrence;
kal_uint8 phb_anr_length;
kal_uint8 phb_email_length;
kal_uint8 phb_sne_length;
kal_uint8 phb_grp_length;
#endif
#if defined(__CLOG_STORAGE_BY_MMI__)
kal_uint8 phb_ln_total[PHB_LN_MAX];
kal_uint8 phb_ln_used[PHB_LN_MAX];
kal_uint8 phb_ln_free[PHB_LN_MAX];
#endif
#if defined(__SMS_STORAGE_BY_MMI__) && !defined(WISDOM_MMI)
kal_uint8 cmss_da_tag;
l4_addr_bcd_struct cmss_da;
#endif
kal_uint8 cmec_keyp;
kal_uint8 cmec_disp;
kal_uint8 cmec_ind;
#if defined(__NBR_CELL_INFO__)
l4c_nbr_cell_info_ind_struct nbr_info;
#endif
kal_uint8 is_emgr;
#if defined(PLUTO_MMI) && (defined(__OP11_ATK__) || defined(__AUTO_ATK__))
kal_uint8 *appName;
kal_uint16 appName_len;
#endif
kal_uint8 ccfc_combi_classx; //original <classx> given by AT+CFCC
// each bit is for each classx. (TS or BS)
// 1: we need to make req for this bs_code / 0: ignored
//use bit operation
kal_uint8 ccfc_current_class; //the class of current req
ccfc_req_param_struct ccfc_req_param; //stores other req parameter information
kal_bool ccfc_result;
#if !defined(__SLIM_AT__)
kal_uint8 clck_ss_combi_classx; //original <classx> given by AT+CLCK
// each bit is for each classx. (TS or BS)
// 1: we need to make req for this bs_code / 0: ignored
//use bit operation
kal_uint8 clck_ss_current_class; //the class of current req
clck_ss_req_param_struct clck_ss_req_param; //stores other req parameter information
kal_bool clck_ss_result;
smu_security_type_enum clck_sml_type; //for at+clck to query SML status
#endif
kal_uint8 ccwa_combi_classx; //original <classx> given by AT+CCWA
// each bit is for each classx. (TS or BS)
// 1: we need to make req for this bs_code / 0: ignored
//use bit operation
kal_uint8 ccwa_current_class; //the class of current req
ccwa_req_param_struct ccwa_req_param; //stores other req parameter information
kal_bool ccwa_result;
kal_uint8 cvhu_mode; //MAUI_02862643, mtk02285, support CVHU=1 to ignore ATH
#if !defined(__ULC_AT__)
rmmi_profile_struct rmmi_default_profile;
rmmi_profile_struct rmmi_user_profile;
rmmi_profile_struct rmmi_current_profile;
#endif
rmmi_uart_queue_struct CNMI_ResultCodeBuffer; //for +CNMI, SMSAL_ONE_MSG_LEN = 160
kal_uint8 cmd_mode;
#ifndef __MMI_FMI__
kal_uint8 cpbf_findtext[30];
#endif
#ifdef __SAT__
#ifdef __SATCB__
rmmi_uart_queue_struct sat_output_queue; //mtk00714 add for SAT using
kal_bool IsSATcommand; //check if SATCommand
kal_bool IsSATresponse; //use to check if SAT response
void *SAT_rsp_ptr;
#endif
#endif /* __SAT__ */
#ifdef __CMUX_SUPPORT__
kal_uint8 rmmi_data_channel_src;
kal_uint8 rmmi_urc_channel_src;
#endif
#if defined(__AT_IPR_WRITE_FS_SUPPORT__)
kal_uint32 atipr_rate;
#endif
#ifdef __MODEM_CARD__
kal_uint8 csp_plmn_mode;
#endif
#if defined(__MESSAGE_BASED_AT_SUPPORT__)
kal_bool msg_based_at_enable;
#endif
kal_uint8 ats0_src_id; //MAUI_02743662 for saving ATS0 auto answer source id
kal_uint8 cpls_selected;
#if defined(__DUAL_TALK_MODEM_SUPPORT__)
kal_bool wake_up_ap;
#endif
#if defined(__PLMN_LIST_WITH_CELL_INFO__)
kal_uint8 posi_string[34];
kal_bool is_posi_action;
#endif
} rmmi_context_struct;
typedef struct rmmi_string_struct
{
kal_uint16 index;
kal_uint8 *string_ptr;
kal_uint8 *ip_string;
l4c_source_id_enum src_id; // DEREK
kal_uint8 cmd_mode;
kal_uint8 cmd_class;
kal_uint16 cmd_index; //rmmi_extended_cmd_id_enum
kal_uint16 cmd_row_index;
rmmi_extend_symbol_hash_enum symbol_hash;
} rmmi_string_struct;
#ifdef __SAT__
typedef enum
{
RMMI_TIM_MOD_NONE,
RMMI_TIM_MOD_SAT_DSPL_TEXT,
RMMI_TIM_MOD_SAT_PLAY_TONE,
RMMI_TIM_MOD_SAT_REDIAL,
RMMI_TIM_MOD_SAT_NOTICE,
RMMI_TIM_MOD_SAT_MMI_INFO,
RMMI_NUM_OF_TIMER_MOD
}
rmmi_timer_mod_enum;
typedef struct
{
eventid timer_id;
kal_uint8 time;
kal_bool timer_on;
} rmmi_sat_timer_struct;
/* SAT */
#define SAT_SIG_SETUP_MENU_SHOW 70
#define SAT_SIG_SELECT_ITEM_SHOW 71
#define SAT_SIG_DSPL_TXT_SHOW 72
#define SAT_SIG_GET_INKEY_SHOW 73
#define SAT_SIG_GET_INPUT_SHOW 74
#define SAT_SIG_PLAY_TONE_SHOW 75
#define SAT_SIG_SETUP_CALL_SHOW 76
//#define SAT_SIG_SETUP_CALL_REQ_SHOW 77
//#define SAT_SIG_SETUP_CALL_RES_SHOW 78
//#define SAT_SIG_REDIAL_SHOW 79
#define SAT_SIG_SEND_SMS_SHOW 80
#define SAT_SIG_SEND_SS_SHOW 81
#define SAT_SIG_SEND_USSD_SHOW 82
#define SAT_SIG_MMI_INFO_SHOW 83
//#define SAT_SIG_NOTICE_SHOW 85
#define RMMI_SAT_SIG_SETUP_CALL_REQ 16
#define RMMI_SAT_SIG_SEND_SS_REQ 17
#define RMMI_SAT_SIG_SEND_USSD_REQ 18
#define RMMI_SAT_SIG_SEND_SMS_REQ 19
#define RMMI_SAT_SIG_PLAY_TONE_RES 32
#define RMMI_SAT_SIG_DSPL_TEXT_RES 33
#define RMMI_SAT_SIG_GET_INKEY_RES 34
#define RMMI_SAT_SIG_GET_INPUT_RES 35
#define RMMI_SAT_SIG_SELECT_ITEM_RES 36
#define RMMI_SAT_SIG_MENU_SELECT_REQ 37
#define RMMI_SAT_SIG_START_SAT 80
#define RMMI_SAT_SIG_SETUP_CALL_REDIAL 88
typedef struct
{
kal_uint8 item_len;
kal_uint8 item_dcs;
kal_uint8 item_id;
kal_uint8 *item_data;
}
rmmi_sat_menu_item_struct;
typedef struct
{
kal_uint8 is_help_info_available;
kal_uint8 cmd_detail[5];
kal_uint8 alpha_id_len;
kal_uint8 *alpha_id;
kal_uint8 dcs_of_alpha_id;
kal_uint8 num_of_item;
rmmi_sat_menu_item_struct *menu_items;
}
rmmi_sat_main_menu_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 is_help_info_available;
kal_uint8 is_item_id_available;
kal_uint8 item_id;
kal_uint8 alpha_id_len;
kal_uint8 *alpha_id;
kal_uint8 dcs_of_alpha_id;
kal_uint8 num_of_item;
rmmi_sat_menu_item_struct *menu_items;
}
rmmi_sat_sub_menu_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 priority;
kal_uint8 clear_text_type;
kal_uint8 immediate_res;
kal_uint16 no_text_string;
kal_uint8 *text_string;
kal_uint8 dcs_of_text_string;
}
rmmi_sat_dspl_text_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 is_help_info_available;
kal_uint8 type_of_input;
kal_uint16 no_text_string;
kal_uint8 *text_string;
kal_uint8 dcs_of_text_string;
}
rmmi_sat_get_inkey_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 is_help_info_available;
kal_uint8 type_of_input;
kal_uint8 is_input_revealed_to_user;
kal_uint8 len_of_min_input;
kal_uint8 len_of_max_input;
kal_uint16 no_text_string;
kal_uint8 *text_string;
kal_uint8 dcs_of_text_string;
kal_uint16 no_default_text;
kal_uint8 *default_text;
kal_uint8 dcs_of_default_text;
}
rmmi_sat_get_input_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 tone_id;
kal_uint32 duration;
kal_uint8 no_alpha_id;
kal_uint8 *alpha_id;
kal_uint8 dcs_of_alpha_id;
}
rmmi_sat_play_tone_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 mmi_info_type;
kal_uint8 no_alpha_id;
kal_uint8 *alpha_id;
kal_uint8 dcs_of_alpha_id;
}
rmmi_sat_mmi_info_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 condition;
kal_uint32 duration;
kal_uint8 no_alpha_id1;
kal_uint8 *alpha_id1;
kal_uint8 dcs_of_alpha_id1;
kal_uint8 no_alpha_id2;
kal_uint8 *alpha_id2;
kal_uint8 dcs_of_alpha_id2;
kal_uint8 size_of_ccp;
kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
kal_uint8 size_of_subaddr;
kal_uint8 subaddr[MAX_SIM_SUB_ADDR_BCD_LEN];
kal_uint8 no_addr;
kal_uint8 *addr;
}
rmmi_sat_setup_call_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 is_sms_packed_required;
kal_uint8 size_of_addr;
kal_uint8 addr[MAX_SIM_ADDR_LEN]; //mtk02514_081216
kal_uint8 no_alpha_id;
kal_uint8 *alpha_id;
kal_uint8 dcs_of_alpha_id;
kal_uint8 no_sms_tpdu;
kal_uint8 *sms_tpdu;
}
rmmi_sat_send_sms_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 no_alpha_id;
kal_uint8 *alpha_id;
kal_uint8 dcs_of_alpha_id;
kal_uint8 no_ss_string;
kal_uint8 *ss_string;
}
rmmi_sat_send_ss_struct;
typedef struct
{
kal_uint8 cmd_detail[5];
kal_uint8 no_alpha_id;
kal_uint8 *alpha_id;
kal_uint8 dcs_of_alpha_id;
kal_uint8 no_ussd_string;
kal_uint8 *ussd_string;
kal_uint8 dcs_of_ussd_string;
}
rmmi_sat_send_ussd_struct;
/* TYPES */
typedef enum
{
RMMI_VTS_SPEECH_IN = 0,
RMMI_VTS_SPEECH_OUT = 1,
RMMI_VTS_KEY_BEEP = 2,
RMMI_VTS_DTMF_TONE = 3,
RMMI_VTS_RINGER = 4,
RMMI_VTS_MEDIA = 5,
RMMI_NUM_OF_VTS_TYPE
}
rmmi_vts_type_enum;
typedef enum
{
RMMI_VTS_PLAY_CRESCENDO = 0, /* Play sound for crescendo. */
RMMI_VTS_PLAY_INFINITE = 1, /* Play sound for infinite. */
RMMI_VTS_PLAY_ONCE = 2, /* Play sound for once. */
RMMI_VTS_PLAY_DESCENDO = 3, /* Play sound for descendo. */
RMMI_VTS_PLAY_OFF = 4, /* stop sound */
RMMI_NUM_OF_VTS_PLAY_MODE
}
rmmi_vts_play_mode_enum;
#endif /* __SAT__ */
typedef struct
{
kal_uint8 err_string[RMMI_MAX_ERR_STR_LEN];
} rmmi_error_msg_struct;
//RMMI_UT ---
#define ATCI_MAX_UT_IO_LENGTH 1024
typedef struct
{
kal_uint8 ref_count;
kal_uint16 msg_len;
kal_uint8 src_id;
kal_uint8 port;
kal_uint8 string[ATCI_MAX_UT_IO_LENGTH];
kal_bool stuff;
} atci_ut_rmmi_input_string_struct; // MSG_ID_ATCI_UT_RMMI_INPUT_STRING
typedef struct
{
kal_uint8 ref_count;
kal_uint16 msg_len;
kal_uint8 src_id;
kal_uint8 port;
kal_uint8 string[ATCI_MAX_UT_IO_LENGTH];
kal_bool stuff;
} atci_ut_rmmi_output_string_struct; // MSG_ID_ATCI_UT_RMMI_OUTPUT_STRING
//--- RMMI_UT
typedef void (*RMMI_EXT_CMD_FUNCTION) (rmmi_string_struct *source_string_ptr);
typedef kal_bool(*RMMI_BASIC_CMD_FUNCTION)
(rmmi_string_struct *source_string_ptr, rmmi_multiple_basic_cmd_struct *head_node_ptr, rmmi_err_id_enum *err_id);
typedef void (*RMMI_IND_FUNCTION) ();
extern rmmi_context_struct *rmmi_ptr_g;
extern rmmi_common_context_struct *rmmi_common_ptr_g;
extern module_type rmmi_current_mod_id;
extern rmmi_context_struct rmmi_cntxt_g[RMMI_MAX_SIM_NUM];
#if defined(__ATCMD_ONOFF_CHECK__)
extern kal_bool rmmi_check_at_enable;
#endif
#if defined(__DUAL_TALK_MODEM_SUPPORT__)
typedef struct
{
kal_uint8 speech_mode;
kal_uint8 rat_mode;
} rmmi_spc_espeech_param_struct;
typedef struct
{
kal_uint8 sidetone;
} rmmi_spc_esstv_param_struct;
typedef struct
{
kal_uint8 tone_id;
} rmmi_spc_edtp_param_struct;
typedef struct
{
kal_uint8 esetdev_mode;
kal_uint8 src_dev;
} rmmi_spc_esetdev_param_struct;
typedef struct
{
kal_uint8 volume;
kal_uint8 gain_id;
} rmmi_spc_esov_param_struct;
typedef struct
{
kal_uint8 mic_volume;
} rmmi_spc_esmv_param_struct;
typedef struct
{
kal_uint8 mode;
} rmmi_spc_essma_param_struct;
typedef union
{
rmmi_spc_espeech_param_struct *espeech_param;
rmmi_spc_esstv_param_struct *esstv_param;
rmmi_spc_edtp_param_struct *edtp_param;
rmmi_spc_esetdev_param_struct *esetdev_param;
rmmi_spc_esov_param_struct *esov_param;
rmmi_spc_esmv_param_struct *esmv_param;
rmmi_spc_essma_param_struct *essma_param;
} rmmi_spc_param_union;
#endif /* __DUAL_TALK_MODEM_SUPPORT__ */
#endif /* _RMMI_CONTEXT_H */