[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/general/sim_ps_struct.h b/mcu/interface/protocol/general/sim_ps_struct.h
new file mode 100644
index 0000000..09f9708
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_ps_struct.h
@@ -0,0 +1,2579 @@
+/*****************************************************************************
+*  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_ps_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   Structure provided by SIM task and inside-PS task uses only
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+#ifndef SIM_PS_STRUCT_H
+#define SIM_PS_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "sim_public_enum.h"
+#include "sim_ps_enum.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+#include "sim_ps_struct_public.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+
+#include "nvram_data_items.h"
+#include "vsim_nvram_def.h"
+
+/* inside PS */
+typedef struct
+{
+   /* This field gives the actual file id of EF */
+   sim_file_id_enum           file_id;
+
+   /* This field gives the id of the parent of the EF */
+   sim_file_index_enum        parent_file_idx;
+
+   /* This field gives the id of the grandparent of the EF */
+//   sim_file_index_enum        grand_parent_file_idx;
+
+   /* This field is used by USIM select by path function */
+//   kal_uint8                        full_path[6];
+}usim_ef_info_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_start_mode_enum mode;
+    kal_uint8 access_id;
+    kal_uint8 pin1[8];
+} sim_start_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_start_mode_enum mode;
+    uicc_app_type_enum app_type;
+    kal_uint8 access_id;
+    kal_uint8 pin1[8];
+} sim_app_start_req_struct;
+
+typedef struct {
+    kal_uint8 num_lp;
+    sim_lp_file_type_enum lp_file_type;
+    kal_uint8 lp[NUM_OF_BYTE_LP * MAX_LP_NUM];
+} sim_lp_struct;
+
+typedef struct {
+    kal_uint8 num_ecc;
+    sim_ecc_entry_struct ecc_entry[MAX_ECC_NUM_USIM];
+    kal_uint8 ecc_rec_len;
+} sim_ecc_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 result;
+    sim_chv_info_struct chv_info;
+    sim_lp_struct lp[2];
+    sim_ecc_struct ecc;
+    kal_uint8 iccid[10];
+    kal_uint8 access_id;
+    kal_bool is_valid_rat_mode;  //__ENS_RAT_BALANCING__
+    kal_uint8 rat_mode; //RAT mode setting value in EF_RAT
+    kal_bool is_sim_recovery;   // If full recovery is undergoing, notify SMU not to update ICCID in SIM_START_CNF
+    sim_additional_error_cause_enum additional_error_cause;
+} sim_start_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    uicc_app_type_enum app_type;
+    kal_uint16 result;
+    sim_chv_info_struct chv_info;
+    kal_uint8 access_id;
+    kal_uint8 channel_id;
+} sim_app_start_cnf_struct;
+
+typedef uim_sim_error_ind_struct sim_error_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    usim_cache_struct usim_cache[USIM_CACHE_MAX_FILE_NUM];
+} sim_cache_update_ind_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_error_cause_enum cause;
+    uicc_app_type_enum app_type;
+    usim_logic_channel_enum channel;
+} sim_app_error_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool result; /*[MAUI_02450359] mtk01612: use result as is_imsi_valid*/
+    kal_uint8 ef_imsi[9];
+    kal_bool is_valid_gid1;
+    kal_uint8 gid1[NUM_GID1]; /*[MAUI_03097146] mtk01612: use NUM_GID1, NUM_GID2 instead of hard code */
+    kal_bool is_valid_gid2;
+    kal_uint8 gid2[NUM_GID2];
+
+#ifdef __TC01__ /* for +ESIMCEP */
+    kal_uint8 number_of_gid1;
+    kal_uint8 number_of_gid2;
+#endif
+
+/* moved from mmi_ready_ind */
+    kal_uint16 num_plmnsel_data; /* zero means invalid! */
+    kal_uint8 *plmnsel_data;     /* Stored in SMU, and SMU will free it when it's updated */
+    kal_uint16 num_uplmnwact_data; /* zero means invalid! */
+    kal_uint8 *uplmnwact_data;     /* Stored in SMU, and SMU will free it when it's updated */
+    kal_uint16 num_oplmnwact_data; /* zero means invalid! */
+    kal_uint8 *oplmnwact_data;     /* Stored in SMU, and SMU will free it when it's updated */
+    kal_bool is_valid_dck;
+    kal_uint8 dck[16];
+/* [MAUI_02129840] mtk80420: Medium Item 5, Remove the ef_acc, sopname, opname from mmi_security_ind */
+
+/*[[MAUI_02439033]] mtk01612: To sync plmn file handling. Send hplmn to SMU, even if SMU don't need it*/
+    kal_uint16 num_hplmnwact_data;        /* zero means invalid! */
+    kal_uint8 *hplmnwact_data;            /* Stored in SMU, and SMU will free it when it's updated */
+
+    kal_uint16 num_cnl_data;
+    kal_uint8 cnl[NUM_CNL];
+
+    kal_bool is_spn_valid;
+    kal_uint8 spn[LEN_OF_SPN];
+
+    kal_uint16 num_ehplmn_data; /* zero means invalid! */
+    kal_uint8  ehplmn_data[MAX_EHPLMN_EF_LEN];
+} sim_mmi_security_ind_struct;
+
+
+typedef struct {
+   kal_uint8 alpha_id_size;
+   kal_uint8 alpha_id[MAX_SIM_NAME_LEN];
+   kal_uint8 bcd_len;
+   kal_uint8 bcd_digit[41];
+} sim_addr_struct;
+
+typedef struct {
+   kal_uint8 alpha_id_size;
+   kal_uint8 alpha_id[21];
+   kal_uint8 ton_npi;
+   kal_uint8 digit_size;
+   kal_uint8 digit[4];//[41];
+   kal_uint8 index_level;
+   kal_bool network_specific;
+   kal_bool premium_rate;
+} sim_info_num_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 result;
+    sim_dn_enum dn_type;
+    sim_phase_enum phase;
+    kal_bool is_valid_puct;
+    kal_uint8 ef_puct[5];
+    kal_bool is_spn_valid;
+    kal_uint8 spn[LEN_OF_SPN];
+    kal_bool is_opname_valid;
+    kal_uint8 opname[LEN_OF_OPNAME];
+    kal_bool is_sopname_valid;
+    kal_uint8 sopname[10];
+    kal_uint8 no_msisdn;           // MSISDN
+    sim_addr_struct msisdn[2];
+    kal_uint8 no_info_num;         // Information Numbers
+    sim_info_num_struct *info_num; /* Free by SMU */
+    kal_bool is_valid_csp;
+    kal_uint8 csp[22];             // Custom Service Profile
+    /* Acting HPLMN */ /* mtk01488 */
+    kal_bool is_valid_ef_acting_hplmn;
+    kal_uint8 ef_acting_hplmn[3];
+    kal_bool is_usim;
+    kal_bool is_valid_ef_ehplmn;   // 23.122 R7 feature
+    kal_uint8 num_of_ehplmn;
+    kal_uint8 ef_ehplmn[MAX_EHPLMN_EF_LEN];
+    
+    kal_bool is_registration_mode;
+} sim_mmi_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ef_imsi[9];
+    kal_bool is_valid_ef_kc;
+    kal_uint8 ef_kc[9];
+    kal_uint8 ef_acc[2];
+    kal_bool is_valid_ef_loci;
+    kal_uint8 ef_loci[11];
+    kal_bool is_valid_ef_gkc;
+    kal_uint8 ef_gkc[9];
+    kal_bool is_valid_ef_gloci;
+    kal_uint8 ef_gloci[14];
+    /* Below is adding for 3G */
+    kal_uint8 ef_keys[33];      /* Always valid in USIM */
+    kal_uint8 ef_keysps[33];  /* Always valid in USIM */
+    kal_bool is_usim;
+    kal_bool is_service_27_support;
+    kal_bool is_service_38_support;
+    /* MTC nas configure */
+    kal_uint16 no_nasconfig_data;  /** Zero means invalid. */
+    kal_uint8 *nasconfig_data;  /** Defined in 31.102, ef_nasconfig. MM remember to free this ctrl buffer when finish using */
+    kal_bool is_rmode_changed;
+} sim_mm_ready_ind_struct;
+/* GAS: MOD_SIM -> MOD_RRM */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_valid_ms_op_mode; /* !!!Remove for MONZA!!! */
+    kal_uint8 ms_op_mode; /* !!!Remove for MONZA!!! */
+    kal_uint8 ef_imsi[9];
+    kal_bool is_valid_ef_bcch; /* !!!Remove for MONZA!!! */
+    kal_uint8 ef_bcch[16];  /* ONLY for SIM card */
+    kal_uint8 ef_acc[2];
+    kal_bool is_valid_ef_loci; /* !!!Remove for MONZA!!! */
+    kal_uint8 ef_loci[11];
+    /* Acting HPLMN */ /* mtk01488 */
+    kal_bool is_valid_ef_acting_hplmn;
+    kal_uint8 ef_acting_hplmn[3];
+    /* For MONZA only */
+    kal_bool is_usim;
+    kal_bool is_test_sim;
+    kal_bool is_valid_ef_netpar;   /*mtk01612: [MAUI_02575860]*/
+    kal_uint16 size_ef_netpar; /*mtk01612: [MAUI_02575860]*/
+    kal_uint8 ef_netpar[MAX_SUPPORT_NETPAR_DATA_SIZE];    /*mtk01612: [MAUI_02575860]*/
+} sim_rr_ready_ind_struct;
+
+/** MOD_SIM -> MOD_PAM */
+typedef struct {
+    LOCAL_PARA_HDR
+
+    /** True: SIM is replaced during power-OFF or by Hot-Plug.
+     *  - Note: Hot-Plug MSG sequence: SIM_ERROR_IND(plug-out) -> SIM_ERROR_IND(plug-in) -> SIM_PAM_READY_IND.
+     */
+    kal_bool is_sim_replaced ;
+
+    kal_uint8 ef_acc[2] ;           /** Defined in both 51.011 and 31.102. */
+    /* MTC nas configure */
+    kal_uint16 no_nasconfig_data ;  /** Zero means invalid. */
+    kal_uint8 *nasconfig_data ;     /** Defined in 31.102, ef_nasconfig. PAM remember to free this ctrl buffer when finish using */
+} sim_pam_ready_ind_struct ;
+
+typedef struct {
+    kal_bool is_valid_ef_acsgl;
+    kal_uint8 acsgl_data_rec_num; /* number of valid record in acsgl_data buffer */
+    kal_uint8 ef_acsgl_rec_size;
+    kal_uint8 *acsgl_data; /* Ctrl buffer with size MAX_SUPPORT_CSGL_DATA_SIZE. */
+    kal_bool is_valid_ef_ocsgl;
+    kal_uint8 ocsgl_data_rec_num; /* number of valid record in ocsgl_data buffer */
+    kal_uint8 ef_ocsgl_rec_size;
+    kal_uint8 *ocsgl_data; /* Ctrl buffer with size MAX_SUPPORT_CSGL_DATA_SIZE. */
+} sim_csg_white_list_struct;
+
+/* UAS: MOD_SIM -> MOD_USIME */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool  is_usim;
+    kal_bool is_test_sim;
+    kal_bool is_gsm_access_allowed;
+    kal_uint8 ef_acc[2];
+    kal_uint8 ef_imsi[9];
+    kal_bool is_valid_ef_start_hfn;
+    kal_uint8 ef_start_hfn[6];
+    kal_bool is_valid_ef_threshold;
+    kal_uint8 ef_threshold[3];
+    kal_uint8 ef_loci[11];
+    kal_bool is_valid_ef_psloci; /* If USIM inserted, this is EF-PSLOCI; if SIM inserted, this is EF_LOCIGPRS */
+    kal_uint8 ef_psloci[14]; /* If USIM inserted, this is EF-PSLOCI; if SIM inserted, this is EF_LOCIGPRS */
+    kal_bool is_valid_ef_netpar;   /*mtk01612: [MAUI_02575860]*/
+    kal_uint16 size_ef_netpar;
+    kal_uint8 ef_netpar[MAX_SUPPORT_NETPAR_DATA_SIZE];
+    sim_csg_white_list_struct csg_white_list;
+} usim_urr_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 size_ef_netpar;
+    kal_uint8 ef_netpar[MAX_SUPPORT_NETPAR_DATA_SIZE];
+} usim_update_netpar_req_struct; /*mtk01612: [MAUI_02575860]*/
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_cmd_result_enum result;
+    kal_uint16 status_word;
+} usim_update_netpar_cnf_struct; /*mtk01612: [MAUI_02575860]*/
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool    cipher_ind;      // 20050202 Benson add for display cipher indication
+    kal_bool is_uicc_activated;  // VZ_REQ_HVOLTE_41443, indicate the VZW UICC is activated or not
+} sim_mmrr_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ef_imsi[9];
+    kal_uint8 ef_acc[2];
+    kal_bool is_valid_ef_epsloci;
+    kal_uint8 ef_epsloci[LEN_OF_EPSLOCI];
+    kal_bool is_usim;
+    kal_bool is_gsm_access_allowed;
+    kal_uint8 ef_epsnsc_record_len; //record_len=0 indicating the epsnsc data is invalid
+    kal_uint8 *ef_epsnsc_data;      // Free in EMM
+    sim_csg_white_list_struct csg_white_list;
+    /* MTC nas configure */
+    kal_uint16 no_nasconfig_data;   /** Zero means invalid. */
+    kal_uint8 *nasconfig_data;      /** Defined in 31.102, ef_nasconfig. EMM remember to free this ctrl buffer when finish using */
+    /* operator PLMN */
+    kal_uint16 no_oplmn_data;
+    kal_uint8 *oplmn_data;
+    kal_bool is_rmode_changed;
+}sim_emm_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    /* Common part of GMSS/NWSEL */
+    kal_uint8 ef_imsi[9];
+    kal_bool is_usim;
+
+    /* NWSEL only */
+    kal_bool is_valid_ef_loci;
+    kal_uint8 ef_loci[11];
+    kal_bool is_valid_ef_gloci;
+    kal_uint8 ef_gloci[14];
+    kal_bool is_valid_ef_epsloci;
+    kal_uint8 ef_epsloci[LEN_OF_EPSLOCI];
+    kal_bool is_valid_ef_5gs3gpploci;
+    kal_uint8 ef_5gs3gpploci[LEN_OF_5GS3GPPLOCI];
+    kal_bool is_valid_ef_5gsn3gpploci;
+    kal_uint8 ef_5gsn3gpploci[LEN_OF_5GSN3GPPLOCI];
+    kal_uint8 ef_hplmn_time;
+    /* Forbidden PLMN */
+    kal_bool is_valid_ef_fplmn;
+    kal_uint16 num_of_fplmn;
+    kal_uint8 *ef_fplmn;        /* NWSEL remember to free it after finished using when ef_fplmn it is not NULL */
+    /* PLMN selector*/
+    kal_uint16 no_plmnsel_data;
+    kal_uint8 *plmnsel_data;    /* SMU remember to free it after finished using when plmnsel_data it is not NULL */
+    /* user PLMN */
+    kal_uint16 no_uplmn_data;
+    kal_uint8 *uplmn_data;      /* SMU remember to free it after finished using when uplmn_data it is not NULL */
+    /* operator PLMN */
+    kal_uint16 no_oplmn_data;
+    kal_uint8 *oplmn_data;      /* SMU remember to free it after finished using when oplmn_data it is not NULL */
+    /* HPLMN */
+    kal_uint16 no_hplmn_data;
+    kal_uint8 *hplmn_data;      /* SMU remember to free it after finished using when hplmn_data it is not NULL */
+    /* Acting HPLMN */
+    kal_bool is_valid_ef_acting_hplmn;
+    kal_uint8 ef_acting_hplmn[3];
+    /* Equivalent Home PLMN */
+    kal_bool is_valid_ef_ehplmn;
+    kal_uint8 num_of_ehplmn;
+    kal_uint8 ef_ehplmn[MAX_EHPLMN_EF_LEN];
+    /* EHPLMN Presentation Indication*/
+    kal_bool is_valid_ef_ehplmnpi;
+    kal_uint8 ef_ehplmnpi;
+    /* Last RPLMN Selection Indication*/
+    kal_bool is_valid_ef_lrplmnsi;
+    kal_uint8 ef_lrplmnsi;
+    kal_uint8 mnc_length;
+    kal_bool is_valid_cdma_imsi_m;
+    kal_uint8 cdma_imsi_m[10];
+    /* MTC nas configure */
+    kal_uint16 no_nasconfig_data;   /** Zero means invalid. */
+    kal_uint8 *nasconfig_data;      /** Defined in 31.102, ef_nasconfig. NWSEL remember to free this ctrl buffer when finish using */
+    /* Control plane-based steering of UE in VPLMN */
+    kal_bool is_enabled_ctrl_plane_steering_in_vplmn;
+    /* Other */
+    kal_bool is_rmode_changed;
+    kal_uint8 trans_id;
+
+    /* GMSS only */
+    kal_uint16 no_mlpl_data;
+    kal_uint8 *mlpl_data;          /* GMSS remember to free it after finished using when mlpl_data is not NULL */
+    kal_uint16 no_mspl_data;
+    kal_uint8 *mspl_data;          /* GMSS remember to free it after finished using when mspl_data is not NULL */
+    kal_uint16 no_mmssmode_data;
+    kal_uint8 *mmssmode_data;      /* GMSS remember to free it after finished using when mmssmode_data is not NULL */
+    kal_bool is_dual_mode_sim;
+    kal_bool is_uicc_activated;    /* VZ_REQ_HVOLTE_41443, indicate the VZW UICC is activated or not */
+    // TMO requirement:
+    // If the SA public key is not loaded onto the SIM to perform SUCI calculation then
+    // the device should only be allowed to connect to the LTE/NSA network.
+    // TRUE: 1. SUCI is calculated by UICC
+    //       2. SUCI is calculated by ME, the protect scheme is not NULL SCHEME and there is public key
+    // FALSE: The others
+    kal_bool is_suci_protected;
+}sim_gmss_ready_ind_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ef_imsi[9];
+    kal_uint8 ef_acc[2];
+    kal_bool is_usim;
+    /* MTC nas configure */
+    kal_uint16 no_nasconfig_data;   /** Zero means invalid. */
+    kal_uint8 *nasconfig_data;      /** Defined in 31.102, ef_nasconfig. VGMM remember to free this ctrl buffer when finish using */
+    kal_bool is_rmode_changed;
+    /* 5G new data */
+    kal_bool is_valid_ef_5gs3gpploci;
+    kal_uint8 ef_5gs3gpploci[LEN_OF_5GS3GPPLOCI];
+    kal_bool is_valid_ef_5gsn3gpploci;
+    kal_uint8 ef_5gsn3gpploci[LEN_OF_5GSN3GPPLOCI];
+    kal_bool is_valid_ef_uac_aic;
+    kal_uint8 ef_uac_aic[LEN_OF_UAC_AIC];
+    kal_bool is_valid_ef_5gauthkeys;
+    kal_uint8 ef_5gauthkeys[LEN_OF_5GAUTHKEYS];
+}sim_vgmm_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  trans_id;
+    sim_get_identity_type_enum get_id_type;
+    kal_uint16 param;
+    kal_uint16 add_input_len;
+    kal_uint8  add_input[256];
+} sim_get_identity_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_cmd_result_enum result;
+    kal_uint8  trans_id;
+    kal_uint16 rsp_len;
+    kal_uint8  rsp[256];
+} sim_get_identity_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint8 access_id;
+    kal_uint8 path[6];
+    kal_uint8 src_id;
+    kal_uint8 channel_id;
+    kal_uint8 sfi;
+} sim_read_req_struct, sim_app_read_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint8 data[258]; // 256 + 2 for driver usage in T=1
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+} sim_read_cnf_struct, sim_app_read_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint8 data[260]; // 255 + 5 for command header space
+    kal_uint8 access_id;
+    kal_uint8 channel_id;
+    kal_uint8 path[6];
+    kal_uint8 src_id;
+    kal_uint8 sfi;
+} sim_write_req_struct, sim_app_write_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+} sim_write_cnf_struct, sim_app_write_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint8 data[127];
+    kal_uint8 data_len;
+    kal_uint8 access_id;
+    kal_uint8 path[6];
+} sim_increase_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint8 data[258]; // 256 +2 for driver usage in T=1
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint16 length;
+    kal_uint8 access_id;
+} sim_increase_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_security_operation_enum op;
+    sim_chv_type_enum which_chv;
+    kal_uint8 old_value[8];
+    kal_uint8 new_value[8];
+    kal_uint8 access_id;
+    kal_uint8 channel_id;
+} sim_security_req_struct, sim_app_security_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_cmd_result_enum result;
+    kal_uint16 status_word;
+    sim_security_operation_enum op;
+    sim_chv_type_enum which_chv;
+    kal_uint8 access_id;
+    sim_chv_info_struct chv_info;
+    kal_uint8 channel_id;
+} sim_security_cnf_struct, sim_app_security_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    uicc_app_type_enum    app_type;
+    kal_uint8             channel_id;
+    kal_uint8             mcc[4];
+    kal_uint8             mnc[4];
+    kal_uint8 trans_id;     /* Used by DSBP_RECONFIG's users. Use 1~255 in order for each SIM task. */
+#ifdef __SIM_MULTI_PIN__
+    kal_uint8 pin_status_data[SIM_MAX_PIN_DO_SIZE];
+#endif
+} sim_app_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_event_enum event;
+    kal_uint8 argc;
+    kal_uint8 arg_list[MAX_SIM_EVENT_ARG_LIST_SIZE];
+} sim_event_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+    kal_uint16 file_idx;
+    kal_uint8 path[6];
+    kal_uint8 info_type;
+    kal_uint8 channel_id;
+    kal_uint16 length; /*[MAUI_01702417] mtk01612: WinMo_GEMINI : +crsm*/
+} sim_file_info_req_struct, sim_app_file_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+    kal_uint8 file_type;
+    kal_uint16 file_idx;
+    kal_uint8 info_type;
+    kal_uint16 length;
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint16 file_size;
+    kal_uint8 num_of_rec;
+    kal_uint8 res_data[256];
+    kal_uint8 sfi;
+} sim_file_info_cnf_struct, sim_app_file_info_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 trans_id;    //piggy-back
+    kal_uint16 file_idx;   //refer to sim_file_index_enum
+    kal_uint8 path[6];     //full file path if no file index
+    kal_uint8 channel_id;
+    kal_uint8 sfi;         //short file ID, refer to 3GPP 31.102
+    kal_uint16 tag_length; //1 <= T <= 3
+    kal_uint8 tag[3];
+} sim_bertlv_retrieve_data_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 trans_id;    //piggy-back
+    kal_uint16 result;     //refer to sim_cmd_result_enum
+    kal_uint16 file_idx;   //piggy-back if file_idx is set in request
+    kal_uint16 status_word;
+    kal_uint16 length;     //the length of the data in TLV object, i.e. Tag and Length field are excluded
+} sim_bertlv_retrieve_data_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 trans_id;    //piggy-back
+    kal_uint16 file_idx;   //refer to sim_file_index_enum
+    kal_uint8 path[6];     //full file path if no file index
+    kal_uint8 channel_id;
+    kal_uint8 sfi;
+    kal_uint8 mode;        //set data, create tag, delete object refer to bertlv_ef_set_data_mode_enum
+    kal_uint16 tag_length; //1 <= T <= 3
+    kal_uint8 tag[3];
+    kal_uint16 length;     //length all object data except tag and length field.
+} sim_bertlv_set_data_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 trans_id;  //piggy-back
+    kal_uint16 result;   //refer to sim_cmd_result_enum
+    kal_uint16 file_idx; //piggy-back if file_idx is set in request
+    kal_uint8 mode;      //piggy-back
+    kal_uint16 status_word;
+} sim_bertlv_set_data_cnf_struct;
+
+/******************* MMDC START *******************/
+typedef struct {
+    sim_file_id_enum file_id;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint8 path[6];
+} sim_access_extmd_read_ind_struct;
+
+typedef struct {
+    sim_file_id_enum file_id;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint8 path[6];
+    kal_uint8 data[260];
+} sim_access_extmd_update_ind_struct;
+
+typedef struct {
+    sim_file_id_enum file_id;
+    kal_uint8 path[6];
+} sim_access_extmd_file_info_ind_struct;
+
+typedef struct {
+    kal_uint8 rand[16];
+    kal_bool is_auth_present;
+    kal_uint8 auth[16];
+} sim_access_extmd_auth_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_access_extmd_op_enum op;
+    union
+    {
+        sim_access_extmd_read_ind_struct read_ind;
+        sim_access_extmd_update_ind_struct update_ind;
+        sim_access_extmd_file_info_ind_struct file_info_ind;
+        sim_access_extmd_auth_ind_struct auth_ind;
+    }req_field;
+} sim_access_extmd_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool result;
+    kal_uint16 status_word;
+    kal_uint16 length;
+    kal_uint8 res_data[256];
+} sim_access_extmd_res_struct;
+
+typedef struct {
+    kal_bool insert;
+    sim_error_cause_enum cause;
+}sim_extmd_notify_card_status;
+
+typedef struct {
+    kal_uint8 card_type;
+}sim_extmd_notify_card_type;
+
+typedef struct {
+    sat_refresh_type_enum refresh_type;
+    kal_uint8 num_of_file;
+    kal_uint16 file_list[120];
+    kal_uint8 size_of_plmn;
+    kal_uint8 *plmn_list;
+}sim_extmd_notify_file_change;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    sim_extmd_notify_enum type;
+    union
+    {
+        sim_extmd_notify_card_status card_status;
+        sim_extmd_notify_card_type card_type;
+        sim_extmd_notify_file_change file_change;
+    }notify;
+} sim_extmd_notify_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool result;
+} sim_extmd_notify_cnf_struct;
+
+/******************* MMDC END *******************/
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint8 pattern[16];
+    kal_uint8 length;
+    kal_uint8 mode;
+} sim_seek_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint8 length;
+    kal_uint16 result;
+    kal_uint8 data[258]; //  256 + 2 for driver usage in T=1
+} sim_seek_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    sim_dn_enum dn_type;
+    kal_bool switch_on;
+} sim_dial_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    sim_cmd_result_enum result;
+    sim_dn_enum dn_type;
+    kal_bool switch_on;
+} sim_dial_mode_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 channel_id;
+    kal_uint16 length; /*mtk01612: [MAUI_01899190] usim_on_duma*/
+} sim_status_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    sim_cmd_result_enum result;
+    kal_uint16 status_word;
+    kal_uint8 data[258]; // 256 + 2 for driver usage in T=1
+    kal_uint16 length;
+} sim_status_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 switch_mode;
+} sim_error_test_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint8 access_id;
+    kal_uint8 state;        /* 1: read after update */
+    kal_uint8 src_id;
+} sim_read_plmn_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint16 file_size;
+    kal_uint8 file[MAX_SUPPORT_PLMN_DATA_SIZE]; /* depends on the maximum supported file size of plmn type files */
+    kal_uint8 access_id;
+    kal_uint8 state;        /* 1: read after update */
+    kal_uint8 src_id;
+} sim_read_plmn_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 file_size;
+    kal_uint8 file[MAX_SUPPORT_PLMN_DATA_SIZE];  /* depends on the maximum supported file size of plmn type files */
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+} sim_write_plmn_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+} sim_write_plmn_cnf_struct;
+
+
+/* [MAUI_03058282] mtk80420: move sim_authenticate_req/cnf to public struct */
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8    next_type;
+    sim_chv_info_struct    chv_info;
+} sim_l4c_verify_pin_result_ind_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_bool is_sim_inserted;
+} sim_status_update_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_bool switch_on;
+} sim_acl_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    sim_cmd_result_enum result;
+    kal_bool switch_on;
+} sim_acl_mode_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+} l4c_sim_get_gsmcdma_dualsim_info_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_bool is_sim_inserted;
+   kal_bool is_df_gsm_existed;
+   kal_bool is_df_cdma_existed;
+} l4c_sim_get_gsmcdma_dualsim_info_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   gsmcdma_dualsim_mode_enum op;
+} l4c_sim_set_gsmcdma_dualsim_mode_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   gsmcdma_dualsim_mode_enum op;
+   gsmcdma_dualsim_result_enum result;
+} l4c_sim_set_gsmcdma_dualsim_mode_cnf_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_MODE_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool  switch_on;
+    kal_uint8 profile_id;           /* 0-based index */
+    kal_uint8 app_type;
+} l4c_sim_set_vsim_mode_req_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_MODE_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    sim_cmd_result_enum result;
+    sim_vsim_fcs_enum cause;        /* failure cause */
+    kal_bool  switch_on;
+    kal_uint8 profile_id;           /* 0-based index */
+    uicc_card_type_enum vsim_type;  /* SIM/USIM */
+} l4c_sim_set_vsim_mode_cnf_struct;
+
+/* MSG_ID_L4C_SIM_GET_VSIM_RSA_PUBKEY_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+} l4c_sim_get_vsim_rsa_pubkey_req_struct;
+
+/* MSG_ID_L4C_SIM_GET_VSIM_RSA_PUBKEY_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool result;
+
+    kal_uint16  pubkey_len;
+    kal_uint8   pubkey[536];        /* MTK format: */
+                                    // pubk[0:7] : "PUBK_HDR" for recognition
+                                    // pubk[8:11] : length of modulus
+                                    // pubk[12:15] : length of public exponent
+                                    // pubk[16:271] : modulus
+                                    // pubk[272:527] : public exponent
+                                    // pubk[528:535] : "PUBK_TAL" for recognition
+
+} l4c_sim_get_vsim_rsa_pubkey_cnf_struct;
+
+/* MSG_ID_L4C_SIM_VSIM_KI_MODE_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool enabled;
+
+    kal_uint8 profile_id;
+} l4c_sim_vsim_ki_mode_req_struct;
+
+/* MSG_ID_L4C_SIM_VSIM_KI_MODE_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool result;
+} l4c_sim_vsim_ki_mode_cnf_struct;
+
+
+/* MSG_ID_L4C_SIM_SET_VSIM_KI_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+
+    kal_uint8   profile_id;
+    kal_uint16  key_len;
+    kal_uint8   key[256];
+    kal_bool    encrypted;
+} l4c_sim_set_vsim_ki_req_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_KI_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool result;
+} l4c_sim_set_vsim_ki_cnf_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_FILE_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+
+    kal_uint8   profile_id;
+    kal_uint16  file_id;
+    kal_uint16  meta_len;
+    kal_uint16  data_len;
+    kal_uint8   meta[256];
+    kal_uint8   data[256];
+} l4c_sim_set_vsim_file_req_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_FILE_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool  result;
+    sim_vsim_fcs_enum cause;        /* failure cause */
+
+    kal_uint8   profile_id;
+    kal_uint16  file_id;
+    kal_uint16  meta_len;
+    kal_uint16  data_len;
+} l4c_sim_set_vsim_file_cnf_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_PROFILE_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+
+    kal_uint8           profile_id;
+    uicc_card_type_enum vsim_type;  /* SIM/USIM */
+    kal_uint16          auth_len;
+    kal_uint8           auth[256];
+    kal_uint8           auth_algo_idx;
+} l4c_sim_set_vsim_profile_req_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_PROFILE_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool  result;
+    sim_vsim_fcs_enum cause;        /* failure cause */
+
+} l4c_sim_set_vsim_profile_cnf_struct;
+
+
+/*mtk01612: [MAUI_02014578] wise detect O2 prepay SIM*/
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_bool is_o2_prepaid_sim;
+} sim_o2_prepaid_sim_ind_struct;
+
+#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool  switch_on;
+    kal_uint8 profile_id;           /* 0-based index */
+    kal_uint8 mode;
+    kal_uint8 len_mccmnc;
+    kal_uint8 mccmnc[MAX_LEN_MCCMNC];
+    kal_uint8 len_iin;
+    kal_uint8 iin[MAX_LEN_IIN];
+    kal_uint8 len_gid1;
+    kal_uint8 gid1[MAX_LEN_GID1];
+    kal_uint8 len_spn;
+    kal_uint8 spn[MAX_LEN_SPN];
+}l4c_sim_set_vsim_update_req_struct;
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    sim_cmd_result_enum result;
+    sim_vsim_fcs_enum cause;        /* failure cause */
+    kal_uint8 profile_id;
+    kal_bool  switch_on;
+    kal_uint8 mode;           /* 0-based index */
+    kal_uint16 file_id;
+    uicc_card_type_enum vsim_type;  /* SIM/USIM */
+} l4c_sim_set_vsim_update_cnf_struct;
+#endif/*#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)*/
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+/* MAUI_03082391 */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 channel_id;
+    kal_uint16 req_len;
+#ifndef __SIM_ACCESS_INTEGRATION__
+    kal_uint8 req[APDU_REQ_MAX_LEN];
+#endif
+    kal_uint8  cmd_type;    //0: CGLA, 1: CSIM, 2: ECGLA
+} sim_apdu_access_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint16 result;
+    kal_uint16 rsp_len;
+#ifndef __SIM_ACCESS_INTEGRATION__
+    kal_uint8 rsp[APDU_RSP_MAX_LEN];
+#endif
+    kal_uint8  cmd_type;    //0: CGLA, 1: CSIM, 2: ECGLA
+} sim_apdu_access_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool is_last;
+    kal_uint16 status_word;
+    // Move buffer_block[] to peer_buf
+} sim_apdu_res_block_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    sim_manage_channel_mode_enum op;
+    kal_uint8 req_len;
+    kal_uint8 req[SIM_AID_MAX_LEN];
+} sim_manage_channel_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 channel_id;
+    kal_uint16 result;
+    sim_manage_channel_mode_enum op;
+} sim_manage_channel_cnf_struct;
+
+
+/*mtk01612: [MAUI_03020152] sync polling timer*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_sync_timer;
+    kal_uint32 sync_time_period;
+} sim_sync_poll_timer_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool switch_on;
+}sim_recovery_enhancement_switch_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool support_additional_interface;
+    kal_uint8 additional_interface;
+}sim_terminal_capability_setting_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool     is_imsi_valid;     //KAL_TRUE for IMSI read successfully, KAL_FALSE for read IMSI fail
+    kal_uint8    imsi[9];
+    kal_uint8    mnc_length;    // 0 for unkonwn.
+    kal_bool     is_iccid_valid;
+    kal_uint8    iccid[10];
+} sim_read_imsi_iccid_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 option;
+} sim_read_dir_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 option;
+    sim_cmd_result_enum result;
+    kal_uint8 active_app;
+    kal_uint8 aid[SIM_MAX_AID_LEN];
+    kal_uint16 length;    //(record size * record number)
+    kal_uint8 dir_content[1];
+} sim_read_dir_cnf_struct;
+
+/*mtk0188: SATe*/
+//#define MAX_SUPPORT_SATE_CHANNEL  3
+
+/* PH 03042005 Remote SAT */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 cmd_id;
+    kal_uint16 proactive_cmd_len;
+    kal_uint8 proactive_cmd[260];
+} sat_proactive_cmd_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+    kal_uint8 src_id;
+#endif
+    kal_uint16 cmd_id;
+    kal_uint8 length;
+    kal_uint8 terminal_rsp[261];
+} sat_terminal_rsp_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_moretime_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_poll_interval_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 length;
+    kal_uint8 envelope[261];
+    kal_bool is_standard;       /* KAL_FALSE: AT+STKENV, otherwise KAL_TRUE: AT+CUSATE */
+} sat_envelope_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    sim_cmd_result_enum result; /* sim_cmd_result_enum */
+    kal_uint16 length;
+    kal_uint8 envelope_rsp[256];
+    kal_uint16 status_word;
+    kal_bool is_standard;       /* KAL_FALSE: AT+STKENV, otherwise KAL_TRUE: AT+CUSATE */
+} sat_envelope_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_refresh_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_polling_off_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_provide_local_info_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 event_list[5];    // extend for IMS event download
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_setup_event_list_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_timer_management_ind_struct;
+
+/* ----End Remote SAT---- */
+
+typedef struct {
+    kal_uint8 qos_length; /* QOS identifer bit*/
+    kal_uint8 unused1; /* Unused Bit*/
+    kal_uint8 delay_class;
+    kal_uint8 reliability_class;
+    kal_uint8 peak_throughput;
+    kal_uint8 unused2; /* Unused Bit*/
+    kal_uint8 precedence_class;
+    kal_uint8 unused3; /* Unused Bit*/
+    kal_uint8 mean_throughput;
+    kal_uint8 traffic_class;
+    kal_uint8 delivery_order;
+    kal_uint8 delivery_of_err_sdu;
+    kal_uint8 max_sdu_size;
+    kal_uint8 max_bitrate_up_lnk;
+    kal_uint8 max_bitrate_down_lnk;
+    kal_uint8 residual_bit_err_rate;
+    kal_uint8 sdu_err_ratio;
+    kal_uint8 transfer_delay;
+    kal_uint8 traffic_hndl_priority;
+    kal_uint8 guarntd_bit_rate_up_lnk;
+    kal_uint8 guarntd_bit_rate_down_lnk;
+} sat_gprs_qos_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+} sat_more_time_res_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 priority;
+    kal_uint8 clear_text_type;
+    kal_uint8 immediate_res;
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_dspl_text_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 additional_info;
+} sat_dspl_text_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_help_info_available;
+    kal_uint8 type_of_input;
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_get_inkey_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 is_yes_selected;
+} sat_get_inkey_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_help_info_available;
+    kal_uint8 type_of_input;
+    kal_uint8 is_input_revealed_to_user;
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 len_of_min_input;
+    kal_uint8 len_of_max_input;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_get_input_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+} sat_get_input_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_help_info_available;
+    kal_uint8 is_softkey_preferred;
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 num_of_item;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_setup_menu_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+} sat_setup_menu_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_help_info_available;
+    kal_uint8 is_softkey_preferred;
+    kal_uint8 type_of_presentation;
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 is_item_id_available;
+    kal_uint8 item_id;
+    kal_uint8 num_of_item;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_select_item_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 item_id;
+} sat_select_item_res_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 tone_id;
+    kal_uint32 duration;
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_play_tone_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+} sat_play_tone_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 condition;
+    kal_uint32 duration;
+    kal_uint8 type_of_modification;
+    kal_uint8 is_icon1_available;
+    sat_icon_struct icon_info1;
+    kal_uint8 is_icon2_available;
+    sat_icon_struct icon_info2;
+    kal_uint8 size_of_ccp;
+    kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+    kal_uint8 no_addr;
+    kal_uint8 *addr;
+    kal_uint8 size_of_subaddr;
+    kal_uint8 subaddr[MAX_SIM_ADDR_BCD_LEN];
+    kal_bool contain_ims_uri;
+    kal_uint8 media_type;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_setup_call_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 cause;
+} sat_setup_call_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+#if defined(__TC01__)
+    kal_bool is_alpha_id_exist;
+#endif
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 is_sms_packed_required;
+    kal_uint8 size_of_addr;
+    kal_uint8 addr[MAX_SIM_ADDR_LEN];
+    kal_uint8 no_sms_tpdu;
+    kal_uint8 *sms_tpdu;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_send_sms_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 cause;
+} sat_send_sms_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 type_of_modification;
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 no_ss_string;
+    kal_uint8 *ss_string;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_send_ss_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 size_of_additional_info;
+    kal_uint8 additional_info[255];
+} sat_send_ss_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 type_of_modification;
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 no_ussd_string;
+    kal_uint8 *ussd_string;
+    kal_uint8 dcs_of_ussd_string;
+    kal_uint8 no_alpha_id; /* Length of undecoded alpha id */
+    kal_bool is_alpha_id_present;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_send_ussd_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 size_of_additional_info;
+    kal_uint8 additional_info[255];
+} sat_send_ussd_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 type;
+    kal_uint8 size_of_ccp1;
+    kal_uint8 ccp1[MAX_SAT_SIZE_OF_CCP];
+    kal_uint8 size_of_subaddr;
+    kal_uint8 subaddr[MAX_SIM_SUB_ADDR_BCD_LEN];
+    kal_uint8 size_of_ccp2;
+    kal_uint8 ccp2[MAX_SAT_SIZE_OF_CCP];
+    kal_bool is_sat_action;
+    kal_uint8 call_id; // used by IMC
+} sat_call_ctrl_by_sim_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 res;
+    kal_uint8 type;
+    kal_uint8 size_of_ccp1;
+    kal_uint8 ccp1[MAX_SAT_SIZE_OF_CCP];
+    kal_uint8 size_of_subaddr;
+    kal_uint8 subaddr[MAX_SIM_SUB_ADDR_BCD_LEN];
+    kal_uint8 is_bc_repeat_ind_avail;
+    kal_uint8 bc_repeat_ind;
+    kal_uint8 size_of_ccp2;
+    kal_uint8 ccp2[MAX_SAT_SIZE_OF_CCP];
+    kal_uint8 alpha_id_len;
+    kal_bool  is_alpha_id_present;
+    kal_uint8 call_id; //used by IMC
+} sat_call_ctrl_by_sim_cnf_struct;
+
+typedef sat_call_ctrl_by_sim_req_struct sat_ss_ctrl_by_sim_req_struct;
+typedef sat_call_ctrl_by_sim_cnf_struct sat_ss_ctrl_by_sim_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 size_of_addr1;
+    kal_uint8 addr1[MAX_SIM_ADDR_LEN];
+    kal_uint8 size_of_addr2;
+    kal_uint8 addr2[MAX_SIM_ADDR_LEN];
+} sat_send_sms_ctrl_by_sim_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 res;
+    kal_uint8 size_of_addr1;
+    kal_uint8 addr1[MAX_SIM_ADDR_LEN];
+    kal_uint8 size_of_addr2;
+    kal_uint8 addr2[MAX_SIM_ADDR_LEN];
+} sat_send_sms_ctrl_by_sim_cnf_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 size_of_addr;
+    kal_uint8 addr[MAX_SIM_ADDR_LEN];
+} sat_sms_dl_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 is_successful;
+    kal_uint16 size_of_sim_ack_data;
+    kal_uint8 sim_ack_data[258];
+    kal_uint8 cause;
+} sat_sms_dl_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 size_of_cb_page_data;
+    kal_uint8 rat;
+    kal_uint8 current_page;
+    kal_uint8 total_page;
+    kal_uint8 cb_page_data[88];
+} sat_cb_dl_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 is_successful;
+    kal_uint8 rat;
+    kal_uint8 current_page;
+    kal_uint8 total_page;
+} sat_cb_dl_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_successful;
+    sat_sms_dl_error_cause_enum cause;
+    kal_uint16 size_of_sim_ack_data;
+    kal_uint8 sim_ack_data[256];
+} sat_general_sms_pp_dl_rsp_struct;
+
+/* MSG_ID_SAT_NAS_SV_SOR_SECURE_PACKET_RSP */
+typedef sat_general_sms_pp_dl_rsp_struct sat_nas_sv_sor_secure_packet_rsp_struct;
+/* MSG_ID_SAT_VGMM_SECURE_PACKET_RSP */
+typedef sat_general_sms_pp_dl_rsp_struct sat_vgmm_secure_packet_rsp_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 item_id;
+    kal_uint8 is_help_info_requested;
+} sat_menu_select_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 is_successful;
+} sat_menu_select_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 sim_slot_id;
+    kal_bool is_full_changed;
+    kal_uint8 refresh_type;     /* Add for SIM REFRESH type */
+    kal_uint8 num_of_file;
+    kal_uint16 file_list[120];  /* [MAUI_01716279] mtk02374 20090706 change to kal_uint16 due to file number is larger than 256*/
+    kal_uint8 size_of_plmn;
+    kal_uint8 *plmn_list;       /*only used when refresh_type is TYPE_STEERING_OF_ROAMING and MOD_NWSEL SHOULD free this created ctrl buffer */
+} sat_file_change_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 sim_slot_id;
+    kal_uint8 is_successful;
+    sat_file_change_error_cause_enum error_cause;
+} sat_file_change_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_imei_sv;
+} sat_imei_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 is_imei_valid;
+    kal_uint8 imei[9];
+    kal_bool is_imei_sv;
+} sat_imei_info_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mm_status;
+    kal_uint8 location_info[SAT_MAX_LOC_INFO_LEN];
+    kal_uint8 rat;  /* rat_enum, in l3_inc_enums_public.h */
+} sat_location_info_ind_struct;
+
+/* MSG_ID_SAT_NW_REJECT_IND from ugRAC and eRAC */
+typedef struct {
+    LOCAL_PARA_HDR
+
+    sat_nw_rej_info_enum info;
+    union
+    {
+        kal_uint8 location_info[5];             /* MCC&MNC(3) + LAC/TAC(2). the location info length field of NW reject event shall be 5 Clause 8.19, TS 31.111 */
+        kal_uint8 route_area_id[6];             /* MCC&MNC(3) + LAC(2) + RAC(1). Clause 8.91, TS 31.111 */
+        kal_uint8 track_area_id[6];             /* MCC&MNC(3) + [EUTRAN]TAC(2) / [NGRAN]TAC(3). Clause 8.99, TS 31.111 */
+    }info_field;
+
+    kal_uint8               rat;
+    sat_nw_rej_type_enum    rej_type;           /* Clause 8.92, TS 31.111 */
+    kal_uint8               rej_cause;          /* Clause 8.93, TS 31.111 */
+    kal_uint8               ext_rej_cause;      /* Clause 8.136, TS 31.111 */
+} sat_nw_reject_ind_struct;
+
+/*
+ *  mtk02374 20090513
+ *  add for provide local info with nw search mode
+ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 nw_search_mode;
+} sat_nw_search_mode_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+} sat_time_zone_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 time_zone;
+} sat_time_zone_ind_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+} sat_current_time_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 time_info[6];
+} sat_current_time_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mmi_info_type;
+    kal_uint8 len_of_address;
+    kal_uint8* address;
+    kal_uint8 alpha_id_len;
+    kal_uint8 alpha_id[MAX_PS_NAME_SIZE];
+} sat_mmi_info_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} sat_me_status_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 me_status;
+    kal_uint8 timing_advance;
+} sat_me_status_cnf_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+} sat_nmr_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mm_status;
+    kal_uint8 nmr[16];
+    kal_uint8 size_of_bcch;
+    kal_uint8 bcch[40];
+} sat_nmr_cnf_struct;
+
+/* MSG_ID_SAT_MEME_NMR_REQ / MSG_ID_SAT_EAS_NMR_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    sat_nmr_qual_enum nmr_qualifier;                            /* 01~04: 3G NMR, 05~08: 4G NMR. clause 8.73 in TS 31.111. */
+} sat_meme_nmr_req_struct, sat_eas_nmr_req_struct;
+
+/* MSG_ID_SAT_MEME_NMR_CNF / MSG_ID_SAT_EAS_NMR_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    sat_nmr_qual_enum nmr_qualifier;                            /* 01~04: 3G NMR, 05~08: 4G NMR. clause 8.73 in TS 31.111. */
+    kal_bool  result;                                           /* False if standby AS receives the NMR_REQ */
+    kal_uint8 nmr_obj_num;                                      /* NMR frequence number */
+    kal_uint8 nmr_length[MAX_SAT_EUNMR_OBJ_NUM];                /* The length in byte of the NMR objects (with Guard Pattern) for nmr_obj_num frequencies */
+                                                                /* The actual length is nmr_length[] - NMR_OBJ_GUARD_PATTERN_LENGTH */
+} sat_meme_nmr_cnf_struct, sat_eas_nmr_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} sat_language_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 language[2];
+} sat_language_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 call_status;
+} sat_call_status_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 connection_info;  /* 0- Idle, 1- Connected */
+} sat_eval_connection_info_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 connection_info;  /* 0- Idle, 1- Connected */
+} sat_mm_connection_info_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sat_pdp_status_enum pdp_status;
+} sat_pdp_status_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 connection_status;  /* 0 - disconnected, 1 - connected */
+    kal_uint8 apn_name[64];
+} sat_apn_connection_status_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 session_status;  /* 0 - dropped, 1 - established */
+} sat_dm_session_status_ind_struct;
+
+
+/* __SATCR__ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 state; /* contactless_functionality state*/
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_contactless_state_changed_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+} sat_contactless_state_changed_res_struct;
+
+
+/* __SATCL__ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 target; // "target" in activate descriptor
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd;
+} sat_activate_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+} sat_activate_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_setup_idle_dspl_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+} sat_setup_idle_dspl_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 no_at_command;
+    kal_uint8 *at_command;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class b */
+} sat_run_at_command_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 size_of_at_response;
+    kal_uint8 at_response[MAX_AT_RESPONESE_LEN];    //mtk02514_081216
+} sat_run_at_command_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 no_dtmf;
+    kal_uint8 *dtmf;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_send_dtmf_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 additional_info;
+} sat_send_dtmf_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_language_specified;
+    kal_uint8 iso639_language[2];
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_lang_notify_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+} sat_lang_notify_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 browser_mode;
+    kal_uint8 browser_identity;
+    kal_uint8 provision_file_id[10];
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* mtk01488: 20080930 For Remote SAT */
+} sat_launch_browser_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 additional_res;  /* MAUI_02888481 */
+} sat_launch_browser_res_struct;
+
+typedef struct {
+    kal_uint8 addr_length; /* Address Length*/
+    kal_uint8 addr_bcd[MAX_SIM_ADDR_BCD_LEN];
+} sim_addr_bcd_struct;
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ti;
+    kal_bool is_mt_call;
+} sat_evdl_call_connect_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ti;
+    kal_bool is_far_end;
+    //kal_bool cause_p;
+    //kal_uint8 cause;
+    kal_uint8 cause_len;
+    kal_uint8 cause[30];
+} sat_evdl_call_disconnect_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mm_status;
+    kal_uint8 location_info[SAT_MAX_LOC_INFO_LEN];
+} sat_evdl_location_status_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} sat_evdl_user_activity_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} sat_evdl_idle_screen_available_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 iso639_language[2];
+} sat_evdl_language_selection_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 card_reader_status;
+} sat_evdl_card_reader_status_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 browser_termination_cause;
+} sat_evdl_browser_termination_req_struct;
+
+/* MSG_ID_SAT_EVDL_IMS_REG_IND */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_successful;
+    kal_uint8 num_of_impu;
+    kal_uint8 status_code_len;
+    kal_uint8 status_code[4];
+} sat_evdl_ims_reg_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 channel_status[2];
+    kal_uint8 channel_data_length;
+} sat_evdl_data_available_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 channel_status[2];
+} sat_evdl_channel_status_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_bool is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 bearer;
+    sat_gprs_bearer_para_struct gprs_bearer;
+    sat_csd_bearer_para_struct csd_bearer;
+    kal_uint16 buffer_size;
+    kal_uint8 size_of_address;
+    kal_uint8 addr[MAX_SIM_ADDR_BCD_LEN];
+    kal_uint8 size_of_subaddr;
+    kal_uint8 subaddr[MAX_SIM_ADDR_BCD_LEN];
+    kal_uint32 duration1;
+    kal_uint32 duration2;
+    kal_uint16 no_username;
+    kal_uint8 username[16];
+    kal_uint8 dcs_of_username;
+    kal_uint16 no_passwd;
+    kal_uint8 passwd[16];
+    kal_uint8 dcs_of_passwd;
+    kal_uint8 protocol_type;  /* '01' UDP '02' TCP */
+    kal_uint16 port_num;
+    kal_int16 no_local_addr;
+    kal_uint8 local_addr[16];
+    kal_int16 no_dest_addr;
+    kal_uint8 dest_addr[16];
+    kal_uint8 dns[4];
+    kal_uint8 apn[50];
+    kal_uint8 apn_length;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_open_channel_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 cause;
+    kal_uint8 ch_status[2];
+    kal_uint8 bearer;
+    sat_gprs_bearer_para_struct bearer_para;
+    kal_uint16 buffer_size;
+} sat_open_gprs_channel_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 cause;
+    kal_uint8 ch_status[2];
+    kal_uint8 bearer;
+    sat_csd_bearer_para_struct bearer_para;
+    kal_uint16 buffer_size;
+} sat_open_csd_channel_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 cause;
+    kal_uint8 ch_status[2];
+    kal_uint8 bearer;
+    kal_uint16 buffer_size;
+} sat_open_server_mode_channel_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 ch_id;  // sat_channel_id_enum
+    kal_bool is_icon_available;
+    sat_icon_struct icon_info;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_close_channel_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 cause;
+} sat_close_channel_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 ch_id; //sat_channel_id_enum
+    kal_uint8 ch_type;
+    kal_bool is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 data_size;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_send_data_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 ch_type;
+    kal_uint8 res;
+    kal_uint8 cause;
+    kal_uint8 ch_data_length;
+} sat_send_data_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 ch_id; //sat_channel_id_enum
+    kal_uint8 ch_type;
+    kal_bool is_icon_available;
+    sat_icon_struct icon_info;
+    kal_uint8 ch_data_length;
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_recv_data_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 ch_type;
+    kal_uint8 res;
+    kal_uint8 cause;
+    kal_uint8 ch_data_length;
+} sat_recv_data_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 ch_id;    /*mtk02374 20091230 for WISE BIP*/
+
+    kal_uint16 cmd_id;
+    sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_ch_status_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_detail[5];
+    kal_uint8 res;
+    kal_uint8 cause;
+    kal_uint8 channel_status[2];
+} sat_ch_status_res_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} sim_imei_lock_verified_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    cusats_uicc_state_enum uicc_state;
+}sat_uicc_state_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 mode;
+} sat_profile_activate_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool result;
+} sat_profile_activate_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    sim_profile_storage_enum st;
+    kal_bool reset;
+} sat_profile_write_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    sim_profile_storage_enum st;
+    kal_bool result;
+} sat_profile_write_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 utk_enabled;
+} sat_utk_enabled_update_req_struct;
+
+/* MSG_ID_SAT_SET_CT_MODE_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ct_mode;
+} sat_set_ct_mode_req_struct;
+
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8    src_id;
+    kal_uint16   status_word;
+} sat_terminal_rsp_res_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                        is_refresh_possible;
+} sat_refresh_voting_res_struct;
+#endif
+
+#ifdef __TC10__
+typedef struct
+{
+    LOCAL_PARA_HDR
+    sat_refresh_notification_enum   refresh_status;
+    sat_refresh_type_enum           refresh_type;
+    sat_refresh_init_app_enum       init_app_list;
+} sat_refresh_noti_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    sat_refresh_type_enum           refresh_type;
+} sat_refresh_voting_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    sat_call_ctrl_type_noti_enum      old_call_type;
+    sat_call_ctrl_type_noti_enum      call_type;
+    sat_call_ctrl_result_noti_enum    control_result;
+    kal_uint8                         alpha_id_present;
+    kal_uint8                         alpha_id_len;
+    kal_uint8                         alpha_id[64];
+    kal_uint8                         call_id;
+    kal_uint8                         address1_len;
+    kal_uint8                         address1[41];
+    kal_uint8                         address2_len;
+    kal_uint8                         address2[41];
+    kal_uint8                         ss_string_len;
+    kal_uint8                         ss_string[255];
+    kal_uint8                         ussd_string_len;
+    kal_uint8                         ussd_string[183];
+    kal_uint8                         bc_repeat_ind;
+    kal_uint8                         subaddr_len;
+    kal_uint8                         subaddr[41];
+    kal_uint8                         ccp1_len;
+    kal_uint8                         ccp1[15];
+    kal_uint8                         ccp2_len;
+    kal_uint8                         ccp2[15];
+} sat_call_ctrl_result_noti_ind_struct;
+#endif  /* __TC10__ */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 rat;
+    kal_uint8 plmn_id[3]; /* plmn_id[0]:= (mcc2|mcc1); plmn_id[1]:=(mnc3|mcc3);  plmn_id[2]:=(mnc2|mnc1); */
+} sat_plmn_info_ind_struct;
+
+/* MSG_ID_SAT_RAT_SELECT_IND */
+// Need to be sync-ed with rac_gmss_rat_select_ind_struct
+typedef struct {
+    LOCAL_PARA_HDR
+    gmss_rat_enum gmss_rat;
+    plmn_id_struct loc;         /* Only MCC is valid */
+    gmss_selected_rat_status_enum status;
+    kal_bool is_ehrpd;          /* Indicate if PS type is EHRPD if current RAT is HRPD */
+} sat_rat_select_ind_struct;
+
+/* shall be identical to gmss_nwsel_* */
+typedef struct {
+    LOCAL_PARA_HDR
+    susp_resu_action_enum action;
+    susp_resu_result_enum result;
+    susp_resu_source_enum target;
+} nwsel_sat_susp_resu_update_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    susp_resu_mode_enum  mode;
+    susp_resu_action_enum action;
+    kal_uint8            susp_id;
+    susp_resu_source_enum source;
+} nwsel_sat_susp_resu_update_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 susp_id;
+    susp_resu_source_enum target;
+} nwsel_sat_suspend_status_ind_struct;
+
+typedef struct
+{
+    kal_bool            vsim_ki_enabled;            /* VSIM ki enable*/
+    kal_uint8           vsim_asym_key_idx;          /* 0-based index, assymetric key index for Ki protection */
+    kal_uint8           sim_auth_algo;              /* 0: COMP128v2v3, 1:XOR, only works when ki_enabled == KAL_FALSE*/
+    kal_uint8           usim_auth_algo;             /* 0: MILENAGE, only works when ki_enabled == KAL_FALSE */
+    uicc_card_type_enum vsim_type;                  /* uicc_card_type_enum, 0: Not init, 1:SIM, 2:USIM for now */
+    kal_uint16          auth_res_len;
+    kal_uint8           auth_res[256];
+    kal_uint16          enc_ki_len;
+    kal_uint8           enc_ki[256];                /* Ki(16Bytes), enc_ki(256Bytes) */
+} vsim_profile_struct;
+
+/* MSG_ID_SIM_SET_REGISTRATION_MODE_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool registration_mode;
+} sim_set_registration_mode_req_struct;
+
+extern const usim_ef_info_struct usim_ef_info[UICC_TOTAL_FILES];
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8    key_pool_size;  //number of generated key (1,2,3...)
+} keygen_sim_ready_ind_struct;
+
+typedef struct
+{
+    kal_uint8    path[6];
+} c2k_file_path_struct;
+
+/* MSG_ID_SAT_MSISDN_INFO_IND */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 msisdn_size;                  /* include TON */
+    kal_uint8 msisdn[MAX_CC_ADDR_BCD_LEN];  /* BCD format(include TON), example 15613331095, msisdn[0]= 0x91, msisdn[1] = 0x51, msisdn[2] = 0x16 ¡K msisdn[6] = 0xf5*/
+} sat_msisdn_info_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_bool is_roaming;
+} sim_roaming_state_ind_struct, gmss_sim_roaming_state_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum rat_mode;          //AT+ERAT setting
+    rat_enum reported_rat;      //actual rat mode the phone use
+} sat_set_rat_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool result;
+    kal_bool is_dual_mode_sim;
+} sat_set_rat_mode_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_cdma;
+} nas_sv_sim_cs_stk_domain_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cdma_capability;          //AT+ERAT setting
+} sat_l4bsim_set_rat_mode_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 sat_rule;
+} sat_l4bsat_set_sat_rule_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mcc[4];
+    kal_uint8 mnc[4];
+    kal_bool is_valid_gid1;
+    kal_uint8 gid1[NUM_GID1];
+    kal_bool is_valid_gid2;
+    kal_uint8 gid2[NUM_GID2];
+    kal_bool is_valid_spn;
+    kal_uint8 spn[LEN_OF_SPN];
+    kal_uint8 iccid[21];
+    kal_uint8 trans_id;     /* Used by DSBP_RECONFIG's users. Use 1~255 in order for each SIM task. */
+} sim_l4bsbp_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mcc[4];
+    kal_uint8 mnc[4];
+} sim_iwlan_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 iccid[10];
+} sim_iccid_ready_ind_struct;
+
+/* <sim_duplex_op>:
+   0: Reset SIM parameters
+   1: Set SIM parameters */
+typedef struct{
+    LOCAL_PARA_HDR
+    duplex_mode_change_action_enum sim_duplex_op;
+}sim_duplex_mode_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8    src_id;
+    //kal_uint8    lock_mode;  // phased out
+    kal_uint8    sim_power_mode;  // 0: plug out  1: plug in
+    kal_bool     sim_handle_plug_in; // 0: don't handle plug in event, 1: handle plug in event
+} sim_op20_ap_simlock_req_struct, sim_ap_simpower_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8    src_id;
+    sim_cmd_result_enum result;
+} sim_ap_simpower_cnf_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    duplex_mode_change_action_enum action;
+} sim_mm_configure_as_for_duplex_mode_change_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    duplex_mode_change_action_enum action;
+} sim_gmss_configure_as_for_duplex_mode_change_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    module_type orig_src_mod_id;
+    sap_type orig_sap_id;
+    msg_type orig_msg_id;
+    local_para_struct *orig_local_para_ptr;
+    void *redirect_info;
+} sim_msg_redirect_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16 cmd_len;
+    kal_uint8 proactive_cmd[256];
+} sat_inject_proactive_cmd_ind_struct;
+
+/* This struct is for the object in application ready peer buffer
+   I.   There is no EF object if the SIM module didn't try to access the EF.
+   II.  If SIM module select the EF fail, the is_exist will be FALSE
+   III. If SIM module only select the EF without reading it, the data_len will be 0.
+   IV.  If the EF data in the object, the data_len will NOT be 0.  */
+typedef struct {
+    kal_uint8 tag;
+    kal_uint8 curr_rec_id;             /* The current read record index in data */
+    kal_uint8 total_rec_num;           /* The total record number of EF, transparent EF is 1 */
+    sim_file_index_enum file_idx;
+    kal_bool is_exist;                 /* The EF is exist or not */
+    sim_file_structure_enum file_type;
+    kal_uint16 rec_size;               /* For tranparent EF, the rec_size is the same as file size */
+    kal_uint16 object_len;             /* the toal size of object,
+                                          including of this structure length, data len and padding length */
+    kal_uint16 data_len;               /* The data length was carried in data array */
+    kal_uint8 data[0];
+} sim_app_ready_ef_object_struct;
+#ifndef __SIM_ACCESS_INTEGRATION__
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 channel_id;
+    kal_uint16 req_len;
+    kal_uint8 src_id;
+    /* For error handling, MOD_SIM appends Le to C-APDU, Allocate 1 more byte in peer buffer for it*/
+} sim_extended_apdu_access_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16 result;
+    kal_uint16 rsp_len;
+    kal_uint8 src_id;
+} sim_extended_apdu_access_cnf_struct;
+#endif
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mcc[MAX_SIM_MCC_MNC_LEN+1];
+    kal_uint8 mnc[MAX_SIM_MCC_MNC_LEN+1];
+    kal_uint8 msin[MAX_SIM_MSIN_LEN+1];
+} sim_fake_id_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool           is_dual_mode;
+    uicc_app_type_enum app_type;
+    kal_uint8          mcc[4];        /* ASCII string */
+    kal_uint8          mnc[4];        /* ASCII string */
+    kal_uint8          gid1_length;
+    kal_uint8          gid1[NUM_GID1];      /* raw data from card */
+    kal_uint8          gid2_length;
+    kal_uint8          gid2[NUM_GID2];      /* raw data from card */
+    kal_bool           is_valid_spn;
+    kal_uint8          spn[35];       /* raw data from card, GSM will be 17 bytes and C2K will be 35 bytes */
+    kal_uint8          pnn_fname_length;
+    kal_uint8          pnn_fname[50]; /* raw data from card, the PNN record#1 full name */
+    kal_uint8          imsi[17];      /* ASCII string */
+    kal_uint8          iccid[10];     /* raw data from card */
+} sim_ddm_ready_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool           is_dual_mode;
+    uicc_app_type_enum app_type;
+    kal_uint8          mcc[4];        /* ASCII string */
+    kal_uint8          mnc[4];        /* ASCII string */
+    kal_uint8          gid1_length;
+    kal_uint8          gid1[NUM_GID1];      /* raw data from card */
+    kal_uint8          gid2_length;
+    kal_uint8          gid2[NUM_GID2];      /* raw data from card */
+    kal_bool           is_valid_spn;
+    kal_uint8          spn[35];       /* raw data from card, GSM will be 17 bytes and C2K will be 35 bytes */
+    kal_uint8          pnn_fname_length;
+    kal_uint8          pnn_fname[50]; /* raw data from card, the PNN record#1 full name */
+    kal_uint8          imsi[17];      /* ASCII string */
+    kal_uint8          iccid[10];     /* raw data from card */
+    kal_uint8 no_msisdn;        // MSISDN
+    sim_addr_struct msisdn[2];
+} sim_l5usim_ready_ind_struct;
+
+
+#ifdef __TC01__
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cmd_type;
+    kal_bool result;
+} sat_ebip_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 *buffer;
+    kal_uint8 buffer_len;
+} simdrv_debug_buffer_ind_struct;
+
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_ecc_session;
+} l4c_sim_ecc_session_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ef_imsi[9];
+}sim_vgsm_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 slot_id;
+    kal_uint8 atr[ATR_MAX_LEN];
+    kal_uint8 atr_len;
+    kal_bool is_valid_eid;
+    kal_uint8 eid[LEN_OF_EID];
+    kal_uint8 iccid[10];
+    kal_uint8 plug_state;
+}l4bsim_eslotsinfo_data_ind_struct;
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_nw_message;
+    sat_data_connection_status_enum data_connection_status;
+    sat_data_connection_type_enum data_connection_type;
+    kal_bool xsm_isvalid;
+    kal_uint8 xsm_cause;
+    kal_uint8 ti;
+    sat_pdp_pdn_pdu_type_enum pdp_type;
+} sat_evdl_data_connect_ind_struct;
+
+#endif
+