blob: e8e507347d21d843a3e7f930d96eec9c3f4c9a33 [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2016
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35/*************************************************************
36*
37* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 2005-2010 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44#ifndef VALUIMAPI_H
45#define VALUIMAPI_H
46/*****************************************************************************
47
48 FILE NAME: valuimapi.h
49
50 DESCRIPTION:
51
52 This file contains all constants and typedefs needed by
53 valuimapi.c. It provides the main UIM functions to VAL layer.
54
55
56*****************************************************************************/
57#include "uimapi.h"
58#include "valapi.h"
59#include "valphbapi.h"
60#include "valsmsapi.h"
61#ifdef MTK_DEV_C2K_IRAT
62#include "valutkapi.h"
63#endif
64
65#ifdef __cplusplus
66extern "C" {
67#endif
68
69#define VAL_CHV_MAX_INPUT_NUM 3
70#define VAL_CHV_UNBLOCK_MAX_INPUT_NUM 10
71#define VAL_UIM_MAX_REG_IDS 2
72#define VAL_UIM_MAX_MDN_COUNT 10
73#ifdef MTK_CBP
74/* according to 3.4.34 of TIA/EIA-95-B of C.S0023 */
75#define VAL_MAX_DIGITS_IN_EF_MDN 15
76
77#define VAL_UIM_MAX_FULLPATH_LENGTH 8
78#define VAL_UIM_MAX_RECORD_NUM 20
79
80#define VAL_UIM_ICCID_LEN 21
81#endif
82#define VAL_UIM_MAX_SMSVP_COUNT 4
83
84/* CHV Status read from UIM card */
85typedef struct
86{
87 CardStatusT CardStatus;
88 ChvStatusT ChvStatus;
89#ifdef MTK_DEV_C2K_IRAT
90 kal_bool UsimAppExisted;
91#endif
92 kal_uint8 ChvSum; /* Sum of CHV attempt */
93 kal_uint8 PukSum; /* Sum of UNBLOCK CHV attempt */
94 kal_uint8 Chv1LeftCount;
95 kal_uint8 Chv2LeftCount;
96 kal_uint8 Puk1LeftCount;
97 kal_uint8 Puk2LeftCount;
98#ifdef __CARRIER_RESTRICTION__
99 kal_uint8 SlotId;
100#endif
101} ValChvStatusT;
102
103typedef struct
104{
105 kal_bool AppInfoValid;
106 kal_uint8 Channel_Id;
107 kal_uint8 Protocol_Id;
108 kal_uint8 AID_Len;
109 kal_uint8 AID[UICC_AID_MAX_LEN];
110 kal_uint8 APP_Label_Len;
111 kal_uint8 APP_Label[UICC_APP_LABEL_LEN];
112 kal_bool PIN1_Enabled;
113 kal_bool PIN2_Enabled;
114 kal_uint8 PIN1_Count;
115 kal_uint8 PIN2_Count;
116 kal_uint8 PUK1_Count;
117 kal_uint8 PUK2_Count;
118 kal_uint8 ChvStatus;
119#ifdef __CARRIER_RESTRICTION__
120 kal_uint8 SlotId;
121#endif
122 kal_uint16 CardStatus;
123}ValCardAppInfoT;
124
125#ifdef MTK_DEV_C2K_IRAT
126extern kal_uint8 ValUimInfoReadStatus;
127
128#define VAL_UIM_SP_NAME_READ_MASK 0x01
129#define VAL_UIM_MDN_READ_MASK 0x02
130#define VAL_UIM_ICCID_READ_MASK 0x04
131#define VAL_UIM_NAM_DATA_READ_MASK 0x08
132#define VAL_UIM_INFO_ALL_READ_MASK 0x0F
133
134#define UIM_UTK_MENU_SIZE 256
135
136typedef enum
137{
138 VAL_UTK_SMS_FILE_COMPLETED = 0x1,
139 VAL_UTK_HLP_FILE_COMPLETD = 0x2,
140 VAL_UTK_ALL_FILE_COMPLETED_MASK = 0x3
141}ValUimUtkFileMaskTypeT;
142
143typedef enum
144{
145 VAL_CAT_TYPE_STK,
146 VAL_CAT_TYPE_UTK,
147 VAL_CAT_TYPE_NUM
148} ValCatTypeE;
149
150typedef enum
151{
152 VAL_UTK_HANDLE_BY_TE, /* CMD and TR handled by AP/MMI */
153 VAL_UTK_HANDLE_BY_SIM, /* CMD and TR handled by modem. But some cmd might need TE involve ex: STKCALL,STKSS,.. */
154 VAL_UTK_HANDLE_NULL
155}ValUtkCmdCfgE;
156
157typedef enum
158{
159 UTK_NO_TIMER_STATUS = 0,
160 UTK_TIMER_RUNNING,
161 UTK_TIMER_NOT_RUNNING,
162 UTK_TIMER_STOPPED,
163 UTK_TIMER_TIMED_OUT
164} UtkTimerStatusT;
165
166typedef struct
167{
168 kal_uint32 UtkTimerValue;
169 UtkTimerStatusT UtkTimerStatus;
170 kal_uint32 StartTime;
171}UtkTimerManagerT;
172
173
174enum
175{
176 UTK_FILE_ADN = 0x6F3A,
177 UTK_FILE_FDN = 0x6F3B,
178 UTK_FILE_SMS = 0x6F3C,
179 UTK_FILE_SPN = 0x6F41,
180 UTK_FILE_MDN = 0x6F44,
181 UTK_FILE_CST = 0x6F32,
182 UTK_FILE_EST = 0x6F75,
183 UTK_FILE_ICCID = 0x2FE2,
184 UTK_FILE_HRPDCAP = 0x6F56,
185 UTK_FILE_HRPDUPP = 0x6F57,
186 UTK_FILE_ME3GPD = 0x6F48,
187 UTK_FILE_3GPDOPM = 0x6F49,
188 UTK_FILE_SIPCAP = 0x6F4A,
189 UTK_FILE_MIPCAP = 0x6F4B,
190 UTK_FILE_SIPUPP = 0x6F4C,
191 UTK_FILE_MIPUPP = 0x6F4D,
192 UTK_FILE_SIPSP = 0x6F4E,
193 UTK_FILE_MIPSP = 0x6F4F,
194 UTK_FILE_SIPPAPSS = 0x6F50,
195 UTK_FILE_MIPFLAGS = 0x6F78,
196 UTK_FILE_C_MIPFLAGS = 0x6F84,
197 UTK_FILE_SIPUPPEXT = 0x6F7D,
198 UTK_FILE_MIPUPPEXT = 0x6F80,
199 UTK_FILE_TCPCONFIG = 0x6F79,
200 UTK_FILE_C_TCPCONFIG = 0x6F88,
201 UTK_FILE_DGC = 0x6F7A,
202 UTK_FILE_C_DGC = 0x6F89,
203 UTK_FILE_IPV6CAP = 0x6F77,
204 UTK_FILE_C_IPV6CAP = 0x6F87
205 /* add other files here */
206};
207
208#define VAL_UIM_FILE_LIST_MAX 50
209
210typedef struct
211{
212 kal_uint8 FileCount;
213 kal_uint16 FileId[VAL_UIM_FILE_LIST_MAX];
214}ValUimFileListT;
215
216#endif
217
218/* Define CHV type */
219typedef enum
220{
221 VAL_CHV1 = 1,
222 VAL_CHV2
223} ValChvIdT;
224
225/* Define CHV operation response result */
226typedef enum
227{
228 VAL_CHV_OP_SUCCESS = 0,
229 VAL_CHV_NOT_INITIALIZE, /* no CHV initialized */
230 VAL_CHV_OP_FAILURE_AND_PERMIT_ATTEMPT, /* unsuccessful CHV/UNBLOCK CHV verification, at least one attempt left */
231 VAL_CHV_OP_CONTRADICTION_WITH_CHV_STATUS, /* in contradiction with CHV status */
232 VAL_CHV_OP_CONTRADICTION_WITH_INVALIDATION_STATE, /* in contradiction with invalidation status */
233 VAL_CHV_OP_FAILURE_AND_NO_ATTEMPT, /*unsuccessful CHV/UNBLOCK CHV verification, no attempt left;CHV/UNBLOCK CHV blocked*/
234 VAL_CHV_OP_FAILURE_RECOVERY, /*fast recovery during CHV process*/
235 VAL_CHV_FAILURE_INSUFFICIENT_MEMORY, /* UICC returns 9210 for CHV command*/
236 VAL_CHV_OP_FAILURE /*failure caused by other causes */
237} ValChvOpResultT;
238
239#ifdef CHV_DEBUG
240/* test message */
241typedef struct
242{
243 kal_uint8 ChvId; /* Specify the CHV */
244 kal_uint8 ChvLen;
245 kal_uint8 ChvVal[8]; /* CHV value */
246} ValChvTstReqVerifyMsgT;
247/* change CHV msg */
248typedef struct
249{
250 kal_uint8 ChvId; /* Specify the CHV */
251 kal_uint8 OldChvLen;
252 kal_uint8 OldChvVal[8];/* Old CHV value */
253 kal_uint8 NewChvLen;
254 kal_uint8 NewChvVal[8];/* New CHV value */
255} ValChvTstReqChangeMsgT;
256
257/* Disable CHV Msg */
258typedef struct
259{
260 kal_uint8 ChvLen;
261 kal_uint8 Chv1Val[8]; /* CHV1 value */
262} ValChvTstReqDisableMsgT;
263
264/* Enable CHV Msg */
265typedef struct
266{
267 kal_uint8 ChvLen;
268 kal_uint8 Chv1Val[8]; /* CHV1 value */
269} ValChvTstReqEnableMsgT;
270
271/* Unblock CHV Msg */
272typedef struct
273{
274 kal_uint8 ChvId; /* Specify the CHV */
275 kal_uint8 UblkChvLen;
276 kal_uint8 UblkChvVal[8];/* Unblock CHV value */
277 kal_uint8 NewChvLen;
278 kal_uint8 NewChvVal[8]; /* New CHV value */
279} ValChvTstReqUnblockMsgT;
280
281#endif /* CHV_DEBUG */
282
283/*********UIM Short Message Service Parameters structure***********/
284typedef struct
285{
286 kal_uint8 RecLen;
287 kal_uint8 RecData[127];
288}ValUimSmsParamRecT;
289
290/******************** UIM MDN structures***************************/
291/* Val MDN buffer structure(MDN is BCD type) */
292typedef struct
293{
294 kal_uint8 MdnLen;
295 kal_uint8 Mdn[8];
296} ValUimMdnT;
297
298/* Val MDN structure(MDN is kal_char type) */
299typedef struct
300{
301 kal_uint8 MdnLen;
302 kal_uint8 Mdn[NAM_MAX_MDN_DIGITS];
303} ValUimMdnRecT;
304
305/****** Val Uim notify register event *****/
306typedef enum
307{
308 VAL_UIM_EVENT_NOTIFY_REGISTER
309} ValUimEventIdT;
310#if 0
311/* under construction !*/
312/* under construction !*/
313/* under construction !*/
314/* under construction !*/
315#endif
316/* ETS Test Messages */
317typedef struct
318{
319 kal_uint8 nIndex;
320} ValUimGenericMsgT;
321
322typedef struct
323{
324 kal_uint8 nIndex;
325 kal_uint8 Name[MAXALPHALENGTH];
326 kal_uint8 PhNum[21];
327} ValUimUpdatePhbRecMsgT;
328
329typedef struct
330{
331 kal_uint8 nIndex;
332 kal_uint8 nStatus;
333 kal_uint8 MsgData[255];
334 kal_uint8 MsgLen;
335} ValUimUpdateSmsRecMsgT;
336
337typedef struct
338{
339 ExeRspMsgT RspInfo;
340} ValChvMsgT;
341
342typedef struct
343{
344 kal_bool status;
345} ValChvStatusMsgT;
346
347typedef struct
348{
349 ExeRspMsgT RspInfo;
350 kal_uint8 ChvId;
351 kal_uint8 ChvLen;
352 kal_uint8 Chv[8];
353} ValChvVerifyMsgT;
354
355typedef struct
356{
357 ExeRspMsgT RspInfo;
358 kal_uint8 ChvId;
359 kal_uint8 OldChvLen;
360 kal_uint8 OldChv[8];
361 kal_uint8 NewChvLen;
362 kal_uint8 NewChv[8];
363} ValChvChangeMsgT;
364
365typedef struct
366{
367 ExeRspMsgT RspInfo;
368 kal_uint8 Chv1Len;
369 kal_uint8 Chv1[8];
370} ValChvEnableDisableMsgT;
371
372typedef struct
373{
374 ExeRspMsgT RspInfo;
375 kal_uint8 ChvId;
376 kal_uint8 UnblockChvLen;
377 kal_uint8 UnblockChv[8];
378 kal_uint8 NewChvLen;
379 kal_uint8 NewChv[8];
380} ValChvUnblockMsgT;
381
382typedef struct
383{
384 ExeRspMsgT RspInfo;
385} ValUimGetMaxMdnRecsMsgT;
386
387typedef struct
388{
389 kal_uint8 numRecs;
390} ValUimNumRecsMsgT;
391
392typedef struct
393{
394 kal_uint8 Encoding;
395 kal_uint8 Language;
396 kal_uint16 StringLen;
397 kal_char String[32];
398} SPNameT;
399
400typedef struct
401{
402 SPNameT SPName;
403 kal_bool IsValidData;
404} ValSPNameT;
405
406
407/*get gsm imsi data*/
408#define VAL_UIM_GSM_IMSI_LEN 9
409
410typedef struct
411{
412 ExeRspMsgT RspMsg;
413 kal_bool ImsiValid;
414 kal_uint8 ImsiData[VAL_UIM_GSM_IMSI_LEN];
415}ValUimGsmImsiRspMsgT;
416
417typedef enum
418{
419 TYPE_RAND = 0,
420 TYPE_RANDU =1
421}ValRandTypeT;
422
423typedef enum
424{
425 VAL_UIM_NT_UNKNOWN = 0,
426 VAL_UIM_NT_INTERNATIONAL,
427 VAL_UIM_NT_NATIONAL,
428 VAL_UIM_NT_NETWORK_SPECIFIC,
429 VAL_UIM_NT_SUBSCRIBER,
430 VAL_UIM_NT_RESERVED,
431 VAL_UIM_NT_ABBREVIATED = 6
432} ValUimNumberTypeT;
433
434typedef enum
435{
436 VAL_UIM_NP_UNKNOWN = 0,
437 VAL_UIM_NP_ISDN_TELEPHONY,
438 VAL_UIM_NP_RESERVED2,
439 VAL_UIM_NP_DATA,
440 VAL_UIM_NP_TELEX,
441 VAL_UIM_NP_RESERVED5,
442 VAL_UIM_NP_RESERVED6,
443 VAL_UIM_NP_RESERVED7,
444 VAL_UIM_NP_RESERVED8,
445 VAL_UIM_NP_PRIVATE = 9
446} ValUimNumberPlanT;
447
448typedef enum
449{
450 VAL_UIM_READ_BINARY = 0xB0,
451 VAL_UIM_READ_RECORD = 0xB2,
452 VAL_UIM_UPDATE_BINARY = 0xD6,
453 VAL_UIM_UPDATE_RECORD = 0xDC,
454 VAL_UIM_STORE_ESN = 0xDE,
455 VAL_UIM_STATUS = 0xF2,
456 VAL_UIM_ENVELOPE = 0xC2,
457 VAL_UIM_TERM_PROFILE = 0x10,
458 VAL_UIM_TERM_RESPONSE = 0x14,
459 VAL_UIM_SELECT_FILE = 0xA4,
460 VAL_UIM_GET_RESPONSE = 0xC0,
461 VAL_UIM_SEARCH_RECORD = 0xA2
462 /* Reserved */
463}ValUimCmdT;
464
465#ifdef MTK_DEV_C2K_IRAT
466typedef enum
467{
468 VAL_UIM_BT_CONNECT = 0,
469 VAL_UIM_BT_DISCONNECT,
470 VAL_UIM_BT_POWER_ON,
471 VAL_UIM_BT_POWER_OFF,
472 VAL_UIM_BT_RESET,
473 VAL_UIM_BT_APDU,
474 VAL_UIM_BT_INVALID_CMD
475}ValBTCmdT;
476#endif
477
478typedef struct
479{
480 kal_bool Ack; /* KAL_TRUE: Operation is successful, KAL_FALSE: File doesn't exist or operation is error */
481 kal_uint8 SDNRecCount;
482} ValUimSDNParamsT;
483
484typedef struct
485{
486 kal_bool Ack; /* KAL_TRUE: Operation is successful, KAL_FALSE: File doesn't exist or operation is error */
487 kal_bool IsFree;
488 kal_uint8 RecordIndex;
489 kal_uint8 AlphaIdentifier[VAL_PHB_MAX_ALPHA_LENGTH];
490 kal_uint8 PhoneNumber[VAL_PHB_MAX_PHONE_LENGTH];
491 kal_uint8 TON;
492 kal_uint8 NPI;
493} ValUimSDNRecT;
494
495typedef struct
496{
497 kal_uint8 DisCond; /*display condiction*/
498 kal_uint8 Encoding; /* character encoding*/
499 kal_uint8 LangInd; /*language indication */
500 kal_uint8 Name[32];
501} ValUimProviderName;
502
503#define VAL_UIM_MAX_ADDRESS_NUM 20
504/* Address (8.1) */
505typedef struct
506{
507 ValUimNumberPlanT Npi;
508 ValUimNumberTypeT Ton;
509 kal_uint8 Len;
510 kal_uint8 Number[VAL_UIM_MAX_ADDRESS_NUM];
511} ValUimAddressT;
512
513typedef enum
514{
515 VAL_UIM_SETUP_CALL_ONIDLE, /* set up call, but only if not currently busy on another call */
516 VAL_UIM_SETUP_CALL_ONIDLE_REDIALABLE, /*set up call, but only if not currently busy on another call, with redial*/
517 VAL_UIM_SETUP_CALL_HOLDABLE, /*set up call, putting all other calls (if any) on hold */
518 VAL_UIM_SETUP_CALL_HOLDABLE_REDIALABLE, /*set up call, putting all other calls (if any) on hold, with redial*/
519 VAL_UIM_SETUP_CALL_DISCONNECTABLE, /*set up call, disconnecting all other calls (if any)*/
520 VAL_UIM_SETUP_CALL_DISCONNECTABLE_REDIALABLE /*set up call, disconnecting all other calls (if any), with redial*/
521} ValUimCallTypeT;
522
523typedef struct
524{
525 ValUimCallTypeT CallType;
526 ValUimAddressT Address;
527 kal_uint32 Duration; /* ms */
528}ValUimSetUpCallT;
529
530typedef struct
531{
532 kal_uint8 UtkSmsLen;
533 kal_uint8 *UtkSmsBufferP;
534 kal_uint8 UtkSmsTR;
535 ValUimAddressT UtkSmsAddress;
536 kal_bool additionInfo_existed;
537 kal_uint8 additionalInfo;
538 kal_bool utkIconDisplayed;
539 kal_uint8 utkSmsMode;
540}utkSmsInfoT;
541
542typedef struct
543{
544 ValUimSetUpCallT utkCallCmd;
545 kal_uint8 utkCallTR;
546 kal_bool additionInfo_existed;
547 kal_uint8 additionalInfo;
548 kal_bool utkIconDisplayed;
549 kal_uint8 rspAtChan;
550}utkCallInfoT;
551
552#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
553typedef enum{
554 UTK_PROA_STATE_NULL,
555 UTK_PROA_STATE_WAITING_TR,
556 UTK_PROA_STATE_WAITING_SESSION_END
557}UtkProacmStateE;
558#endif
559
560typedef struct
561{
562 ValCatTypeE CatType;
563 kal_uint8 StoredUtkMenu[UIM_UTK_MENU_SIZE];
564 kal_uint16 UtkMenuLen;
565
566 kal_uint16 CmdId; /*defined by MD1*/
567 kal_uint8 CmdNum;
568 kal_uint8 CmdType;
569 kal_uint8 CmdQualifier;
570 UtkTimerManagerT UtkTimerManager[UTK_TIMER_MANAGER_NUM];
571 kal_timerid UtkTimer[UTK_TIMER_MANAGER_NUM];
572 kal_bool RecvTerminalRspFromAp;
573 utkSmsInfoT utkSmsInfo;
574 utkCallInfoT utkCallInfo;
575#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
576 UtkProacmStateE proactiveCmdState;
577 kal_uint8 currProactiveCmd;
578 kal_bool pendEvtDownloadDataValid;
579 ValUtkSetupEventDataT pendEvtDownloadData;
580#endif
581}ValUimUtkInfoT;
582
583typedef enum
584{
585
586 UIM_FILE_TYPE_INVALID = 0x00,
587 UIM_FILE_TYPE_MF,
588 UIM_FILE_TYPE_DF,
589 UIM_FILE_TYPE_EF,
590 UIM_FILE_TYPE_EF_TRANSPARENT,
591 UIM_FILE_TYPE_EF_CYCLIC,
592 UIM_FILE_TYPE_EF_LINEARFIXED,
593} UimFileTypeT;
594
595typedef struct
596{
597 kal_uint16 sw;
598 kal_uint8 file_fcp_len;
599 kal_uint8* file_fcp;
600}ValCacheFcpInfoT;
601
602typedef struct
603{
604 kal_bool binary_valid;
605 kal_uint16 sw;
606 kal_uint16 cached_binary_len;
607 kal_uint8* cached_binary_content;
608}ValCacheBinaryInfoT;
609
610typedef struct
611{
612 kal_bool record_valid;
613 kal_uint8 record_index;
614 kal_uint8 record_len;
615 kal_uint16 sw;
616 kal_uint8* record_data;
617}ValCacheRecordInfoT;
618
619typedef struct
620{
621 kal_uint8 file_record_num;
622 ValCacheRecordInfoT cached_record_content[VAL_UIM_MAX_RECORD_NUM]; /*first two bytes for SW*/
623}ValCacheRecordInfoListT;
624
625
626typedef struct
627{
628 kal_bool is_used;
629 UimFileTypeT file_type;
630 kal_uint8 file_path_len;
631 kal_uint8 file_path[VAL_UIM_MAX_FULLPATH_LENGTH];
632 kal_bool file_fcp_valid;
633 ValCacheFcpInfoT fcp_info;
634 union
635 {
636 ValCacheBinaryInfoT binary_info;
637 ValCacheRecordInfoListT record_info;
638 } file_content_info;
639}ValCacheUimFileT;
640
641typedef struct
642{
643 kal_uint16 PduLen;
644 kal_uint8* PduData;
645}ValExtendedPduT;
646
647/*****************************************************************************
648
649 FUNCTION NAME: ValUimInit
650
651 DESCRIPTION:
652
653 Create ValUimEvtLock.
654
655 PARAMETERS:
656
657 None.
658
659 RETURNED VALUES:
660
661 None
662
663*****************************************************************************/
664void ValUimInit( void );
665
666#if 0
667/* under construction !*/
668#endif
669
670/********************************************************************************
671
672 FUNCTION NAME: ValUimGetMaxMdnRecNum
673
674 DESCRIPTION:
675
676 It's invoked to Get the number of EF MDN record in UIM card.
677
678 PARAMETERS:
679
680 None.
681
682 RETURNED VALUES:
683
684 Num: the number of MDN record.
685
686*********************************************************************************/
687kal_uint8 ValUimGetMaxMdnRecNum( void );
688
689/********************************************************************************
690
691 FUNCTION NAME: ValUimGetMdnRec
692
693 DESCRIPTION:
694
695 It's invoked to Get MDN record.
696
697 PARAMETERS:
698
699 Index: Record index, start from 1.
700 MdnRecP: Returned Mdn pointer.
701
702 RETURNED VALUES:
703
704 KAL_TRUE: this operation is successful.
705 KAL_FALSE: failure.
706
707*********************************************************************************/
708kal_bool ValUimGetMdnRec( kal_uint8 Index,
709 ValUimMdnRecT* MdnRecP );
710
711/********************************************************************************
712
713 FUNCTION NAME: ValUimUpdateMdnRec
714
715 DESCRIPTION:
716
717 This routine sends Update Record(6F44) message to the UIM task.
718 PARAMETERS:
719
720 Index: Record index, start from 1.
721 Len: MDN length
722 MdnP: Point to MDN buffer.
723
724 RETURNED VALUES:
725
726 KAL_TRUE: this operation is successful.
727 KAL_FALSE: failure.
728
729*********************************************************************************/
730kal_bool ValUimUpdateMdnRec( kal_uint8 Index,
731 kal_uint8 Len,
732 kal_uint8* MdnP );
733
734/*********************************************************************************
735
736 FUNCTION NAME: ValUimDelMdnRec
737
738 DESCRIPTION:
739
740 This routine sends Update Record(6F44) message to the UIM task.
741
742 PARAMETERS:
743
744 Index: Record index, start from 1.
745
746 RETURNED VALUES:
747
748 KAL_TRUE: this operation is successful.
749 KAL_FALSE: failure.
750
751**********************************************************************************/
752kal_bool ValUimDelMdnRec( kal_uint8 Index );
753
754/*****************************************************************************
755
756 FUNCTION NAME: ValUimMdnDeliverMsg
757
758 DESCRIPTION:
759
760 Deliver UIM MDN response messages. It is used by valtask.
761
762 PARAMETERS:
763
764 MsgId: received message id
765 MsgP: message
766 MsgSize: message size
767
768 RETURNED VALUES:
769
770 None
771
772*****************************************************************************/
773void ValUimMdnDeliverMsg( kal_uint32 MsgId,
774 void* MsgP,
775 kal_uint32 MsgSize );
776
777/*****************************************************************************
778
779 FUNCTION NAME: ValChvGetStatus
780
781 DESCRIPTION:
782
783 This routine sends UIM Get Status message to the UIM task, and saves callback
784 function's pointer in order to process CHV state when the response from the
785 UIM is received.
786
787 PARAMETERS:
788
789 ChvCallbackP: Pointer to callback function
790
791 RETURNED VALUES:
792
793 KAL_TRUE: Get Status Msg has been sent.
794 KAL_FALSE: error. callback=NULL or other task is doing this operation.
795
796*****************************************************************************/
797kal_bool ValChvGetStatus( void(*ChvCallbackP)(ValChvStatusT) );
798
799#ifdef MTK_DEV_C2K_IRAT
800/*****************************************************************************
801
802 FUNCTION NAME: ValLocalChvVerify
803
804 DESCRIPTION:
805
806 This routine sends verify CHV message to the UIM task
807
808 PARAMETERS:
809
810 ChvId: CHV1 or CHV2
811
812 RETURNED VALUES:
813
814 none
815
816*****************************************************************************/
817void ValLocalChvVerify( ValChvIdT ChvId);
818#endif
819/*****************************************************************************
820
821 FUNCTION NAME: ValChvVerify
822
823 DESCRIPTION:
824
825 This routine sends App verify CHV message to the UIM task, and saves callback
826 function's pointer in order to process the result when the response from the
827 UIM is received.
828
829 PARAMETERS:
830
831 ChvId: CHV1 or CHV2
832 ChvLen: Length of CHV value
833 ChvP: Pointer to CHV value
834 ChvCallbackP: Pointer to callback function
835
836 RETURNED VALUES:
837
838 KAL_TRUE: Uim App Verify Msg has been sent.
839 KAL_FALSE: error. callback=NULL or other task is doing this operation.
840
841*****************************************************************************/
842kal_bool ValChvVerify( ValChvIdT ChvId,
843 kal_uint8 ChvLen,
844 kal_uint8* ChvP,
845 void (*ChvCallbackP)(ValChvOpResultT) );
846
847/*****************************************************************************
848
849 FUNCTION NAME: ValChvChange
850
851 DESCRIPTION:
852
853 This routine sends App change CHV message to the UIM task, and saves callback
854 function's pointer in order to process the result when the response from the
855 UIM is received.
856
857 PARAMETERS:
858
859 ChvId: CHV1 or CHV2
860 OldChvLen: Length of old CHV value
861 OldChvP: Pointer to old CHV value
862 NewChvLen: Length of new CHV value
863 NewChvP: Pointer to new CHV value
864 ChvCallbackP: Pointer to callback function
865
866 RETURNED VALUES:
867
868 KAL_TRUE: Uim App change Chv Msg has been sent.
869 KAL_FALSE: error. callback=NULL or other task is doing this operation.
870
871*****************************************************************************/
872kal_bool ValChvChange( ValChvIdT ChvId,
873 kal_uint8 OldChvLen,
874 kal_uint8* OldChvP,
875 kal_uint8 NewChvLen,
876 kal_uint8* NewChvP,
877 void (*ChvCallbackP)(ValChvOpResultT) );
878
879/*****************************************************************************
880
881 FUNCTION NAME: ValChvDisable
882
883 DESCRIPTION:
884
885 This routine sends App disable CHV message to the UIM task, and saves callback
886 function's pointer in order to process the result when the response from
887 the UIM is received.
888
889 PARAMETERS:
890
891 Chv1Len: Length of CHV1 value
892 Chv1P: Pointer to CHV1 value
893 ChvCallbackP: Pointer to callback function
894
895 RETURNED VALUES:
896
897 KAL_TRUE: Uim App Disable Chv Msg has been sent.
898 KAL_FALSE: error. callback=NULL or other task is doing this operation.
899
900*****************************************************************************/
901kal_bool ValChvDisable( kal_uint8 Chv1Len,
902 kal_uint8* Chv1P,
903 void (*ChvCallbackP)(ValChvOpResultT) );
904
905/*****************************************************************************
906
907 FUNCTION NAME: ValChvEnable
908
909 DESCRIPTION:
910
911 This routine sends App enable CHV message to the UIM task, and saves callback
912 function's pointer in order to process the result when the response from
913 the UIM is received.
914
915 PARAMETERS:
916
917 Chv1Len: Length of CHV1 value
918 Chv1P: Pointer to CHV1 value
919 ChvCallbackP: Pointer to callback function
920
921 RETURNED VALUES:
922
923 KAL_TRUE: Uim App Enable Chv Msg has been sent.
924 KAL_FALSE: error. callback=NULL or other task is doing this operation.
925
926*****************************************************************************/
927kal_bool ValChvEnable( kal_uint8 Chv1Len,
928 kal_uint8* Chv1P,
929 void (*ChvCallbackP)(ValChvOpResultT) );
930
931/*****************************************************************************
932
933 FUNCTION NAME: ValUimEnableChvBySimIndex
934
935 DESCRIPTION:
936 Send Enable CHV to UIM.
937
938*****************************************************************************/
939kal_bool ValUimEnableChvBySimIndex(kal_uint8 chan,
940 kal_uint8 simIndex,
941 kal_uint8 Chv1Len,
942 kal_uint8* Chv1P);
943
944
945/*****************************************************************************
946
947 FUNCTION NAME: ValUimDisableChvBySimIndex
948
949 DESCRIPTION:
950 Send Disable CHV to UIM.
951
952*****************************************************************************/
953kal_bool ValUimDisableChvBySimIndex(kal_uint8 chan,
954 kal_uint8 simIndex,
955 kal_uint8 Chv1Len,
956 kal_uint8* Chv1P);
957
958
959
960
961
962/*****************************************************************************
963
964 FUNCTION NAME: ValUimUnblockChvBySimIndex
965
966 DESCRIPTION:
967 Send Unblock CHV to UIM.
968
969 PARAMETERS:
970
971 ChvId: CHV1 or CHV2
972 UnblockChvLen: Length of UNBLOCK CHV value
973 UnblockChvP: Pointer to UNBLOCK CHV value
974 NewChvLen: Length of new CHV value
975 NewChvP: Pointer to new CHV value
976 ChvCallbackP: Pointer to callback function
977
978 RETURNED VALUES:
979
980 KAL_TRUE: Uim App Unbolck chv Msg has been sent.
981 KAL_FALSE: error. callback=NULL or other task is doing this operation.
982
983*****************************************************************************/
984kal_bool ValUimUnblockChvBySimIndex(kal_uint8 chan,
985 kal_uint8 simIndex,
986 ValChvIdT ChvId,
987 kal_uint8 UnblockChvLen,
988 kal_uint8* UnblockChvP,
989 kal_uint8 NewChvLen,
990 kal_uint8* NewChvP);
991
992
993
994/*****************************************************************************
995
996 FUNCTION NAME: ChvUnblock
997
998 DESCRIPTION:
999
1000 This routine sends App unblock CHV message to the UIM task, and saves callback
1001 function's pointer in order to process the result when the response from
1002 the UIM is received.
1003
1004 PARAMETERS:
1005
1006 ChvId: CHV1 or CHV2
1007 UnblockChvLen: Length of UNBLOCK CHV value
1008 UnblockChvP: Pointer to UNBLOCK CHV value
1009 NewChvLen: Length of new CHV value
1010 NewChvP: Pointer to new CHV value
1011 ChvCallbackP: Pointer to callback function
1012
1013 RETURNED VALUES:
1014
1015 KAL_TRUE: Uim App Unblock Chv Msg has been sent.
1016 KAL_FALSE: error. callback=NULL or other task is doing this operation.
1017
1018*****************************************************************************/
1019kal_bool ValChvUnblock( ValChvIdT ChvId,
1020 kal_uint8 UnblockChvLen,
1021 kal_uint8* UnblockChvP,
1022 kal_uint8 NewChvLen,
1023 kal_uint8* NewChvP,
1024 void (*ChvCallbackP)(ValChvOpResultT) );
1025
1026/********************************************************************************
1027 FUNCTION NAME: ValUimSPNameInit
1028 DESCRIPTION:
1029 This routine initiates the procedure of reading
1030 service provider name parameters of the UIM.
1031 PARAMETERS:
1032 UimCallbackP: Pointer to callback function
1033 RETURNED VALUES:
1034 KAL_TRUE: Uim read sp name Msg has been sent.
1035 KAL_FALSE: error. callback=NULL or other task is doing this operation.
1036*********************************************************************************/
1037kal_bool ValUimSPNameInit(void (*UimCallbackP)(void *));
1038/*****************************************************************************
1039
1040 FUNCTION NAME: ValChvDeliverMsg
1041
1042 DESCRIPTION:
1043
1044 Deliver CHV response message. It is used by valtask.
1045
1046 PARAMETERS:
1047
1048 MsgId: received message id
1049 MsgP: message
1050 MsgSize: message size
1051
1052 RETURNED VALUES:
1053
1054 None
1055
1056*****************************************************************************/
1057void ValChvDeliverMsg( kal_uint32 MsgId,
1058 void* MsgP,
1059 kal_uint32 MsgSize );
1060
1061void ValUimDeliverMsg( kal_uint32 MsgId,
1062 void* MsgP,
1063 kal_uint32 MsgSize );
1064
1065#ifdef __CARRIER_RESTRICTION__
1066void ValUmlDeliverMsg( kal_uint32 MsgId,
1067 void* MsgP );
1068#endif
1069
1070/*****************************************************************************
1071
1072 FUNCTION NAME: ValUimNotifyInit
1073
1074 DESCRIPTION:
1075
1076 Create ValUimNotifyEventLock.
1077
1078 PARAMETERS:
1079
1080 None.
1081
1082 RETURNED VALUES:
1083
1084 None
1085
1086*****************************************************************************/
1087void ValUimNotifyInit( void );
1088
1089/*****************************************************************************
1090
1091 FUNCTION NAME: ValUimRegister
1092
1093 DESCRIPTION:
1094
1095 Other task invokes this function to register UIM message functions
1096 in Val task.
1097
1098 PARAMETERS:
1099 EventFunc: Callback function
1100
1101 RETURNED VALUES:
1102
1103 TRegister ID
1104 -1: failed.
1105
1106*****************************************************************************/
1107RegIdT ValUimRegister( ValEventFunc EventFunc );
1108
1109/*****************************************************************************
1110
1111 FUNCTION NAME: ValUimUnregister
1112
1113 DESCRIPTION:
1114
1115 Other task invokes this function to unregister UIM Notify Register message functions
1116
1117 PARAMETERS:
1118 RegId: Register ID
1119
1120 RETURNED VALUES:
1121
1122 None.
1123
1124*****************************************************************************/
1125void ValUimUnregister( RegIdT RegId );
1126
1127/* Val Uim Phb */
1128
1129void ValUimGetPhbRecParams( void );
1130void ValUimGetPhbRecord( kal_uint8 nIndex );
1131void ValUimUpdatePhbRecord( kal_uint8 nIndex,
1132 kal_uint8* pName,
1133#ifdef MTK_CBP
1134 kal_uint8 name_len,
1135#endif
1136 kal_uint8* pPhNum,
1137 ValUimNumberTypeT TON,
1138 ValUimNumberPlanT NPI,
1139 kal_bool isAtHcpbw);
1140void ValUimErasePhbRecord( kal_uint8 nIndex , kal_bool isAtCpbw);
1141
1142/* Val Uim Sms */
1143void ValUimGetSmsRecParams( void );
1144void ValUimGetSmsRecord( kal_uint8 nIndex );
1145void ValUimUpdateSmsRecord( kal_uint8 nIndex,
1146 kal_uint8 nStatus,
1147 kal_uint8* pMsgData,
1148 kal_uint8 MsgLen );
1149void ValUimEraseSmsRecord( kal_uint8 nIndex );
1150kal_bool ValGetPrefLang(kal_uint8 *pLang, kal_uint8 *pEncoding);
1151//don't modify following Function, brew has referred to it
1152kal_bool ValGetUIMId(kal_uint32 *pId);
1153
1154void ValUimDataRequest( void );
1155void ValUimIdEuimidRequest( void );
1156void GetUimSPName(void * MsgP);
1157void InitAfterPV();
1158void ChvCGetStatusCB(ValChvStatusT resultStatus);
1159void ValGetNewChvStatusCB(ValChvStatusT resultStatus);
1160
1161
1162
1163
1164
1165/********************************************************************************
1166
1167 FUNCTION NAME: ValUimSmsVPInit
1168
1169 DESCRIPTION:
1170
1171 This routine initiates the procedure of reading Sms parameters of the UIM.
1172
1173 PARAMETERS:
1174
1175 None.
1176
1177 RETURNED VALUES:
1178
1179 None.
1180
1181*********************************************************************************/
1182void ValUimSmsVPInit(void);
1183
1184
1185/********************************************************************************
1186
1187 FUNCTION NAME: ValUimGetSmsVPRecNumProcess
1188
1189 DESCRIPTION:
1190
1191 This routine processes VAL_UIM_GET_SMSVP_REC_NUM_MSG response message.
1192
1193 PARAMETERS:
1194
1195 RspMsgP: VAL_UIM_GET_SMSVP_REC_NUM_MSG response message structure pointer.
1196
1197 RETURNED VALUES:
1198
1199 None.
1200
1201*********************************************************************************/
1202void ValUimGetSmsVPRecNumProcess(UimRspMsgT* RspMsgP);
1203
1204/********************************************************************************
1205
1206 FUNCTION NAME: ValUimGetMaxSmsVPRecNum
1207
1208 DESCRIPTION:
1209
1210 It's invoked to Get the number of SMS PARAMETER record in UIM card.
1211
1212 PARAMETERS:
1213
1214 None.
1215
1216 RETURNED VALUES:
1217
1218 Num: the number of SMS PARAMETER record.
1219
1220*********************************************************************************/
1221kal_uint8 ValUimGetMaxSmsVPRecNum(void);
1222
1223
1224
1225/********************************************************************************
1226
1227 FUNCTION NAME: ValUimReadSmsVPProcess
1228
1229 DESCRIPTION:
1230
1231 This routine processes VAL_UIM_READ_SMSVP_REC_MSG response message.
1232
1233 PARAMETERS:
1234
1235 RspMsgP: VAL_UIM_READ_SMSVP_REC_MSG response message structure pointer.
1236
1237 RETURNED VALUES:
1238
1239 None.
1240
1241*********************************************************************************/
1242void ValUimReadSmsVPProcess(UimRspMsgT* RspMsgP);
1243
1244
1245/********************************************************************************
1246
1247 FUNCTION NAME: ValUimUpdateSMSVPProcess
1248
1249 DESCRIPTION:
1250
1251 This routine processes VAL_UIM_UPDATE_SMSVP_REC_MSG response message.
1252
1253 PARAMETERS:
1254
1255 RspMsgP: VAL_UIM_UPDATE_SMSVP_REC_MSG response message structure pointer.
1256
1257 RETURNED VALUES:
1258
1259 None.
1260
1261*********************************************************************************/
1262void ValUimUpdateSMSVPProcess(UimRspMsgT* RspMsgP);
1263
1264
1265/********************************************************************************
1266
1267 FUNCTION NAME: ValUimReadSmsVPRec
1268
1269 DESCRIPTION:
1270
1271 This routine sends Read Record(6F3D) message to the UIM task.
1272
1273 PARAMETERS:
1274
1275 index: Record index, start from 1.
1276
1277 Result:
1278 this Read Record operation is successfully deliveried to UIM driver.
1279
1280*********************************************************************************/
1281void ValUimReadSmsVPRec(kal_uint8 index);
1282
1283
1284/********************************************************************************
1285
1286 FUNCTION NAME: ValUimUpdateSmsVPRec
1287
1288 DESCRIPTION:
1289
1290 This routine sends Update Record(6F3D) message to the UIM task.
1291
1292 PARAMETERS:
1293
1294 index: Record index, start from 1.
1295 vp: Validity period inputed by client
1296
1297 RETURNED VALUES:
1298
1299 KAL_TRUE: this operation is successful to delivery to UIM driver.
1300 KAL_FALSE: index is invalide parameter.
1301
1302*********************************************************************************/
1303kal_bool ValUimUpdateSmsVPRec(kal_uint8 index,kal_uint8 vp);
1304
1305//don't modify following Function, brew has referred to it
1306/********************************************************************************
1307
1308 FUNCTION NAME: ValUimGetMdnRec
1309
1310 DESCRIPTION:
1311
1312 It's invoked to SMS Validity Period .
1313
1314 PARAMETERS:
1315
1316 index: Record index, start from 1.
1317 ptvp: point to the address that store the Validity Period.
1318
1319 RETURNED VALUES:
1320
1321 KAL_TRUE: this operation is successful.
1322 KAL_FALSE: failure.
1323
1324*********************************************************************************/
1325kal_bool ValUimGetSmsVPRec(kal_uint8 index, kal_uint8* ptvp);
1326
1327#if 0
1328/* under construction !*/
1329/* under construction !*/
1330#endif
1331
1332/********************************************************************************
1333
1334 FUNCTION NAME: ValUimRawCmd
1335
1336 DESCRIPTION:
1337
1338 It's invoked to send UIM raw command to UIM card.
1339
1340 PARAMETERS:
1341
1342 len: Raw command APDU length.
1343 CmdApdu: pointer to command APDU.
1344 RspInfo: Response message info.
1345
1346 RETURNED VALUES:
1347
1348 KAL_TRUE: this operation is successful.
1349 KAL_FALSE: failure.
1350
1351*********************************************************************************/
1352kal_bool ValUimRawCmd(kal_uint16 Len, kal_uint8 *CmdApdu, ExeRspMsgT* RspInfoP);
1353
1354
1355/********************************************************************************
1356
1357 FUNCTION NAME: ValUimRunCave
1358
1359 DESCRIPTION:
1360
1361 It's invoked to send RUN CAVE command to UIM card.
1362
1363 PARAMETERS:
1364
1365 rand: rand value.
1366 type: RAND or RANDU.
1367 digitLen: digits length.
1368 digit: digits, should be digit[6]
1369 saveRegister: save registers or not.
1370 esn: UimId(if UIM_ID is used for auth.), otherwise, If ME is
1371 assigned with MEID,Pseudo-ESN value shall be used. if it's ESN ME
1372 and esn is used for auth, esn should be used.
1373 RspInfo: response info.
1374 RETURNED VALUES:
1375 None.
1376
1377*********************************************************************************/
1378void ValUimRunCave(kal_uint32 rand, ValRandTypeT type, kal_uint8 digitLen, kal_uint8 *digit,
1379 kal_bool saveRegister, kal_uint32 esn, ExeRspMsgT rspInfo);
1380
1381/********************************************************************************
1382
1383 FUNCTION NAME: ValUimGenKeyVPM
1384
1385 DESCRIPTION:
1386
1387 It's invoked to send Generate Key/VPM command to UIM card.
1388
1389 PARAMETERS:
1390
1391 cmeaKey: the pointer to cemakey[8] array
1392 vpm: the pointer to VPM[65] array.
1393 RETURNED VALUES:
1394 None.
1395
1396 Notes: When Generate Key/VPM command is finished, cmeaKey and vpm will be written
1397 by UIM task.
1398
1399*********************************************************************************/
1400void ValUimGenKeyVPM(kal_uint8 *cmeaKey, kal_uint8 *vpm);
1401
1402/********************************************************************************
1403
1404 FUNCTION NAME: ValUimUpdateSSD
1405
1406 DESCRIPTION:
1407
1408 It's invoked to tell UIM do Update SSD operation.
1409
1410 PARAMETERS:
1411
1412 randssd: randssd.
1413 esn: UimId(if UIM_ID is used for auth.), otherwise, If ME is
1414 assigned with MEID,Pseudo-ESN value shall be used. if it's ESN ME
1415 and esn is used for auth, esn should be used.
1416 rspInfo: response info.
1417 RETURNED VALUES:
1418 None.
1419
1420*********************************************************************************/
1421void ValUimUpdateSSD(kal_uint8 *randssd, kal_uint32 esn, ExeRspMsgT rspInfo);
1422
1423/********************************************************************************
1424
1425 FUNCTION NAME: ValUimConfirmSSD
1426
1427 DESCRIPTION:
1428
1429 It's invoked to send CONFIRM SSD command to UIM card.
1430
1431 PARAMETERS:
1432
1433 authBS: AuthBS.
1434 esn: UimId(if UIM_ID is used for auth.), otherwise, If ME is
1435 assigned with MEID,Pseudo-ESN value shall be used. if it's ESN ME
1436 and esn is used for auth, esn should be used.
1437 rspInfo: response info.
1438 RETURNED VALUES:
1439 None.
1440
1441*********************************************************************************/
1442void ValUimConfirmSSD(kal_uint32 authBS, ExeRspMsgT rspInfo);
1443
1444/********************************************************************************
1445
1446 FUNCTION NAME: ValUimMD5Auth
1447
1448 DESCRIPTION:
1449
1450 It's invoked to request UIM MD5 auth.
1451
1452 PARAMETERS:
1453
1454 chapId: chapId.
1455 challengeLen: challenge length, uim supports challenge length up to 16.
1456 challenge: challenge array.
1457 rspInfo: response info.
1458 RETURNED VALUES:
1459 None.
1460
1461*********************************************************************************/
1462void ValUimMD5Auth(kal_uint8 chapId, kal_uint8 challengeLen, kal_uint8 *challenge, ExeRspMsgT rspInfo);
1463
1464/*****************************************************************************
1465
1466 FUNCTION NAME: ValUimGetSDNRecParams
1467
1468 DESCRIPTION:
1469 To send a message to UIM to read SDN parameters. User can get SDN parameters
1470 in callback function.
1471
1472 PARAMETERS:
1473
1474 SDNCallbackP: Pointer to callback function
1475
1476 RETURNED VALUES:
1477
1478 KAL_TRUE: message to UIM has been sent.
1479 KAL_FALSE: error. callback=NULL or other task is doing this operation.
1480
1481*****************************************************************************/
1482kal_bool ValUimGetSDNRecParams(void (*SDNCallbackP)(ValUimSDNParamsT*));
1483
1484/*****************************************************************************
1485
1486 FUNCTION NAME: ValUimGetSDNRecord
1487
1488 DESCRIPTION:
1489 To send a message to UIM to read SDN record. User can get SDN record
1490 in callback function.
1491
1492 PARAMETERS:
1493 <nIndex> the phone record index
1494 SDNCallbackP: Pointer to callback function
1495
1496 RETURNED VALUES:
1497
1498 KAL_TRUE: message to UIM has been sent.
1499 KAL_FALSE: error. callback=NULL or other task is doing this operation.
1500
1501*****************************************************************************/
1502kal_bool ValUimGetSDNRecord(kal_uint8 nIndex, void (*SDNCallbackP)(ValUimSDNRecT*));
1503ValUimProviderName* ValGetProviderName(void);
1504void ValUimReadyInit(UimNotifyMsgT * MsgP);
1505void ValUimStoreEsn(kal_uint64 Esn, kal_uint8 Len, kal_bool MEAndUIMMEIDSupported);
1506void ValUimGetEsn(void(*GetEsnCallbackP)(kal_uint64));
1507kal_bool ValGetMEIDUIMSupported(void);
1508kal_bool ValGetSFUIMIDSupported(void);
1509kal_uint8 ValUimGetCst(UimECstIndexT index);
1510
1511/* Used for andriod system */
1512/*****************************************************************************
1513
1514 FUNCTION NAME: ValUimGetUtkCmdFlag
1515
1516 DESCRIPTION:
1517
1518 Get UTK CMD flag.
1519
1520 PARAMETERS:
1521
1522 None.
1523
1524 RETURNED VALUES:
1525
1526 kal_bool: KAL_TRUE: USE AT+UTKPD to init UTK.
1527
1528*****************************************************************************/
1529kal_bool ValUimGetUtkCmdFlag( void );
1530/*****************************************************************************
1531
1532 FUNCTION NAME: ValUimProfileDownload
1533
1534 DESCRIPTION:
1535
1536 Call this function to send TERMINAL PROFILE Command to UIM task.
1537
1538 PARAMETERS:
1539
1540 None.
1541
1542 RETURNED VALUES:
1543
1544 None.
1545
1546*****************************************************************************/
1547void ValUimProfileDownload( void );
1548/*****************************************************************************
1549
1550 FUNCTION NAME: ValUimTerminalRespnse
1551
1552 DESCRIPTION:
1553
1554 Call this function to send TERMINAL RESPONSE Command to UIM task.
1555
1556 PARAMETERS:
1557
1558 len. data buffer length
1559 data: data buffer
1560
1561 RETURNED VALUES:
1562
1563 None.
1564
1565*****************************************************************************/
1566void ValUimTerminalRespnse(kal_uint8 len, kal_uint8 *data);
1567
1568/*****************************************************************************
1569
1570 FUNCTION NAME: ValUimEnvelope
1571
1572 DESCRIPTION:
1573
1574 Call this function to send ENVELOPE Command to UIM task.
1575
1576 PARAMETERS:
1577
1578 len. data buffer length
1579 data: data buffer
1580
1581 RETURNED VALUES:
1582
1583 None.
1584
1585*****************************************************************************/
1586 void ValUimEnvelope(kal_uint8 len, kal_uint8 *data,kal_bool is_ap_envelope);
1587
1588/*****************************************************************************
1589
1590 FUNCTION NAME: ValUimConfirmCall
1591
1592 DESCRIPTION:
1593
1594 Call this function to confirm if Set Up Call command needs to be executed.
1595
1596 PARAMETERS:
1597
1598 Accept:
1599
1600 RETURNED VALUES:
1601
1602 None.
1603
1604*****************************************************************************/
1605void ValUimConfirmCall( kal_bool Accept);
1606
1607/*****************************************************************************
1608
1609 FUNCTION NAME: ValProProactCmdRsp
1610
1611 DESCRIPTION:
1612
1613 Call this to give respnose for proactive cmd.
1614
1615 PARAMETERS:
1616
1617 Result. General result
1618 AddInfo: if result is 0x20, 0x21, need fill in this field.
1619
1620 RETURNED VALUES:
1621
1622 None.
1623
1624*****************************************************************************/
1625void ValProProactCmdRsp( ValUimCmdGenRstT Result, ValUimCmdAddInfoT AddInfo);
1626
1627/*****************************************************************************
1628
1629 FUNCTION NAME: ValUimSmsDownload
1630
1631 DESCRIPTION:
1632
1633 To execute UTK SMS PP Download.
1634
1635 PARAMETERS:
1636
1637 ApduP : Apdu buffer
1638 BufferP : Apdu length
1639 TxtMessage: Sms text message buffer
1640
1641 RETURNED VALUES:
1642
1643 None.
1644
1645*****************************************************************************/
1646void ValUimSmsDownload( kal_uint8* ApduP, kal_uint8 Len, ValSmsTxtRecordT* TxtMessage);
1647
1648#ifdef MTK_CBP
1649kal_bool ValUimDelMdnRecBySimIndex(kal_uint8 Index, kal_uint8 simIndex);
1650kal_bool ValUimUpdateMdnRecBySimIndex(kal_uint8 Index, kal_uint8 Len, kal_uint8* MdnP, kal_uint8 simIndex);
1651kal_bool ValUimGetMdnReq(kal_uint8 simIndex);
1652kal_bool ValUimGetSidNidReq(kal_uint8 simIndex);
1653kal_bool ValUimGetImsiReq(kal_uint8 simIndex, ExeRspMsgT* RspInfo);
1654kal_bool ValUimGetChvStatusBySimIndex(kal_uint8 chan, kal_uint8 simIndex);
1655kal_bool ValUimVerifyChvByIndex(kal_uint8 chan,
1656 kal_uint8 simIndex,
1657 kal_uint8 chvId,
1658 kal_uint8 chvLen,
1659 kal_uint8 chv1Val[8]);
1660kal_bool ValUimChangeChvByIndex(kal_uint8 chan,
1661 kal_uint8 simIndex,
1662 ValChvIdT ChvId,
1663 kal_uint8 OldChvLen,
1664 kal_uint8* OldChvP,
1665 kal_uint8 NewChvLen,
1666 kal_uint8* NewChvP);
1667
1668kal_bool ValUimGetFullPath(kal_uint8* fullPath, kal_uint8* asciistr, kal_uint16 fileId, kal_uint16* pathLen);
1669kal_bool ValUimCrsmCrlaCmd(ValUimCmdT Cmd, kal_uint16 FileId, kal_uint8 P1, kal_uint8 P2, kal_uint8 P3,
1670 kal_uint8 *DataP, ExeRspMsgT* RspInfo, kal_uint8 sessionId, kal_bool isFullPath, kal_uint8* fullPath, kal_uint16 pathLen, kal_uint8 simIndex, kal_uint8 chanId);
1671kal_bool ValUimRawCmdBySimIndex(kal_uint16 Len, kal_uint8 *CmdApdu, ExeRspMsgT* RspInfoP, kal_uint8 simIndex, kal_uint8 chanId);
1672kal_bool ValUimExtendedRawCmdBySimIndex(ExeRspMsgT* RspInfoP, kal_uint8 simIndex, kal_uint8 chanId);
1673kal_bool ValAtUimGetIccid(kal_uint8 simIndex);
1674kal_bool ValAtUimGetAppInfo(kal_uint8 simIndex, kal_uint8 appId);
1675kal_bool ValUimGetUimIdReq(kal_uint8 simIndex);
1676kal_bool ValAtUimGetCstInfo(kal_uint8 simIndex, kal_uint8 cardType, UimECstIndexT cstIndex);
1677#endif
1678
1679#ifdef MTK_DEV_C2K_IRAT
1680void ValProTimerManagerCmdRsp( ValUimCmdGenRstT Result, ValUimCmdAddInfoT AddInfo,kal_uint8 DataLen, kal_uint8 *Adddata);
1681void valUimProvideLocationInfoProcess(void);
1682void ValUimUtkTimerExpiryMsgPro(kal_uint32 Id);
1683void ValUimUtkRefreshRspMsg(UimUtkRefreshRspMsgT *MsgData);
1684/*****************************************************************************
1685
1686 FUNCTION NAME: ValUimFileChangeCompleted
1687
1688 DESCRIPTION:
1689
1690 internal help function: send MSG_ID_C2K_UIM_SAT_FILE_CHANGE_RES to UIM task.
1691
1692 PARAMETERS: ChangeSuccess
1693
1694 RETURNED VALUES: None.
1695
1696*****************************************************************************/
1697extern void ValUimFileChangeCompleted(ValUimUtkFileMaskTypeT FileMask);
1698/*****************************************************************************
1699
1700 FUNCTION NAME: ValUimUtkRefreshRequest
1701
1702 DESCRIPTION:
1703
1704 internal help function: .
1705
1706 PARAMETERS:
1707
1708 RETURNED VALUES: None.
1709
1710*****************************************************************************/
1711
1712extern void ValUimUtkRefreshRequest(void);
1713/*****************************************************************************
1714
1715 FUNCTION NAME: ValUimUtkRefreshProcess
1716
1717 DESCRIPTION:
1718
1719 internal help function: handle UTK Refresh command
1720
1721 PARAMETERS: ChangeSuccess
1722
1723 RETURNED VALUES: None.
1724
1725*****************************************************************************/
1726extern kal_bool ValUimUtkRefreshProcess(kal_uint8 *BufDataP,kal_uint8 Len, kal_uint8 *ApIndicator);
1727extern kal_bool IsPowerCycleTrigByRefresh(void);
1728extern void SetPowerCycleTrigByRefreshFlag(kal_bool flag);
1729
1730#ifdef FEATURE_UTK
1731/*****************************************************************************
1732
1733 FUNCTION NAME: ValUimEhrpdAuthFailure
1734
1735 DESCRIPTION:
1736
1737 PARAMETERS:
1738
1739 RETURNED VALUES: None.
1740
1741*****************************************************************************/
1742extern void ValUimEhrpdAuthFailure(void);
1743#endif
1744#endif
1745#ifdef MTK_CBP
1746extern void ValUimSetFdnStatus(kal_bool ActiveStatus,kal_uint8 ChvLen,kal_uint8 *ChvData);
1747extern void ValUimUpdateFdnRecord( kal_uint8 nIndex,
1748 kal_uint8* pName,
1749 kal_uint8 name_len,
1750 kal_uint8* pPhNum,
1751 ValUimNumberTypeT TON,
1752 ValUimNumberPlanT NPI,
1753 kal_bool isAtCpbw);
1754extern void ValUimEraseFdnRecord( kal_uint8 nIndex,kal_bool isAtCpbw);
1755extern void ValUimGetFdnRecord(kal_uint8 nIndex);
1756#endif
1757
1758#ifdef __CARRIER_RESTRICTION__
1759void ValUimNotifyRegisterProcess( void* RspMsgP );
1760#endif
1761
1762#ifdef __cplusplus
1763}
1764#endif
1765#endif
1766
1767/*****************************************************************************
1768 * removed!
1769 * removed!
1770 * removed!
1771 * removed!
1772 * removed!
1773 * removed!
1774 * removed!
1775 * removed!
1776*****************************************************************************/
1777
1778/**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_nicholaszhao_href17384\1 2011-07-08 06:09:12 GMT nicholaszhao
1779** HREF#17384**/
1780/**Log information: \main\CBP7FeaturePhone\4 2011-07-12 09:42:17 GMT marszhang
1781** HREF#17384**/
1782/**Log information: \main\2 2012-04-06 05:34:48 GMT pzhang
1783** modify contact uim interface**/
1784