[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/general/sim_public_api.h b/mcu/interface/protocol/general/sim_public_api.h
new file mode 100644
index 0000000..59db428
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_public_api.h
@@ -0,0 +1,586 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * 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) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * sim_public_api.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * API provided by SIM task and outside-PS task uses also
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef SIM_PUBLIC_API_H
+#define SIM_PUBLIC_API_H
+
+#include "kal_general_types.h"
+#include "sim_public_enum.h"
+#include "sim_ps_enum.h"
+#ifdef __SIM_MULTI_PIN__
+#include "ps_public_struct.h"
+#endif
+
+/*******************************************************************************/
+/* Merge sim_ps_api.h */
+#if defined (__GEMINI__)
+kal_bool is_usim_type(sim_interface_enum ps_id);
+#else
+kal_bool is_usim_type(void);
+#endif
+kal_bool is_usim_type_by_ps_id(protocol_id_enum ps_id);
+
+kal_uint8 sim_query_mnc_num(sim_interface_enum simInterface);
+
+#if defined (__GEMINI__)
+usim_acl_type_enum usim_query_acl_type(sim_interface_enum ps_id);
+#else
+usim_acl_type_enum usim_query_acl_type(void);
+#endif
+usim_acl_type_enum usim_query_acl_type_by_ps_id(protocol_id_enum ps_id);
+
+uicc_app_type_enum sim_application_id_query(sim_interface_enum simInterface, usim_logic_channel_enum channel);
+
+sim_dn_enum sim_dn_type_query(sim_interface_enum simInterface);
+
+#if defined (__GEMINI__)
+kal_bool is_vsim_on(kal_uint8 simInterface);
+#else
+kal_bool is_vsim_on(void);
+#endif
+kal_bool is_vsim_on_by_ps_id(protocol_id_enum ps_id);
+
+kal_uint8 sim_read_vsim_profileid(kal_uint8 simInterface);
+
+kal_uint8 sim_read_vsim_type(kal_uint8 simInterface, kal_uint8 profile_id);
+
+kal_uint8 sim_read_vsim_auth_algo(kal_uint8 simInterface, kal_uint8 profile_id);
+
+void sim_read_vsim_auth_res(kal_uint8 simInterface, kal_uint8 profile_id, kal_uint16 *auth_len, kal_uint8 *auth_res);
+
+vsim_ver_type_enum sim_read_vsim_ver(kal_uint8 simInterface);
+#ifdef __GEMINI__
+kal_uint8 *get_sim_context_g_sat_event_list(kal_uint8 simInterface);
+#else
+kal_uint8 *get_sim_context_g_sat_event_list(void);
+#endif
+
+void deactivate_fetch(sim_interface_enum simInterface);
+void activate_fetch(sim_interface_enum simInterface);
+
+extern void sim_get_full_path(sim_file_index_enum file_index, kal_uint8 *full_path);
+/*******************************************************************************/
+
+
+
+kal_bool is_sim1_test_sim(void);
+
+#if defined( __GEMINI__)
+kal_bool is_test_sim(kal_uint8 simInterface);
+#else
+kal_bool is_test_sim(void);
+#endif
+kal_bool is_test_sim_by_ps_id(protocol_id_enum ps_id);
+
+
+usim_logic_channel_enum l4c_sim_get_app_channel_id(kal_uint8 simInterface, kal_uint8 applicationid);
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+sim_ecall_mode_enum sim_ecall_mode_query(sim_interface_enum simInterface);
+kal_bool sim_set_ecall_test_mode(sim_interface_enum simInterface,sim_ecall_mode_enum mode);
+#endif
+#ifdef __NG_ECALL_SUPPORT__
+sim_ecall_mode_enum sim_ecall_mode_ims_query(sim_interface_enum simInterface);
+#endif
+#if defined( __GEMINI__)
+sim_type_query_enum sim_query_type(sim_interface_enum which_sim);
+#else
+sim_type_query_enum sim_query_type(void);
+#endif
+sim_type_query_enum sim_query_type_by_ps_id(protocol_id_enum ps_id);
+
+#if defined( __GEMINI__)
+sim_service_state_enum sim_service_table_query(sim_service_enum service_id, kal_uint8 ps_id);
+#else
+sim_service_state_enum sim_service_table_query(sim_service_enum service_id);
+#endif
+sim_service_state_enum sim_service_table_query_by_ps_id(sim_service_enum service_id, protocol_id_enum ps_id);
+
+#if defined(__GEMINI__)
+sim_card_status_enum check_sim_card_status(kal_uint8 simInterface);
+#else
+sim_card_status_enum check_sim_card_status(void);
+#endif
+
+#if defined(__ICUSB_SUPPORT__) && defined(__MTK_TARGET__)
+extern void sim_icusb_error_ind_call_back(kal_uint32 which_sim);
+#endif
+
+extern kal_bool is_sim_registered(kal_uint8 simInterface);
+
+extern kal_uint8 sim_get_cdma_info(kal_uint8 sim_indx);
+
+extern kal_bool sim_get_3GCT_card_info(kal_uint8 sim_indx);
+
+extern kal_bool is_op20_imei_lock(kal_uint8 sim_indx);
+
+extern kal_uint8 is_isim_exist(kal_uint8 sim_indx);
+
+#ifdef __SAT__
+kal_bool sat_set_profile_download_config(sat_profile_download_enum dl_setting, protocol_id_enum sim_ps_id);
+sat_profile_download_enum sat_get_profile_download_config(protocol_id_enum sim_ps_id);
+
+kal_bool sat_set_profile_activate_config(sat_profile_activate_enum act_setting, protocol_id_enum sim_ps_id);
+
+sat_profile_activate_enum sat_get_profile_activate_config(protocol_id_enum sim_ps_id);
+
+#endif
+
+extern void usim_get_ust(kal_uint8* ust, kal_uint8 *ust_len, kal_uint8 sim_ps_id);
+
+extern kal_uint8 sim_query_L1_SIM_insert_status(void);
+
+extern kal_uint8 get_uicc_type_from_channel_id(kal_uint8 simInterface, kal_uint8 channel_id);
+
+extern void l4c_usim_get_aid_info_by_channel(kal_uint8 simInterface, kal_uint8 applicationid, kal_uint8 *channel_id, kal_uint8* aid, kal_uint8 *aid_len, kal_uint8 *app_label, kal_uint8 *app_label_len);
+
+extern kal_bool usim_is_uicc_app_exist(kal_uint8 sim_indx, kal_uint8 app_id);
+
+/*******************************************************************************/
+
+/* Add new functions */
+
+/* Check whether SIM slot has card, including CT3G, UIM, recovery */
+/* Workaround for CT3G recovery */
+extern kal_bool sim_is_card_in_slot(kal_uint8 sim_ps_id);
+
+/*
+READ BINARY/RECORD from SIM file cache
+Currently only support:
+ Default channel
+ Valid file_idx
+ SFI not used
+*/
+kal_bool sim_read_file_cache(kal_uint8 sim_ps_id,
+ sim_file_index_enum file_idx,
+ kal_uint32 cmd, // smu_common_enums.h - (smu_sim_access_cmd_enum) READ_BINARY or READ_RECORD
+ kal_uint16 fileid,
+ kal_uint8 *pathid,
+ kal_uint8 pathid_length,
+ kal_uint8 p1,
+ kal_uint8 p2,
+ kal_uint8 p3,
+ kal_uint8 channel_id,
+ kal_uint8 sfi,
+ kal_uint8 *res_data);
+
+
+/* Pass ICCID stored in SIM context */
+void sim_get_iccid(kal_uint8 sim_ps_id, kal_uint8 *iccid);
+
+/*******************************************************************************/
+
+#if defined (__GEMINI__)
+kal_bool is_apvsim_on(kal_uint8 simInterface);
+#else
+kal_bool is_apvsim_on(void);
+#endif
+
+kal_bool sim_is_any_hotswap_poll_timer_start(void);
+
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_query_atr_info
+ * DESCRIPTION
+ * To query ATR info
+ * PARAMETERS
+ * length [OUT] ATR length
+ * atr [OUT] ATR value(Hex)
+ * ps_id [IN] which SIM
+ * RETURNS
+ * KAL_TRUE SIM exist
+ * KAL_FALSE SIM absent
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_query_atr_info(kal_uint8 *length, kal_uint8 *atr, protocol_id_enum ps_id);
+
+/*****************************************************************************
+* FUNCTION
+* sim_ps_data_off_exempt_query_by_ps_id
+* DESCRIPTION
+* Check if the service is 3GPP PS Data Off Exempt
+* PARAMETERS
+* exempt_id [IN] service to be queried
+* this_sim
+* RETURNS
+* Boolean
+* GLOBALS AFFECTED
+* None
+*****************************************************************************/
+sim_ps_data_off_exempt_state_enum sim_ps_data_off_exempt_query_by_ps_id(sim_ps_data_off_exempt_enum exempt_id, protocol_id_enum ps_id);
+
+extern kal_bool sim_get_if_immediate_auth_needed(kal_uint8 sim_ps_id);
+extern void sim_set_immediate_auth_flag(kal_uint8 sim_ps_id);
+
+/*****************************************************************************
+* FUNCTION
+* sim_check_curr_disable_by_ps
+* DESCRIPTION
+* To query the current ps sim state is disable or enable
+* PARAMETERS
+* sim_ps_id [IN] protocol id
+* RETURNS
+* Boolean Disable state
+* GLOBALS AFFECTED
+* None
+*****************************************************************************/
+extern kal_bool sim_check_curr_disable_by_ps(kal_uint8 sim_ps_id);
+
+/*****************************************************************************
+* FUNCTION
+* sim_check_curr_disable_card_exist_by_ps
+* DESCRIPTION
+* To query the current ps sim state is disable or enable
+* PARAMETERS
+* sim_ps_id [IN] protocol id
+* RETURNS
+* Boolean Disable state and the card in slot
+*****************************************************************************/
+extern kal_bool sim_check_curr_disable_card_exist_by_ps (kal_uint8 sim_ps_id);
+
+/*****************************************************************************
+* FUNCTION
+* sim_get_file_idx_from_path
+* DESCRIPTION
+* To get the sim file index from file path.
+* PARAMETERS
+* path [IN] the array carry the file id path
+* path_len [IN] the valid path length
+* app_type [IN] the file is belong to which application (ADF)
+* RETURNS
+* sim file index
+* GLOBALS AFFECTED
+* None
+*****************************************************************************/
+kal_uint32 sim_get_file_idx_from_path (const kal_uint8 *path, kal_uint16 path_len, uicc_app_type_enum app_type);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_file_meta_cache_by_ps
+ * DESCRIPTION
+ * This function is to get the meta info of FCP data in sim context cache
+ * PARAMETERS
+ * sim_ps_id [IN] which PS to be check
+ * file_idx [IN] which file to be check
+ * file_exist [OUT] the file exist or not
+ * file_type [OUT] the file type. TRANSPARENT or RECORD type
+ * file_size [OUT] the file size for TRANSPARNET file/ the record size for RECORD file
+ * total_rec_num [OUT] total number of records.
+ * RETURNS
+ * Boolean FALSE means the file to be checked is not in sim context cache.
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_get_file_meta_cache_by_ps(kal_uint8 sim_ps_id,
+ sim_file_index_enum file_idx,
+ kal_bool *file_exist,
+ sim_file_structure_enum *file_type,
+ kal_uint16 *file_size,
+ kal_uint16 *total_rec_num);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_cached_file_size_by_ps
+ * DESCRIPTION
+ * Query SIM cached data profile by file index
+ * PARAMETERS
+ * sim_ps_id [IN] which PS to be check
+ * file_idx [IN] which file to be check
+ * cached_rec_num [OUT] the number of record cached
+ * cached_rec_size [OUT] the cached record size
+ * RETURNS
+ * KAL_TRUE The file in cache
+ * KAL_FALSE The file not in cache
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_get_cached_file_size_by_ps (kal_uint8 sim_ps_id,
+ sim_file_index_enum file_idx,
+ kal_uint8 *cached_rec_num,
+ kal_uint16 *cached_rec_size);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_cached_file_data_by_ps
+ * DESCRIPTION
+ * Get the SIM cached data by file index
+ * PARAMETERS
+ * sim_ps_id [IN] which PS to be check
+ * file_idx [IN] which file to be check
+ * cmd [IN] read command, READ_RECORD or READ_BINARY
+ * rec_id [IN] the 1-based record id to be read.
+ * res_buffer_size [IN] the size of the respose buffer, res_data
+ * res_data [OUT] the response buffer
+ * RETURNS
+ * The length of data in res_data buffer
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_uint16 sim_get_cached_file_data_by_ps (kal_uint8 sim_ps_id,
+ sim_file_index_enum file_idx,
+ kal_uint8 rec_id,
+ kal_uint16 res_buffer_size,
+ kal_uint8 *res_data);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_query_operator_card
+ * DESCRIPTION
+ * Query the operator name based on ICCID/EHPLMN/IMSI in SIM context
+ * PARAMETERS
+ * ps_id [IN] which PS to be query
+ * RETURNS
+ * operator name
+ *****************************************************************************/
+sim_operator_type_enum sim_query_operator_card(protocol_id_enum ps_id);
+
+/*****************************************************************************
+ * FUNCTION
+ * is_extended_length_fields_support
+ * DESCRIPTION
+ * This function is to check if card supports extended length fields
+ * PARAMETERS
+ * ps_id [IN] which PS to be query
+ * RETURNS
+ * KAL_TRUE extended length fields supported
+ * KAL_FALSE extended length fields not supported
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool is_extended_length_fields_support(protocol_id_enum ps_id);
+
+#ifdef __FAKEID_SUPPORT__
+/*****************************************************************************
+ * FUNCTION
+ * sim_is_fake_imsi_by_ps_id
+ * DESCRIPTION
+ * This function is to check if the current protocol is using fake IMSI
+ * Caller should use this API after SIM ready
+ * PARAMETERS
+ * protocol_id_enum ps_id [?]
+ * RETURNS
+ * KAL_TRUE fake IMSI used
+ * KAL_FALSE fake IMSI not used
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+extern kal_bool sim_is_fake_imsi_by_ps_id(protocol_id_enum ps_id);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_fake_imsi
+ * DESCRIPTION
+ * This function is to get the fake IMSI set by the tester
+ * Caller should use this API after SIM ready
+ * Caller should allocate the MAX_SIM_IMSI_LEN memory for imsi_p
+ * PARAMETERS
+ * kal_uint8 sim_ps_id [IN]
+ * RETURNS
+ * imsi_p fake IMSI
+ * mnc_length_p MNC length of fake IMSI
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+extern void sim_get_fake_imsi(protocol_id_enum sim_ps_id, kal_uint8 *imsi_p, kal_uint8 *mnc_length_p);
+
+#endif
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_is_euicc
+ * DESCRIPTION
+ * To check the present card is eUICC.
+ * PARAMETERS
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * KAL_TRUE SIM is eUICC
+ * KAL_FALSE SIM is not eUICC
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_is_euicc(protocol_id_enum ps_id);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_is_empty_euicc
+ * DESCRIPTION
+ * To check the present card is empty eUICC.
+ * PARAMETERS
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * KAL_TRUE SIM is empty eUICC
+ * KAL_FALSE SIM is not empty eUICC
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_is_empty_euicc(protocol_id_enum ps_id);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_query_eid
+ * DESCRIPTION
+ * To query EID
+ * PARAMETERS
+ * eid [OUT] EID value(Hex)
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * KAL_TRUE SIM exist and EID retrieved
+ * KAL_FALSE SIM absent or EID not retrieved
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_query_eid(kal_uint8 *eid, protocol_id_enum ps_id);
+
+#ifdef __SIM_MULTI_PIN__
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_app_pin_remaining_count_by_ps_id
+ * DESCRIPTION
+ *
+ * PARAMETERS
+ * RETURNS
+ * KAL_TRUE
+ * KAL_FALSE
+ *****************************************************************************/
+kal_bool sim_get_app_pin_remaining_count_by_ps_id(uicc_app_type_enum app_type, sim_chv_info_struct *chv_info, protocol_id_enum ps_id);
+#endif
+/*****************************************************************************
+* FUNCTION
+* sim_get_imsi_null_suci_by_ps
+* DESCRIPTION
+* Get the SUCI with Null Scheme by protocol stack.
+* PARAMETERS
+* sim_ps_id [IN] which PS to be check
+* res_len [IN/OUT] the size of suci_ptr buffer and the data length in suci_ptr for return
+* suci_ptr [OUT] array buffer to carry response data
+* RETURNS
+* Result of process the command
+*****************************************************************************/
+kal_bool sim_get_imsi_null_suci_by_ps (kal_uint8 sim_ps_id, kal_uint16 *res_len, kal_uint8 *suci_ptr);
+
+/*****************************************************************************
+* FUNCTION
+* usim_get_sfi_from_fcp
+* DESCRIPTION
+* Get the SFI (short file id) from FCP.
+* Support of SFI for a specific file is indicated if the FCP of the file contains a
+* TLV DO with tag '88'. If the length is 0 it indicates that the file does not support
+* referencing by SFI. If the TLV DO is not present in the FCP it indicates that the
+* 5 least significant bits of the FID are used as SFI.
+* PARAMETERS
+* fcp [IN] fcp data to be checked
+* fcp_len [IN] the length of whole fcp data
+* RETURNS
+* SFI. 0 means no SFI found
+*****************************************************************************/
+kal_uint8 usim_get_sfi_from_fcp (kal_uint8 *fcp, kal_uint16 fcp_len);
+
+#ifdef __TC10__
+extern void sim_get_last_commnad_APDU(kal_uint8 simInterface, kal_uint8 *command_header_p);
+extern sim_dss_state_enum sim_get_dss_state(protocol_id_enum ps_id); /*ALPS03779598*/
+/*****************************************************************************
+ * FUNCTION
+ * sim_check_hplmnwact_3g_only
+ * DESCRIPTION
+ * To query E-UTRAN bit available from EF_HPLMNwAcT.
+ * PARAMETERS
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * KAL_TRUE VzW 3G USIM not supported condition match, i.e. no E-UTRAN in HPLMNwAcT
+ *****************************************************************************/
+kal_bool sim_check_hplmnwact_3g_only(protocol_id_enum ps_id);
+extern kal_bool sim_query_vzpf(kal_uint8 *vzpf, protocol_id_enum ps_id);
+#endif
+
+extern kal_bool sim_query_gid1(kal_uint8 *gid1, protocol_id_enum ps_id);
+extern kal_bool sim_query_gid2(kal_uint8 *gid2, protocol_id_enum ps_id);
+
+
+extern kal_uint8 sim_query_voltage_info(protocol_id_enum ps_id);
+extern kal_uint8 sim_query_tray_info(protocol_id_enum ps_id);
+
+extern kal_bool sim_check_operator_card(sim_operator_type_enum operator_type, kal_uint8 sim_indx);
+extern kal_bool sim_check_operator_card_by_iccid(sim_operator_type_enum operator_type, kal_uint8 sim_indx);
+extern sim_op01_enum sim_query_op_mode(kal_uint8 ps_id);
+#ifdef __TC10_JPN_FACTORY__
+extern void sim_set_factory_mode(kal_bool is_factory);
+#endif
+#ifdef __SIM_TERMINAL_CAP__
+void sim_get_host_terminal_capabilities_by_ps_id(kal_uint16 tc_data_len, kal_uint8 *tc_data_ptr, protocol_id_enum ps_id);
+#endif
+#ifdef __SIM_PASS_THROUGH__
+/*****************************************************************************
+* FUNCTION
+* sim_get_esimpower_state_by_ps_id
+* DESCRIPTION
+* To query the current esimpower state ps sim
+* PARAMETERS
+* sim_ps_id [IN] protocol id
+* RETURNS
+* ESIMPOWER state
+*****************************************************************************/
+sim_esimpower_state_enum sim_get_esimpower_state_by_ps_id(protocol_id_enum ps_id);
+#endif
+#endif