| /***************************************************************************** |
| * 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) 2016 |
| * |
| * 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). |
| * |
| *****************************************************************************/ |
| /************************************************************* |
| * |
| * This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc. |
| * |
| * Any unauthorized use inconsistent with the terms of such license is strictly prohibited. |
| * |
| * Copyright (c) 2005-2010 VIA Telecom, Inc. All rights reserved. |
| * |
| *************************************************************/ |
| #ifndef VALUIMAPI_H |
| #define VALUIMAPI_H |
| /***************************************************************************** |
| |
| FILE NAME: valuimapi.h |
| |
| DESCRIPTION: |
| |
| This file contains all constants and typedefs needed by |
| valuimapi.c. It provides the main UIM functions to VAL layer. |
| |
| |
| *****************************************************************************/ |
| #include "uimapi.h" |
| #include "valapi.h" |
| #include "valphbapi.h" |
| #include "valsmsapi.h" |
| #ifdef MTK_DEV_C2K_IRAT |
| #include "valutkapi.h" |
| #endif |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #define VAL_CHV_MAX_INPUT_NUM 3 |
| #define VAL_CHV_UNBLOCK_MAX_INPUT_NUM 10 |
| #define VAL_UIM_MAX_REG_IDS 2 |
| #define VAL_UIM_MAX_MDN_COUNT 10 |
| #ifdef MTK_CBP |
| /* according to 3.4.34 of TIA/EIA-95-B of C.S0023 */ |
| #define VAL_MAX_DIGITS_IN_EF_MDN 15 |
| |
| #define VAL_UIM_MAX_FULLPATH_LENGTH 8 |
| #define VAL_UIM_MAX_RECORD_NUM 20 |
| |
| #define VAL_UIM_ICCID_LEN 21 |
| #endif |
| #define VAL_UIM_MAX_SMSVP_COUNT 4 |
| |
| /* CHV Status read from UIM card */ |
| typedef struct |
| { |
| CardStatusT CardStatus; |
| ChvStatusT ChvStatus; |
| #ifdef MTK_DEV_C2K_IRAT |
| kal_bool UsimAppExisted; |
| #endif |
| kal_uint8 ChvSum; /* Sum of CHV attempt */ |
| kal_uint8 PukSum; /* Sum of UNBLOCK CHV attempt */ |
| kal_uint8 Chv1LeftCount; |
| kal_uint8 Chv2LeftCount; |
| kal_uint8 Puk1LeftCount; |
| kal_uint8 Puk2LeftCount; |
| #ifdef __CARRIER_RESTRICTION__ |
| kal_uint8 SlotId; |
| #endif |
| } ValChvStatusT; |
| |
| typedef struct |
| { |
| kal_bool AppInfoValid; |
| kal_uint8 Channel_Id; |
| kal_uint8 Protocol_Id; |
| kal_uint8 AID_Len; |
| kal_uint8 AID[UICC_AID_MAX_LEN]; |
| kal_uint8 APP_Label_Len; |
| kal_uint8 APP_Label[UICC_APP_LABEL_LEN]; |
| kal_bool PIN1_Enabled; |
| kal_bool PIN2_Enabled; |
| kal_uint8 PIN1_Count; |
| kal_uint8 PIN2_Count; |
| kal_uint8 PUK1_Count; |
| kal_uint8 PUK2_Count; |
| kal_uint8 ChvStatus; |
| #ifdef __CARRIER_RESTRICTION__ |
| kal_uint8 SlotId; |
| #endif |
| kal_uint16 CardStatus; |
| }ValCardAppInfoT; |
| |
| #ifdef MTK_DEV_C2K_IRAT |
| extern kal_uint8 ValUimInfoReadStatus; |
| |
| #define VAL_UIM_SP_NAME_READ_MASK 0x01 |
| #define VAL_UIM_MDN_READ_MASK 0x02 |
| #define VAL_UIM_ICCID_READ_MASK 0x04 |
| #define VAL_UIM_NAM_DATA_READ_MASK 0x08 |
| #define VAL_UIM_INFO_ALL_READ_MASK 0x0F |
| |
| #define UIM_UTK_MENU_SIZE 256 |
| |
| typedef enum |
| { |
| VAL_UTK_SMS_FILE_COMPLETED = 0x1, |
| VAL_UTK_HLP_FILE_COMPLETD = 0x2, |
| VAL_UTK_ALL_FILE_COMPLETED_MASK = 0x3 |
| }ValUimUtkFileMaskTypeT; |
| |
| typedef enum |
| { |
| VAL_CAT_TYPE_STK, |
| VAL_CAT_TYPE_UTK, |
| VAL_CAT_TYPE_NUM |
| } ValCatTypeE; |
| |
| typedef enum |
| { |
| VAL_UTK_HANDLE_BY_TE, /* CMD and TR handled by AP/MMI */ |
| VAL_UTK_HANDLE_BY_SIM, /* CMD and TR handled by modem. But some cmd might need TE involve ex: STKCALL,STKSS,.. */ |
| VAL_UTK_HANDLE_NULL |
| }ValUtkCmdCfgE; |
| |
| typedef enum |
| { |
| UTK_NO_TIMER_STATUS = 0, |
| UTK_TIMER_RUNNING, |
| UTK_TIMER_NOT_RUNNING, |
| UTK_TIMER_STOPPED, |
| UTK_TIMER_TIMED_OUT |
| } UtkTimerStatusT; |
| |
| typedef struct |
| { |
| kal_uint32 UtkTimerValue; |
| UtkTimerStatusT UtkTimerStatus; |
| kal_uint32 StartTime; |
| }UtkTimerManagerT; |
| |
| |
| enum |
| { |
| UTK_FILE_ADN = 0x6F3A, |
| UTK_FILE_FDN = 0x6F3B, |
| UTK_FILE_SMS = 0x6F3C, |
| UTK_FILE_SPN = 0x6F41, |
| UTK_FILE_MDN = 0x6F44, |
| UTK_FILE_CST = 0x6F32, |
| UTK_FILE_EST = 0x6F75, |
| UTK_FILE_ICCID = 0x2FE2, |
| UTK_FILE_HRPDCAP = 0x6F56, |
| UTK_FILE_HRPDUPP = 0x6F57, |
| UTK_FILE_ME3GPD = 0x6F48, |
| UTK_FILE_3GPDOPM = 0x6F49, |
| UTK_FILE_SIPCAP = 0x6F4A, |
| UTK_FILE_MIPCAP = 0x6F4B, |
| UTK_FILE_SIPUPP = 0x6F4C, |
| UTK_FILE_MIPUPP = 0x6F4D, |
| UTK_FILE_SIPSP = 0x6F4E, |
| UTK_FILE_MIPSP = 0x6F4F, |
| UTK_FILE_SIPPAPSS = 0x6F50, |
| UTK_FILE_MIPFLAGS = 0x6F78, |
| UTK_FILE_C_MIPFLAGS = 0x6F84, |
| UTK_FILE_SIPUPPEXT = 0x6F7D, |
| UTK_FILE_MIPUPPEXT = 0x6F80, |
| UTK_FILE_TCPCONFIG = 0x6F79, |
| UTK_FILE_C_TCPCONFIG = 0x6F88, |
| UTK_FILE_DGC = 0x6F7A, |
| UTK_FILE_C_DGC = 0x6F89, |
| UTK_FILE_IPV6CAP = 0x6F77, |
| UTK_FILE_C_IPV6CAP = 0x6F87 |
| /* add other files here */ |
| }; |
| |
| #define VAL_UIM_FILE_LIST_MAX 50 |
| |
| typedef struct |
| { |
| kal_uint8 FileCount; |
| kal_uint16 FileId[VAL_UIM_FILE_LIST_MAX]; |
| }ValUimFileListT; |
| |
| #endif |
| |
| /* Define CHV type */ |
| typedef enum |
| { |
| VAL_CHV1 = 1, |
| VAL_CHV2 |
| } ValChvIdT; |
| |
| /* Define CHV operation response result */ |
| typedef enum |
| { |
| VAL_CHV_OP_SUCCESS = 0, |
| VAL_CHV_NOT_INITIALIZE, /* no CHV initialized */ |
| VAL_CHV_OP_FAILURE_AND_PERMIT_ATTEMPT, /* unsuccessful CHV/UNBLOCK CHV verification, at least one attempt left */ |
| VAL_CHV_OP_CONTRADICTION_WITH_CHV_STATUS, /* in contradiction with CHV status */ |
| VAL_CHV_OP_CONTRADICTION_WITH_INVALIDATION_STATE, /* in contradiction with invalidation status */ |
| VAL_CHV_OP_FAILURE_AND_NO_ATTEMPT, /*unsuccessful CHV/UNBLOCK CHV verification, no attempt left;CHV/UNBLOCK CHV blocked*/ |
| VAL_CHV_OP_FAILURE_RECOVERY, /*fast recovery during CHV process*/ |
| VAL_CHV_FAILURE_INSUFFICIENT_MEMORY, /* UICC returns 9210 for CHV command*/ |
| VAL_CHV_OP_FAILURE /*failure caused by other causes */ |
| } ValChvOpResultT; |
| |
| #ifdef CHV_DEBUG |
| /* test message */ |
| typedef struct |
| { |
| kal_uint8 ChvId; /* Specify the CHV */ |
| kal_uint8 ChvLen; |
| kal_uint8 ChvVal[8]; /* CHV value */ |
| } ValChvTstReqVerifyMsgT; |
| /* change CHV msg */ |
| typedef struct |
| { |
| kal_uint8 ChvId; /* Specify the CHV */ |
| kal_uint8 OldChvLen; |
| kal_uint8 OldChvVal[8];/* Old CHV value */ |
| kal_uint8 NewChvLen; |
| kal_uint8 NewChvVal[8];/* New CHV value */ |
| } ValChvTstReqChangeMsgT; |
| |
| /* Disable CHV Msg */ |
| typedef struct |
| { |
| kal_uint8 ChvLen; |
| kal_uint8 Chv1Val[8]; /* CHV1 value */ |
| } ValChvTstReqDisableMsgT; |
| |
| /* Enable CHV Msg */ |
| typedef struct |
| { |
| kal_uint8 ChvLen; |
| kal_uint8 Chv1Val[8]; /* CHV1 value */ |
| } ValChvTstReqEnableMsgT; |
| |
| /* Unblock CHV Msg */ |
| typedef struct |
| { |
| kal_uint8 ChvId; /* Specify the CHV */ |
| kal_uint8 UblkChvLen; |
| kal_uint8 UblkChvVal[8];/* Unblock CHV value */ |
| kal_uint8 NewChvLen; |
| kal_uint8 NewChvVal[8]; /* New CHV value */ |
| } ValChvTstReqUnblockMsgT; |
| |
| #endif /* CHV_DEBUG */ |
| |
| /*********UIM Short Message Service Parameters structure***********/ |
| typedef struct |
| { |
| kal_uint8 RecLen; |
| kal_uint8 RecData[127]; |
| }ValUimSmsParamRecT; |
| |
| /******************** UIM MDN structures***************************/ |
| /* Val MDN buffer structure(MDN is BCD type) */ |
| typedef struct |
| { |
| kal_uint8 MdnLen; |
| kal_uint8 Mdn[8]; |
| } ValUimMdnT; |
| |
| /* Val MDN structure(MDN is kal_char type) */ |
| typedef struct |
| { |
| kal_uint8 MdnLen; |
| kal_uint8 Mdn[NAM_MAX_MDN_DIGITS]; |
| } ValUimMdnRecT; |
| |
| /****** Val Uim notify register event *****/ |
| typedef enum |
| { |
| VAL_UIM_EVENT_NOTIFY_REGISTER |
| } ValUimEventIdT; |
| #if 0 |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| /* under construction !*/ |
| #endif |
| /* ETS Test Messages */ |
| typedef struct |
| { |
| kal_uint8 nIndex; |
| } ValUimGenericMsgT; |
| |
| typedef struct |
| { |
| kal_uint8 nIndex; |
| kal_uint8 Name[MAXALPHALENGTH]; |
| kal_uint8 PhNum[21]; |
| } ValUimUpdatePhbRecMsgT; |
| |
| typedef struct |
| { |
| kal_uint8 nIndex; |
| kal_uint8 nStatus; |
| kal_uint8 MsgData[255]; |
| kal_uint8 MsgLen; |
| } ValUimUpdateSmsRecMsgT; |
| |
| typedef struct |
| { |
| ExeRspMsgT RspInfo; |
| } ValChvMsgT; |
| |
| typedef struct |
| { |
| kal_bool status; |
| } ValChvStatusMsgT; |
| |
| typedef struct |
| { |
| ExeRspMsgT RspInfo; |
| kal_uint8 ChvId; |
| kal_uint8 ChvLen; |
| kal_uint8 Chv[8]; |
| } ValChvVerifyMsgT; |
| |
| typedef struct |
| { |
| ExeRspMsgT RspInfo; |
| kal_uint8 ChvId; |
| kal_uint8 OldChvLen; |
| kal_uint8 OldChv[8]; |
| kal_uint8 NewChvLen; |
| kal_uint8 NewChv[8]; |
| } ValChvChangeMsgT; |
| |
| typedef struct |
| { |
| ExeRspMsgT RspInfo; |
| kal_uint8 Chv1Len; |
| kal_uint8 Chv1[8]; |
| } ValChvEnableDisableMsgT; |
| |
| typedef struct |
| { |
| ExeRspMsgT RspInfo; |
| kal_uint8 ChvId; |
| kal_uint8 UnblockChvLen; |
| kal_uint8 UnblockChv[8]; |
| kal_uint8 NewChvLen; |
| kal_uint8 NewChv[8]; |
| } ValChvUnblockMsgT; |
| |
| typedef struct |
| { |
| ExeRspMsgT RspInfo; |
| } ValUimGetMaxMdnRecsMsgT; |
| |
| typedef struct |
| { |
| kal_uint8 numRecs; |
| } ValUimNumRecsMsgT; |
| |
| typedef struct |
| { |
| kal_uint8 Encoding; |
| kal_uint8 Language; |
| kal_uint16 StringLen; |
| kal_char String[32]; |
| } SPNameT; |
| |
| typedef struct |
| { |
| SPNameT SPName; |
| kal_bool IsValidData; |
| } ValSPNameT; |
| |
| |
| /*get gsm imsi data*/ |
| #define VAL_UIM_GSM_IMSI_LEN 9 |
| |
| typedef struct |
| { |
| ExeRspMsgT RspMsg; |
| kal_bool ImsiValid; |
| kal_uint8 ImsiData[VAL_UIM_GSM_IMSI_LEN]; |
| }ValUimGsmImsiRspMsgT; |
| |
| typedef enum |
| { |
| TYPE_RAND = 0, |
| TYPE_RANDU =1 |
| }ValRandTypeT; |
| |
| typedef enum |
| { |
| VAL_UIM_NT_UNKNOWN = 0, |
| VAL_UIM_NT_INTERNATIONAL, |
| VAL_UIM_NT_NATIONAL, |
| VAL_UIM_NT_NETWORK_SPECIFIC, |
| VAL_UIM_NT_SUBSCRIBER, |
| VAL_UIM_NT_RESERVED, |
| VAL_UIM_NT_ABBREVIATED = 6 |
| } ValUimNumberTypeT; |
| |
| typedef enum |
| { |
| VAL_UIM_NP_UNKNOWN = 0, |
| VAL_UIM_NP_ISDN_TELEPHONY, |
| VAL_UIM_NP_RESERVED2, |
| VAL_UIM_NP_DATA, |
| VAL_UIM_NP_TELEX, |
| VAL_UIM_NP_RESERVED5, |
| VAL_UIM_NP_RESERVED6, |
| VAL_UIM_NP_RESERVED7, |
| VAL_UIM_NP_RESERVED8, |
| VAL_UIM_NP_PRIVATE = 9 |
| } ValUimNumberPlanT; |
| |
| typedef enum |
| { |
| VAL_UIM_READ_BINARY = 0xB0, |
| VAL_UIM_READ_RECORD = 0xB2, |
| VAL_UIM_UPDATE_BINARY = 0xD6, |
| VAL_UIM_UPDATE_RECORD = 0xDC, |
| VAL_UIM_STORE_ESN = 0xDE, |
| VAL_UIM_STATUS = 0xF2, |
| VAL_UIM_ENVELOPE = 0xC2, |
| VAL_UIM_TERM_PROFILE = 0x10, |
| VAL_UIM_TERM_RESPONSE = 0x14, |
| VAL_UIM_SELECT_FILE = 0xA4, |
| VAL_UIM_GET_RESPONSE = 0xC0, |
| VAL_UIM_SEARCH_RECORD = 0xA2 |
| /* Reserved */ |
| }ValUimCmdT; |
| |
| #ifdef MTK_DEV_C2K_IRAT |
| typedef enum |
| { |
| VAL_UIM_BT_CONNECT = 0, |
| VAL_UIM_BT_DISCONNECT, |
| VAL_UIM_BT_POWER_ON, |
| VAL_UIM_BT_POWER_OFF, |
| VAL_UIM_BT_RESET, |
| VAL_UIM_BT_APDU, |
| VAL_UIM_BT_INVALID_CMD |
| }ValBTCmdT; |
| #endif |
| |
| typedef struct |
| { |
| kal_bool Ack; /* KAL_TRUE: Operation is successful, KAL_FALSE: File doesn't exist or operation is error */ |
| kal_uint8 SDNRecCount; |
| } ValUimSDNParamsT; |
| |
| typedef struct |
| { |
| kal_bool Ack; /* KAL_TRUE: Operation is successful, KAL_FALSE: File doesn't exist or operation is error */ |
| kal_bool IsFree; |
| kal_uint8 RecordIndex; |
| kal_uint8 AlphaIdentifier[VAL_PHB_MAX_ALPHA_LENGTH]; |
| kal_uint8 PhoneNumber[VAL_PHB_MAX_PHONE_LENGTH]; |
| kal_uint8 TON; |
| kal_uint8 NPI; |
| } ValUimSDNRecT; |
| |
| typedef struct |
| { |
| kal_uint8 DisCond; /*display condiction*/ |
| kal_uint8 Encoding; /* character encoding*/ |
| kal_uint8 LangInd; /*language indication */ |
| kal_uint8 Name[32]; |
| } ValUimProviderName; |
| |
| #define VAL_UIM_MAX_ADDRESS_NUM 20 |
| /* Address (8.1) */ |
| typedef struct |
| { |
| ValUimNumberPlanT Npi; |
| ValUimNumberTypeT Ton; |
| kal_uint8 Len; |
| kal_uint8 Number[VAL_UIM_MAX_ADDRESS_NUM]; |
| } ValUimAddressT; |
| |
| typedef enum |
| { |
| VAL_UIM_SETUP_CALL_ONIDLE, /* set up call, but only if not currently busy on another call */ |
| VAL_UIM_SETUP_CALL_ONIDLE_REDIALABLE, /*set up call, but only if not currently busy on another call, with redial*/ |
| VAL_UIM_SETUP_CALL_HOLDABLE, /*set up call, putting all other calls (if any) on hold */ |
| VAL_UIM_SETUP_CALL_HOLDABLE_REDIALABLE, /*set up call, putting all other calls (if any) on hold, with redial*/ |
| VAL_UIM_SETUP_CALL_DISCONNECTABLE, /*set up call, disconnecting all other calls (if any)*/ |
| VAL_UIM_SETUP_CALL_DISCONNECTABLE_REDIALABLE /*set up call, disconnecting all other calls (if any), with redial*/ |
| } ValUimCallTypeT; |
| |
| typedef struct |
| { |
| ValUimCallTypeT CallType; |
| ValUimAddressT Address; |
| kal_uint32 Duration; /* ms */ |
| }ValUimSetUpCallT; |
| |
| typedef struct |
| { |
| kal_uint8 UtkSmsLen; |
| kal_uint8 *UtkSmsBufferP; |
| kal_uint8 UtkSmsTR; |
| ValUimAddressT UtkSmsAddress; |
| kal_bool additionInfo_existed; |
| kal_uint8 additionalInfo; |
| kal_bool utkIconDisplayed; |
| kal_uint8 utkSmsMode; |
| }utkSmsInfoT; |
| |
| typedef struct |
| { |
| ValUimSetUpCallT utkCallCmd; |
| kal_uint8 utkCallTR; |
| kal_bool additionInfo_existed; |
| kal_uint8 additionalInfo; |
| kal_bool utkIconDisplayed; |
| kal_uint8 rspAtChan; |
| }utkCallInfoT; |
| |
| #if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__) |
| typedef enum{ |
| UTK_PROA_STATE_NULL, |
| UTK_PROA_STATE_WAITING_TR, |
| UTK_PROA_STATE_WAITING_SESSION_END |
| }UtkProacmStateE; |
| #endif |
| |
| typedef struct |
| { |
| ValCatTypeE CatType; |
| kal_uint8 StoredUtkMenu[UIM_UTK_MENU_SIZE]; |
| kal_uint16 UtkMenuLen; |
| |
| kal_uint16 CmdId; /*defined by MD1*/ |
| kal_uint8 CmdNum; |
| kal_uint8 CmdType; |
| kal_uint8 CmdQualifier; |
| UtkTimerManagerT UtkTimerManager[UTK_TIMER_MANAGER_NUM]; |
| kal_timerid UtkTimer[UTK_TIMER_MANAGER_NUM]; |
| kal_bool RecvTerminalRspFromAp; |
| utkSmsInfoT utkSmsInfo; |
| utkCallInfoT utkCallInfo; |
| #if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__) |
| UtkProacmStateE proactiveCmdState; |
| kal_uint8 currProactiveCmd; |
| kal_bool pendEvtDownloadDataValid; |
| ValUtkSetupEventDataT pendEvtDownloadData; |
| #endif |
| }ValUimUtkInfoT; |
| |
| typedef enum |
| { |
| |
| UIM_FILE_TYPE_INVALID = 0x00, |
| UIM_FILE_TYPE_MF, |
| UIM_FILE_TYPE_DF, |
| UIM_FILE_TYPE_EF, |
| UIM_FILE_TYPE_EF_TRANSPARENT, |
| UIM_FILE_TYPE_EF_CYCLIC, |
| UIM_FILE_TYPE_EF_LINEARFIXED, |
| } UimFileTypeT; |
| |
| typedef struct |
| { |
| kal_uint16 sw; |
| kal_uint8 file_fcp_len; |
| kal_uint8* file_fcp; |
| }ValCacheFcpInfoT; |
| |
| typedef struct |
| { |
| kal_bool binary_valid; |
| kal_uint16 sw; |
| kal_uint16 cached_binary_len; |
| kal_uint8* cached_binary_content; |
| }ValCacheBinaryInfoT; |
| |
| typedef struct |
| { |
| kal_bool record_valid; |
| kal_uint8 record_index; |
| kal_uint8 record_len; |
| kal_uint16 sw; |
| kal_uint8* record_data; |
| }ValCacheRecordInfoT; |
| |
| typedef struct |
| { |
| kal_uint8 file_record_num; |
| ValCacheRecordInfoT cached_record_content[VAL_UIM_MAX_RECORD_NUM]; /*first two bytes for SW*/ |
| }ValCacheRecordInfoListT; |
| |
| |
| typedef struct |
| { |
| kal_bool is_used; |
| UimFileTypeT file_type; |
| kal_uint8 file_path_len; |
| kal_uint8 file_path[VAL_UIM_MAX_FULLPATH_LENGTH]; |
| kal_bool file_fcp_valid; |
| ValCacheFcpInfoT fcp_info; |
| union |
| { |
| ValCacheBinaryInfoT binary_info; |
| ValCacheRecordInfoListT record_info; |
| } file_content_info; |
| }ValCacheUimFileT; |
| |
| typedef struct |
| { |
| kal_uint16 PduLen; |
| kal_uint8* PduData; |
| }ValExtendedPduT; |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimInit |
| |
| DESCRIPTION: |
| |
| Create ValUimEvtLock. |
| |
| PARAMETERS: |
| |
| None. |
| |
| RETURNED VALUES: |
| |
| None |
| |
| *****************************************************************************/ |
| void ValUimInit( void ); |
| |
| #if 0 |
| /* under construction !*/ |
| #endif |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimGetMaxMdnRecNum |
| |
| DESCRIPTION: |
| |
| It's invoked to Get the number of EF MDN record in UIM card. |
| |
| PARAMETERS: |
| |
| None. |
| |
| RETURNED VALUES: |
| |
| Num: the number of MDN record. |
| |
| *********************************************************************************/ |
| kal_uint8 ValUimGetMaxMdnRecNum( void ); |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimGetMdnRec |
| |
| DESCRIPTION: |
| |
| It's invoked to Get MDN record. |
| |
| PARAMETERS: |
| |
| Index: Record index, start from 1. |
| MdnRecP: Returned Mdn pointer. |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: this operation is successful. |
| KAL_FALSE: failure. |
| |
| *********************************************************************************/ |
| kal_bool ValUimGetMdnRec( kal_uint8 Index, |
| ValUimMdnRecT* MdnRecP ); |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimUpdateMdnRec |
| |
| DESCRIPTION: |
| |
| This routine sends Update Record(6F44) message to the UIM task. |
| PARAMETERS: |
| |
| Index: Record index, start from 1. |
| Len: MDN length |
| MdnP: Point to MDN buffer. |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: this operation is successful. |
| KAL_FALSE: failure. |
| |
| *********************************************************************************/ |
| kal_bool ValUimUpdateMdnRec( kal_uint8 Index, |
| kal_uint8 Len, |
| kal_uint8* MdnP ); |
| |
| /********************************************************************************* |
| |
| FUNCTION NAME: ValUimDelMdnRec |
| |
| DESCRIPTION: |
| |
| This routine sends Update Record(6F44) message to the UIM task. |
| |
| PARAMETERS: |
| |
| Index: Record index, start from 1. |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: this operation is successful. |
| KAL_FALSE: failure. |
| |
| **********************************************************************************/ |
| kal_bool ValUimDelMdnRec( kal_uint8 Index ); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimMdnDeliverMsg |
| |
| DESCRIPTION: |
| |
| Deliver UIM MDN response messages. It is used by valtask. |
| |
| PARAMETERS: |
| |
| MsgId: received message id |
| MsgP: message |
| MsgSize: message size |
| |
| RETURNED VALUES: |
| |
| None |
| |
| *****************************************************************************/ |
| void ValUimMdnDeliverMsg( kal_uint32 MsgId, |
| void* MsgP, |
| kal_uint32 MsgSize ); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValChvGetStatus |
| |
| DESCRIPTION: |
| |
| This routine sends UIM Get Status message to the UIM task, and saves callback |
| function's pointer in order to process CHV state when the response from the |
| UIM is received. |
| |
| PARAMETERS: |
| |
| ChvCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: Get Status Msg has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValChvGetStatus( void(*ChvCallbackP)(ValChvStatusT) ); |
| |
| #ifdef MTK_DEV_C2K_IRAT |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValLocalChvVerify |
| |
| DESCRIPTION: |
| |
| This routine sends verify CHV message to the UIM task |
| |
| PARAMETERS: |
| |
| ChvId: CHV1 or CHV2 |
| |
| RETURNED VALUES: |
| |
| none |
| |
| *****************************************************************************/ |
| void ValLocalChvVerify( ValChvIdT ChvId); |
| #endif |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValChvVerify |
| |
| DESCRIPTION: |
| |
| This routine sends App verify CHV message to the UIM task, and saves callback |
| function's pointer in order to process the result when the response from the |
| UIM is received. |
| |
| PARAMETERS: |
| |
| ChvId: CHV1 or CHV2 |
| ChvLen: Length of CHV value |
| ChvP: Pointer to CHV value |
| ChvCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: Uim App Verify Msg has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValChvVerify( ValChvIdT ChvId, |
| kal_uint8 ChvLen, |
| kal_uint8* ChvP, |
| void (*ChvCallbackP)(ValChvOpResultT) ); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValChvChange |
| |
| DESCRIPTION: |
| |
| This routine sends App change CHV message to the UIM task, and saves callback |
| function's pointer in order to process the result when the response from the |
| UIM is received. |
| |
| PARAMETERS: |
| |
| ChvId: CHV1 or CHV2 |
| OldChvLen: Length of old CHV value |
| OldChvP: Pointer to old CHV value |
| NewChvLen: Length of new CHV value |
| NewChvP: Pointer to new CHV value |
| ChvCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: Uim App change Chv Msg has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValChvChange( ValChvIdT ChvId, |
| kal_uint8 OldChvLen, |
| kal_uint8* OldChvP, |
| kal_uint8 NewChvLen, |
| kal_uint8* NewChvP, |
| void (*ChvCallbackP)(ValChvOpResultT) ); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValChvDisable |
| |
| DESCRIPTION: |
| |
| This routine sends App disable CHV message to the UIM task, and saves callback |
| function's pointer in order to process the result when the response from |
| the UIM is received. |
| |
| PARAMETERS: |
| |
| Chv1Len: Length of CHV1 value |
| Chv1P: Pointer to CHV1 value |
| ChvCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: Uim App Disable Chv Msg has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValChvDisable( kal_uint8 Chv1Len, |
| kal_uint8* Chv1P, |
| void (*ChvCallbackP)(ValChvOpResultT) ); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValChvEnable |
| |
| DESCRIPTION: |
| |
| This routine sends App enable CHV message to the UIM task, and saves callback |
| function's pointer in order to process the result when the response from |
| the UIM is received. |
| |
| PARAMETERS: |
| |
| Chv1Len: Length of CHV1 value |
| Chv1P: Pointer to CHV1 value |
| ChvCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: Uim App Enable Chv Msg has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValChvEnable( kal_uint8 Chv1Len, |
| kal_uint8* Chv1P, |
| void (*ChvCallbackP)(ValChvOpResultT) ); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimEnableChvBySimIndex |
| |
| DESCRIPTION: |
| Send Enable CHV to UIM. |
| |
| *****************************************************************************/ |
| kal_bool ValUimEnableChvBySimIndex(kal_uint8 chan, |
| kal_uint8 simIndex, |
| kal_uint8 Chv1Len, |
| kal_uint8* Chv1P); |
| |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimDisableChvBySimIndex |
| |
| DESCRIPTION: |
| Send Disable CHV to UIM. |
| |
| *****************************************************************************/ |
| kal_bool ValUimDisableChvBySimIndex(kal_uint8 chan, |
| kal_uint8 simIndex, |
| kal_uint8 Chv1Len, |
| kal_uint8* Chv1P); |
| |
| |
| |
| |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimUnblockChvBySimIndex |
| |
| DESCRIPTION: |
| Send Unblock CHV to UIM. |
| |
| PARAMETERS: |
| |
| ChvId: CHV1 or CHV2 |
| UnblockChvLen: Length of UNBLOCK CHV value |
| UnblockChvP: Pointer to UNBLOCK CHV value |
| NewChvLen: Length of new CHV value |
| NewChvP: Pointer to new CHV value |
| ChvCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: Uim App Unbolck chv Msg has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValUimUnblockChvBySimIndex(kal_uint8 chan, |
| kal_uint8 simIndex, |
| ValChvIdT ChvId, |
| kal_uint8 UnblockChvLen, |
| kal_uint8* UnblockChvP, |
| kal_uint8 NewChvLen, |
| kal_uint8* NewChvP); |
| |
| |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ChvUnblock |
| |
| DESCRIPTION: |
| |
| This routine sends App unblock CHV message to the UIM task, and saves callback |
| function's pointer in order to process the result when the response from |
| the UIM is received. |
| |
| PARAMETERS: |
| |
| ChvId: CHV1 or CHV2 |
| UnblockChvLen: Length of UNBLOCK CHV value |
| UnblockChvP: Pointer to UNBLOCK CHV value |
| NewChvLen: Length of new CHV value |
| NewChvP: Pointer to new CHV value |
| ChvCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: Uim App Unblock Chv Msg has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValChvUnblock( ValChvIdT ChvId, |
| kal_uint8 UnblockChvLen, |
| kal_uint8* UnblockChvP, |
| kal_uint8 NewChvLen, |
| kal_uint8* NewChvP, |
| void (*ChvCallbackP)(ValChvOpResultT) ); |
| |
| /******************************************************************************** |
| FUNCTION NAME: ValUimSPNameInit |
| DESCRIPTION: |
| This routine initiates the procedure of reading |
| service provider name parameters of the UIM. |
| PARAMETERS: |
| UimCallbackP: Pointer to callback function |
| RETURNED VALUES: |
| KAL_TRUE: Uim read sp name Msg has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| *********************************************************************************/ |
| kal_bool ValUimSPNameInit(void (*UimCallbackP)(void *)); |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValChvDeliverMsg |
| |
| DESCRIPTION: |
| |
| Deliver CHV response message. It is used by valtask. |
| |
| PARAMETERS: |
| |
| MsgId: received message id |
| MsgP: message |
| MsgSize: message size |
| |
| RETURNED VALUES: |
| |
| None |
| |
| *****************************************************************************/ |
| void ValChvDeliverMsg( kal_uint32 MsgId, |
| void* MsgP, |
| kal_uint32 MsgSize ); |
| |
| void ValUimDeliverMsg( kal_uint32 MsgId, |
| void* MsgP, |
| kal_uint32 MsgSize ); |
| |
| #ifdef __CARRIER_RESTRICTION__ |
| void ValUmlDeliverMsg( kal_uint32 MsgId, |
| void* MsgP ); |
| #endif |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimNotifyInit |
| |
| DESCRIPTION: |
| |
| Create ValUimNotifyEventLock. |
| |
| PARAMETERS: |
| |
| None. |
| |
| RETURNED VALUES: |
| |
| None |
| |
| *****************************************************************************/ |
| void ValUimNotifyInit( void ); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimRegister |
| |
| DESCRIPTION: |
| |
| Other task invokes this function to register UIM message functions |
| in Val task. |
| |
| PARAMETERS: |
| EventFunc: Callback function |
| |
| RETURNED VALUES: |
| |
| TRegister ID |
| -1: failed. |
| |
| *****************************************************************************/ |
| RegIdT ValUimRegister( ValEventFunc EventFunc ); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimUnregister |
| |
| DESCRIPTION: |
| |
| Other task invokes this function to unregister UIM Notify Register message functions |
| |
| PARAMETERS: |
| RegId: Register ID |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *****************************************************************************/ |
| void ValUimUnregister( RegIdT RegId ); |
| |
| /* Val Uim Phb */ |
| |
| void ValUimGetPhbRecParams( void ); |
| void ValUimGetPhbRecord( kal_uint8 nIndex ); |
| void ValUimUpdatePhbRecord( kal_uint8 nIndex, |
| kal_uint8* pName, |
| #ifdef MTK_CBP |
| kal_uint8 name_len, |
| #endif |
| kal_uint8* pPhNum, |
| ValUimNumberTypeT TON, |
| ValUimNumberPlanT NPI, |
| kal_bool isAtHcpbw); |
| void ValUimErasePhbRecord( kal_uint8 nIndex , kal_bool isAtCpbw); |
| |
| /* Val Uim Sms */ |
| void ValUimGetSmsRecParams( void ); |
| void ValUimGetSmsRecord( kal_uint8 nIndex ); |
| void ValUimUpdateSmsRecord( kal_uint8 nIndex, |
| kal_uint8 nStatus, |
| kal_uint8* pMsgData, |
| kal_uint8 MsgLen ); |
| void ValUimEraseSmsRecord( kal_uint8 nIndex ); |
| kal_bool ValGetPrefLang(kal_uint8 *pLang, kal_uint8 *pEncoding); |
| //don't modify following Function, brew has referred to it |
| kal_bool ValGetUIMId(kal_uint32 *pId); |
| |
| void ValUimDataRequest( void ); |
| void ValUimIdEuimidRequest( void ); |
| void GetUimSPName(void * MsgP); |
| void InitAfterPV(); |
| void ChvCGetStatusCB(ValChvStatusT resultStatus); |
| void ValGetNewChvStatusCB(ValChvStatusT resultStatus); |
| |
| |
| |
| |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimSmsVPInit |
| |
| DESCRIPTION: |
| |
| This routine initiates the procedure of reading Sms parameters of the UIM. |
| |
| PARAMETERS: |
| |
| None. |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *********************************************************************************/ |
| void ValUimSmsVPInit(void); |
| |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimGetSmsVPRecNumProcess |
| |
| DESCRIPTION: |
| |
| This routine processes VAL_UIM_GET_SMSVP_REC_NUM_MSG response message. |
| |
| PARAMETERS: |
| |
| RspMsgP: VAL_UIM_GET_SMSVP_REC_NUM_MSG response message structure pointer. |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *********************************************************************************/ |
| void ValUimGetSmsVPRecNumProcess(UimRspMsgT* RspMsgP); |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimGetMaxSmsVPRecNum |
| |
| DESCRIPTION: |
| |
| It's invoked to Get the number of SMS PARAMETER record in UIM card. |
| |
| PARAMETERS: |
| |
| None. |
| |
| RETURNED VALUES: |
| |
| Num: the number of SMS PARAMETER record. |
| |
| *********************************************************************************/ |
| kal_uint8 ValUimGetMaxSmsVPRecNum(void); |
| |
| |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimReadSmsVPProcess |
| |
| DESCRIPTION: |
| |
| This routine processes VAL_UIM_READ_SMSVP_REC_MSG response message. |
| |
| PARAMETERS: |
| |
| RspMsgP: VAL_UIM_READ_SMSVP_REC_MSG response message structure pointer. |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *********************************************************************************/ |
| void ValUimReadSmsVPProcess(UimRspMsgT* RspMsgP); |
| |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimUpdateSMSVPProcess |
| |
| DESCRIPTION: |
| |
| This routine processes VAL_UIM_UPDATE_SMSVP_REC_MSG response message. |
| |
| PARAMETERS: |
| |
| RspMsgP: VAL_UIM_UPDATE_SMSVP_REC_MSG response message structure pointer. |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *********************************************************************************/ |
| void ValUimUpdateSMSVPProcess(UimRspMsgT* RspMsgP); |
| |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimReadSmsVPRec |
| |
| DESCRIPTION: |
| |
| This routine sends Read Record(6F3D) message to the UIM task. |
| |
| PARAMETERS: |
| |
| index: Record index, start from 1. |
| |
| Result: |
| this Read Record operation is successfully deliveried to UIM driver. |
| |
| *********************************************************************************/ |
| void ValUimReadSmsVPRec(kal_uint8 index); |
| |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimUpdateSmsVPRec |
| |
| DESCRIPTION: |
| |
| This routine sends Update Record(6F3D) message to the UIM task. |
| |
| PARAMETERS: |
| |
| index: Record index, start from 1. |
| vp: Validity period inputed by client |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: this operation is successful to delivery to UIM driver. |
| KAL_FALSE: index is invalide parameter. |
| |
| *********************************************************************************/ |
| kal_bool ValUimUpdateSmsVPRec(kal_uint8 index,kal_uint8 vp); |
| |
| //don't modify following Function, brew has referred to it |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimGetMdnRec |
| |
| DESCRIPTION: |
| |
| It's invoked to SMS Validity Period . |
| |
| PARAMETERS: |
| |
| index: Record index, start from 1. |
| ptvp: point to the address that store the Validity Period. |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: this operation is successful. |
| KAL_FALSE: failure. |
| |
| *********************************************************************************/ |
| kal_bool ValUimGetSmsVPRec(kal_uint8 index, kal_uint8* ptvp); |
| |
| #if 0 |
| /* under construction !*/ |
| /* under construction !*/ |
| #endif |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimRawCmd |
| |
| DESCRIPTION: |
| |
| It's invoked to send UIM raw command to UIM card. |
| |
| PARAMETERS: |
| |
| len: Raw command APDU length. |
| CmdApdu: pointer to command APDU. |
| RspInfo: Response message info. |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: this operation is successful. |
| KAL_FALSE: failure. |
| |
| *********************************************************************************/ |
| kal_bool ValUimRawCmd(kal_uint16 Len, kal_uint8 *CmdApdu, ExeRspMsgT* RspInfoP); |
| |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimRunCave |
| |
| DESCRIPTION: |
| |
| It's invoked to send RUN CAVE command to UIM card. |
| |
| PARAMETERS: |
| |
| rand: rand value. |
| type: RAND or RANDU. |
| digitLen: digits length. |
| digit: digits, should be digit[6] |
| saveRegister: save registers or not. |
| esn: UimId(if UIM_ID is used for auth.), otherwise, If ME is |
| assigned with MEID,Pseudo-ESN value shall be used. if it's ESN ME |
| and esn is used for auth, esn should be used. |
| RspInfo: response info. |
| RETURNED VALUES: |
| None. |
| |
| *********************************************************************************/ |
| void ValUimRunCave(kal_uint32 rand, ValRandTypeT type, kal_uint8 digitLen, kal_uint8 *digit, |
| kal_bool saveRegister, kal_uint32 esn, ExeRspMsgT rspInfo); |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimGenKeyVPM |
| |
| DESCRIPTION: |
| |
| It's invoked to send Generate Key/VPM command to UIM card. |
| |
| PARAMETERS: |
| |
| cmeaKey: the pointer to cemakey[8] array |
| vpm: the pointer to VPM[65] array. |
| RETURNED VALUES: |
| None. |
| |
| Notes: When Generate Key/VPM command is finished, cmeaKey and vpm will be written |
| by UIM task. |
| |
| *********************************************************************************/ |
| void ValUimGenKeyVPM(kal_uint8 *cmeaKey, kal_uint8 *vpm); |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimUpdateSSD |
| |
| DESCRIPTION: |
| |
| It's invoked to tell UIM do Update SSD operation. |
| |
| PARAMETERS: |
| |
| randssd: randssd. |
| esn: UimId(if UIM_ID is used for auth.), otherwise, If ME is |
| assigned with MEID,Pseudo-ESN value shall be used. if it's ESN ME |
| and esn is used for auth, esn should be used. |
| rspInfo: response info. |
| RETURNED VALUES: |
| None. |
| |
| *********************************************************************************/ |
| void ValUimUpdateSSD(kal_uint8 *randssd, kal_uint32 esn, ExeRspMsgT rspInfo); |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimConfirmSSD |
| |
| DESCRIPTION: |
| |
| It's invoked to send CONFIRM SSD command to UIM card. |
| |
| PARAMETERS: |
| |
| authBS: AuthBS. |
| esn: UimId(if UIM_ID is used for auth.), otherwise, If ME is |
| assigned with MEID,Pseudo-ESN value shall be used. if it's ESN ME |
| and esn is used for auth, esn should be used. |
| rspInfo: response info. |
| RETURNED VALUES: |
| None. |
| |
| *********************************************************************************/ |
| void ValUimConfirmSSD(kal_uint32 authBS, ExeRspMsgT rspInfo); |
| |
| /******************************************************************************** |
| |
| FUNCTION NAME: ValUimMD5Auth |
| |
| DESCRIPTION: |
| |
| It's invoked to request UIM MD5 auth. |
| |
| PARAMETERS: |
| |
| chapId: chapId. |
| challengeLen: challenge length, uim supports challenge length up to 16. |
| challenge: challenge array. |
| rspInfo: response info. |
| RETURNED VALUES: |
| None. |
| |
| *********************************************************************************/ |
| void ValUimMD5Auth(kal_uint8 chapId, kal_uint8 challengeLen, kal_uint8 *challenge, ExeRspMsgT rspInfo); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimGetSDNRecParams |
| |
| DESCRIPTION: |
| To send a message to UIM to read SDN parameters. User can get SDN parameters |
| in callback function. |
| |
| PARAMETERS: |
| |
| SDNCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: message to UIM has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValUimGetSDNRecParams(void (*SDNCallbackP)(ValUimSDNParamsT*)); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimGetSDNRecord |
| |
| DESCRIPTION: |
| To send a message to UIM to read SDN record. User can get SDN record |
| in callback function. |
| |
| PARAMETERS: |
| <nIndex> the phone record index |
| SDNCallbackP: Pointer to callback function |
| |
| RETURNED VALUES: |
| |
| KAL_TRUE: message to UIM has been sent. |
| KAL_FALSE: error. callback=NULL or other task is doing this operation. |
| |
| *****************************************************************************/ |
| kal_bool ValUimGetSDNRecord(kal_uint8 nIndex, void (*SDNCallbackP)(ValUimSDNRecT*)); |
| ValUimProviderName* ValGetProviderName(void); |
| void ValUimReadyInit(UimNotifyMsgT * MsgP); |
| void ValUimStoreEsn(kal_uint64 Esn, kal_uint8 Len, kal_bool MEAndUIMMEIDSupported); |
| void ValUimGetEsn(void(*GetEsnCallbackP)(kal_uint64)); |
| kal_bool ValGetMEIDUIMSupported(void); |
| kal_bool ValGetSFUIMIDSupported(void); |
| kal_uint8 ValUimGetCst(UimECstIndexT index); |
| |
| /* Used for andriod system */ |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimGetUtkCmdFlag |
| |
| DESCRIPTION: |
| |
| Get UTK CMD flag. |
| |
| PARAMETERS: |
| |
| None. |
| |
| RETURNED VALUES: |
| |
| kal_bool: KAL_TRUE: USE AT+UTKPD to init UTK. |
| |
| *****************************************************************************/ |
| kal_bool ValUimGetUtkCmdFlag( void ); |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimProfileDownload |
| |
| DESCRIPTION: |
| |
| Call this function to send TERMINAL PROFILE Command to UIM task. |
| |
| PARAMETERS: |
| |
| None. |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *****************************************************************************/ |
| void ValUimProfileDownload( void ); |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimTerminalRespnse |
| |
| DESCRIPTION: |
| |
| Call this function to send TERMINAL RESPONSE Command to UIM task. |
| |
| PARAMETERS: |
| |
| len. data buffer length |
| data: data buffer |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *****************************************************************************/ |
| void ValUimTerminalRespnse(kal_uint8 len, kal_uint8 *data); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimEnvelope |
| |
| DESCRIPTION: |
| |
| Call this function to send ENVELOPE Command to UIM task. |
| |
| PARAMETERS: |
| |
| len. data buffer length |
| data: data buffer |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *****************************************************************************/ |
| void ValUimEnvelope(kal_uint8 len, kal_uint8 *data,kal_bool is_ap_envelope); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimConfirmCall |
| |
| DESCRIPTION: |
| |
| Call this function to confirm if Set Up Call command needs to be executed. |
| |
| PARAMETERS: |
| |
| Accept: |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *****************************************************************************/ |
| void ValUimConfirmCall( kal_bool Accept); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValProProactCmdRsp |
| |
| DESCRIPTION: |
| |
| Call this to give respnose for proactive cmd. |
| |
| PARAMETERS: |
| |
| Result. General result |
| AddInfo: if result is 0x20, 0x21, need fill in this field. |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *****************************************************************************/ |
| void ValProProactCmdRsp( ValUimCmdGenRstT Result, ValUimCmdAddInfoT AddInfo); |
| |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimSmsDownload |
| |
| DESCRIPTION: |
| |
| To execute UTK SMS PP Download. |
| |
| PARAMETERS: |
| |
| ApduP : Apdu buffer |
| BufferP : Apdu length |
| TxtMessage: Sms text message buffer |
| |
| RETURNED VALUES: |
| |
| None. |
| |
| *****************************************************************************/ |
| void ValUimSmsDownload( kal_uint8* ApduP, kal_uint8 Len, ValSmsTxtRecordT* TxtMessage); |
| |
| #ifdef MTK_CBP |
| kal_bool ValUimDelMdnRecBySimIndex(kal_uint8 Index, kal_uint8 simIndex); |
| kal_bool ValUimUpdateMdnRecBySimIndex(kal_uint8 Index, kal_uint8 Len, kal_uint8* MdnP, kal_uint8 simIndex); |
| kal_bool ValUimGetMdnReq(kal_uint8 simIndex); |
| kal_bool ValUimGetSidNidReq(kal_uint8 simIndex); |
| kal_bool ValUimGetImsiReq(kal_uint8 simIndex, ExeRspMsgT* RspInfo); |
| kal_bool ValUimGetChvStatusBySimIndex(kal_uint8 chan, kal_uint8 simIndex); |
| kal_bool ValUimVerifyChvByIndex(kal_uint8 chan, |
| kal_uint8 simIndex, |
| kal_uint8 chvId, |
| kal_uint8 chvLen, |
| kal_uint8 chv1Val[8]); |
| kal_bool ValUimChangeChvByIndex(kal_uint8 chan, |
| kal_uint8 simIndex, |
| ValChvIdT ChvId, |
| kal_uint8 OldChvLen, |
| kal_uint8* OldChvP, |
| kal_uint8 NewChvLen, |
| kal_uint8* NewChvP); |
| |
| kal_bool ValUimGetFullPath(kal_uint8* fullPath, kal_uint8* asciistr, kal_uint16 fileId, kal_uint16* pathLen); |
| kal_bool ValUimCrsmCrlaCmd(ValUimCmdT Cmd, kal_uint16 FileId, kal_uint8 P1, kal_uint8 P2, kal_uint8 P3, |
| kal_uint8 *DataP, ExeRspMsgT* RspInfo, kal_uint8 sessionId, kal_bool isFullPath, kal_uint8* fullPath, kal_uint16 pathLen, kal_uint8 simIndex, kal_uint8 chanId); |
| kal_bool ValUimRawCmdBySimIndex(kal_uint16 Len, kal_uint8 *CmdApdu, ExeRspMsgT* RspInfoP, kal_uint8 simIndex, kal_uint8 chanId); |
| kal_bool ValUimExtendedRawCmdBySimIndex(ExeRspMsgT* RspInfoP, kal_uint8 simIndex, kal_uint8 chanId); |
| kal_bool ValAtUimGetIccid(kal_uint8 simIndex); |
| kal_bool ValAtUimGetAppInfo(kal_uint8 simIndex, kal_uint8 appId); |
| kal_bool ValUimGetUimIdReq(kal_uint8 simIndex); |
| kal_bool ValAtUimGetCstInfo(kal_uint8 simIndex, kal_uint8 cardType, UimECstIndexT cstIndex); |
| #endif |
| |
| #ifdef MTK_DEV_C2K_IRAT |
| void ValProTimerManagerCmdRsp( ValUimCmdGenRstT Result, ValUimCmdAddInfoT AddInfo,kal_uint8 DataLen, kal_uint8 *Adddata); |
| void valUimProvideLocationInfoProcess(void); |
| void ValUimUtkTimerExpiryMsgPro(kal_uint32 Id); |
| void ValUimUtkRefreshRspMsg(UimUtkRefreshRspMsgT *MsgData); |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimFileChangeCompleted |
| |
| DESCRIPTION: |
| |
| internal help function: send MSG_ID_C2K_UIM_SAT_FILE_CHANGE_RES to UIM task. |
| |
| PARAMETERS: ChangeSuccess |
| |
| RETURNED VALUES: None. |
| |
| *****************************************************************************/ |
| extern void ValUimFileChangeCompleted(ValUimUtkFileMaskTypeT FileMask); |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimUtkRefreshRequest |
| |
| DESCRIPTION: |
| |
| internal help function: . |
| |
| PARAMETERS: |
| |
| RETURNED VALUES: None. |
| |
| *****************************************************************************/ |
| |
| extern void ValUimUtkRefreshRequest(void); |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimUtkRefreshProcess |
| |
| DESCRIPTION: |
| |
| internal help function: handle UTK Refresh command |
| |
| PARAMETERS: ChangeSuccess |
| |
| RETURNED VALUES: None. |
| |
| *****************************************************************************/ |
| extern kal_bool ValUimUtkRefreshProcess(kal_uint8 *BufDataP,kal_uint8 Len, kal_uint8 *ApIndicator); |
| extern kal_bool IsPowerCycleTrigByRefresh(void); |
| extern void SetPowerCycleTrigByRefreshFlag(kal_bool flag); |
| |
| #ifdef FEATURE_UTK |
| /***************************************************************************** |
| |
| FUNCTION NAME: ValUimEhrpdAuthFailure |
| |
| DESCRIPTION: |
| |
| PARAMETERS: |
| |
| RETURNED VALUES: None. |
| |
| *****************************************************************************/ |
| extern void ValUimEhrpdAuthFailure(void); |
| #endif |
| #endif |
| #ifdef MTK_CBP |
| extern void ValUimSetFdnStatus(kal_bool ActiveStatus,kal_uint8 ChvLen,kal_uint8 *ChvData); |
| extern void ValUimUpdateFdnRecord( kal_uint8 nIndex, |
| kal_uint8* pName, |
| kal_uint8 name_len, |
| kal_uint8* pPhNum, |
| ValUimNumberTypeT TON, |
| ValUimNumberPlanT NPI, |
| kal_bool isAtCpbw); |
| extern void ValUimEraseFdnRecord( kal_uint8 nIndex,kal_bool isAtCpbw); |
| extern void ValUimGetFdnRecord(kal_uint8 nIndex); |
| #endif |
| |
| #ifdef __CARRIER_RESTRICTION__ |
| void ValUimNotifyRegisterProcess( void* RspMsgP ); |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |
| |
| /***************************************************************************** |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| *****************************************************************************/ |
| |
| /**Log information: \main\CBP7FeaturePhone\CBP7FeaturePhone_nicholaszhao_href17384\1 2011-07-08 06:09:12 GMT nicholaszhao |
| ** HREF#17384**/ |
| /**Log information: \main\CBP7FeaturePhone\4 2011-07-12 09:42:17 GMT marszhang |
| ** HREF#17384**/ |
| /**Log information: \main\2 2012-04-06 05:34:48 GMT pzhang |
| ** modify contact uim interface**/ |
| |