[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h b/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h
new file mode 100644
index 0000000..7da68e5
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h
@@ -0,0 +1,1264 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   l4c2csm_cc_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+*  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) 2002
+*
+*******************************************************************************
+ *  FILENAME : l4c2csm_cc_struct.h
+ *  SYNOPSIS : Functions for encoding/decoding.
+ *
+ *                      R E V I S I O N    H I S T O R Y
+ *
+ */
+#ifndef _L4C2CSM_CC_STRUCT_H
+#define _L4C2CSM_CC_STRUCT_H
+
+//#include "ps2sat_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_common_enum.h"
+//#include "csmcc_enums.h"
+#include "csmcc_common_enums.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+//pohan,For CMCC AT command requirement
+#include "csmcc_atfunc.h"
+#include "sim_public_enum.h"
+#include "kal_public_defs.h"
+
+
+typedef enum
+{
+  RDN_ALLOWED,
+  RDN_RESTRICTED,
+  RDN_UNAVAILABLE,
+  RDN_RESTRICTEDADDR
+} l4ccsm_cc_rdn_enum;
+
+typedef enum
+{
+  CNAP_ALLOWED,
+  CNAP_RESTRICTED,
+  CNAP_UNAVAILABLE,
+  CNAP_RESTRICTEDNAME
+} l4ccsm_cc_cnap_enum;
+
+typedef enum
+{
+  BSC_BS,
+  BSC_TS
+} l4ccsm_cc_bsc_enum;
+
+typedef enum
+{
+   CALL_RETRIEVED,
+   CALL_ONHOLD
+} l4ccsm_cc_hold_ind_enum;
+
+typedef enum
+{
+   ECT_ALERTING,
+   ECT_ACTIVE
+} l4ccsm_cc_ect_state_enum;
+
+typedef enum
+{
+   GEN_UNRECOGNIZED_COMP,
+   GEN_MISTYPED_COMP,
+   GEN_BAD_STRUCT_COMP
+} l4ccsm_cc_ss_gen_prob_enum;
+
+typedef enum
+{
+   INV_DUP_INV_ID,
+   INV_UNRECOGNIZED_OP,
+   INV_MISTYPED_PARA,
+   INV_RESOURCE_LIMIT,
+   INV_INIT_RELEASE,
+   INV_UNRECOGNIZED_LINK_ID,
+   INV_LINK_ID_RSP_UNEXPECTED,
+   INV_UNEXPECTED_LINK_OP
+} l4ccsm_cc_ss_inv_prob_enum;
+
+typedef enum
+{
+   RR_UNRECOGNIZED_INV_ID,
+   RR_UNEXPECTED,
+   RR_MISTYPED_PARA
+} l4ccsm_cc_ss_rr_prob_enum;
+
+typedef enum
+{
+   RE_UNRECOGNIZED_INV_ID,
+   RE_UNEXPECTED,
+   RE_UNRECOGNIZED_ERROR,
+   RE_UNEXPECTED_ERROR,
+   RE_MISTYPED_PARA
+} l4ccsm_cc_ss_re_prob_enum;
+
+typedef enum
+{
+   L4C_MODIFY_CMD_NONE,
+   L4C_MODIFY_ATA,
+   L4C_MODIFY_ATD
+} l4ccsm_cc_modify_cmd_enum;
+
+typedef enum
+{
+   L4CCSM_CC_STARTUP_NVRAM,
+   L4CCSM_CC_STARTUP_SIM,
+   L4CCSM_CC_STARTUP_INVALID
+} l4ccsm_cc_startup_enum;    /* MAUI_01747506 separte startup to SIM and NVRAM */
+
+typedef enum
+{
+   L4C_SRVCC_CALL_MODE_VOICE,
+   L4C_SRVCC_CALL_MODE_VIDEO,
+   L4C_SRVCC_CALL_MODE_EMERGENCY,
+   L4C_SRVCC_CALL_MODE_VOICE_CONFERENCE,
+   L4C_SRVCC_CALL_MODE_VIDEO_CONFERENCE,
+   L4C_SRVCC_CALL_MODE_VOICE_CONFERENCE_PARTS, // conference voice call participant
+   L4C_SRVCC_CALL_MODE_VIDEO_CONFERENCE_PARTS, // conference video call participant
+   L4C_SRVCC_CALL_MODE_MAX
+} l4ccsm_srvcc_call_mode_enum;
+
+typedef enum
+{
+   L4C_SRVCC_CALL_DIRECTION_MO,
+   L4C_SRVCC_CALL_DIRECTION_MT,
+   L4C_SRVCC_CALL_DIRECTION_MAX
+} l4ccsm_srvcc_call_direction_enum;
+
+typedef enum
+{
+   L4C_SRVCC_CALL_STATE_EARLY,
+   L4C_SRVCC_CALL_STATE_EARLY_WITH_MEDIA,
+   L4C_SRVCC_CALL_STATE_ACTIVE,
+   L4C_SRVCC_CALL_STATE_ONHOLD,
+   L4C_SRVCC_CALL_STATE_PRE_ALERTING,
+   L4C_SRVCC_CALL_STATE_PRE_ALERTING_WITH_MEDIA,
+   L4C_SRVCC_CALL_STATE_ACTIVE_RETRY_CC_CONNECT,
+   L4C_SRVCC_CALL_STATE_MAX
+} l4ccsm_srvcc_call_state_enum;
+
+/* mtk01602: REL4, TS 24.008 Table 10.5.135d
+   Define Emergency Service Categories Enum */
+typedef enum
+{
+   SRVCC_ECC_CATEGORY_UNSPECIFIED = 0, 
+   SRVCC_ECC_CATEGORY_POLICE = 0x0001,
+   SRVCC_ECC_CATEGORY_AMBULANCE = 0x0002,
+   SRVCC_ECC_CATEGORY_FIRE_BRIGADE = 0x0004,
+   SRVCC_ECC_CATEGORY_MARINE_GUARD = 0x0008,
+   SRVCC_ECC_CATEGORY_MOUNTAIN_RESCUE = 0x0010,
+   SRVCC_ECC_CATEGORY_GAS = 0x0100,
+   SRVCC_ECC_CATEGORY_ANIMAL = 0x0200,
+   SRVCC_ECC_CATEGORY_PHYSICIAN = 0x0400,   
+   SRVCC_ECC_CATEGORY_POISON = 0X0800,
+   SRVCC_ECC_CATEGORY_TRAFFIC = 0X1000,
+   SRVCC_ECC_CATEGORY_INVALID = 0XFFFF
+}l4ccsm_srvcc_ecc_category_enum;
+
+typedef struct {
+    kal_uint8 call_id;
+    l4ccsm_srvcc_call_mode_enum call_mode;
+    l4ccsm_srvcc_call_direction_enum call_dir;
+    l4ccsm_srvcc_call_state_enum call_state;
+    l4ccsm_srvcc_ecc_category_enum ecc_category;
+
+    kal_uint8 srvcc_number_type;
+    kal_bool srvcc_number_present;
+    kal_char srvcc_number[MAX_SIP_URI_LEN];
+    kal_bool srvcc_alpha_present;
+    kal_char srvcc_alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
+    kal_bool cli_present;
+    kal_uint8 cli;
+
+} l4ccsm_srvcc_call_cntxt_struct;
+
+typedef struct {
+    kal_uint8 addr_ind_present;
+    kal_uint8 addr_ind;
+    l4_addr_bcd_struct addr;
+} l4ccsm_cc_peer_addr_struct;
+
+typedef struct {
+    kal_uint8 sub_addr_len;
+    kal_uint8 sub_addr[21];
+} l4ccsm_cc_sub_addr_struct;
+
+typedef struct {
+    l4_addr_bcd_struct partyNumber;
+    kal_uint8 partyNumberSubaddress_present;
+    l4ccsm_cc_sub_addr_struct partyNumberSubaddress;
+} l4ccsm_cc_rdn_addr_struct;
+
+typedef struct {
+    kal_uint8 ect_rdn_present;
+    l4ccsm_cc_rdn_enum rdn_choice_tag;
+    union {
+        l4ccsm_cc_rdn_addr_struct presentationAllowedAddress;
+        kal_uint8 presentationRestricted;
+        kal_uint8 numberNotAvailableDueToInterworking;
+        l4ccsm_cc_rdn_addr_struct presentationRestrictedAddress;
+    } rdn_choice_value;
+} l4ccsm_cc_ect_rdn_struct;
+
+typedef struct {
+    kal_uint8 callingName_present;
+    l4ccsm_cc_cnap_enum callingName_choice_tag;
+    union {
+        l4_cnap_struct cnapPresentationAllowed;
+        l4_name_struct namePresentationAllowed;
+        kal_uint8 presentationRestricted;
+        kal_uint8 nameUnavailable;
+        l4_cnap_struct cnapPresentationRestricted;
+        l4_name_struct namePresentationRestricted;
+    } callingName_choice_value;
+} l4ccsm_cc_name_ind_struct;
+
+typedef struct {
+    kal_uint8 ccbs_index_present;
+    kal_uint8 ccbs_index;
+    kal_uint8 b_subscriberNumber_present;
+    l4_addr_bcd_struct b_subscriberNumber;
+    kal_uint8 b_subscriberSubaddress_present;
+    l4ccsm_cc_sub_addr_struct b_subscriberSubaddress;
+    kal_uint8 bs_code_present;
+    kal_uint8 bs_code;
+} l4ccsm_cc_ccbs_feature_struct;
+
+typedef struct {
+    kal_uint8 ccbs_feature_present;
+    l4ccsm_cc_ccbs_feature_struct ccbs_feature;
+    kal_uint8 alertingPattern_present;
+    kal_uint8 altertingPattern;    
+} l4ccsm_cc_ccbs_ind_struct;
+
+typedef struct {
+    kal_uint8 type;
+    kal_bool  ss_code_present;
+    kal_uint8 ss_code;
+    kal_bool  status_present;
+    kal_uint8 status;
+    kal_bool  notification_present;
+    kal_uint8 notification;
+    kal_uint16 cug_index;
+    l4ccsm_cc_ect_rdn_struct ect_rdn;
+    l4ccsm_cc_name_ind_struct name_ind;
+    l4ccsm_cc_ccbs_ind_struct ccbs_ind;
+} l4ccsm_cc_notify_ss_arg_struct;
+
+/*mtk01602, 053007: SATe Open Channel for CSD*/
+typedef struct {
+	kal_uint8  is_addr_present;
+	l4_addr_bcd_struct  addr;
+	kal_uint8   is_subaddr_present;
+	l4ccsm_cc_sub_addr_struct subaddr;
+	kal_uint8   is_user_id_present;
+	kal_uint8   user_id[32];
+	kal_uint8   is_user_pwd_present;
+	kal_uint8   user_pwd[32];
+	kal_uint8   is_local_addr_present;
+	kal_uint8   local_addr[16]; //To be confirmed, Nick set it as length 16
+	sat_csd_bearer_para_struct  sat_cbst; //refer 11.14 6.6.27; mandatory IE, no matter SIM provided or Default case.
+}l4ccsm_cc_sat_prof_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} l4ccsm_cc_dummy_local_para_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 init_type; /* MAUI_01747506 separte startup to SIM and NVRAM */
+} l4ccsm_cc_startup_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 init_type; /* MAUI_01747506 separte startup to SIM and NVRAM */
+    kal_uint8 response;
+    kal_uint16 cause;
+} l4ccsm_cc_startup_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 channel_mode;
+    kal_uint8 rat;    	
+    kal_uint8 irho_speech_on_off;
+} l4ccsm_cc_attach_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 rat;
+    kal_uint8 irho_speech_on_off;
+} l4ccsm_cc_detach_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+} l4ccsm_cc_acm_reset_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 response;
+    kal_uint16 cause;
+} l4ccsm_cc_acm_reset_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint32 acmmax;
+} l4ccsm_cc_acmmax_set_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 response;
+    kal_uint16 cause;
+} l4ccsm_cc_acmmax_set_cnf_struct;
+
+/* MAUI_01938414 [CSMCC][Revise] support reset last ccm */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+} l4ccsm_cc_last_ccm_reset_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} l4ccsm_cc_abort_call_req_struct;
+
+
+/* MAUI_01938414 [CSMCC][Revise] support reset last ccm */
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 result;
+   kal_uint8 error_cause; 
+} l4ccsm_cc_last_ccm_reset_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 digit_count;
+    kal_uint8 dtmf_digit[MAX_CC_DTMF_BCD_LEN];   
+} l4ccsm_cc_auto_dtmf_start_ind_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN. 
+   The extra last one entry is for null terminal. */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_auto_dtmf_complete_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4_addr_bcd_struct redirect_num;
+    kal_uint8 redirect_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct redirect_sub_addr;
+} l4ccsm_cc_call_deflection_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+} l4ccsm_cc_call_deflection_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id_present;
+    kal_uint8 call_id;
+    kal_uint8 crss_req;
+} l4ccsm_cc_crss_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id_present;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8  crss_req; //mtk01602, 070718
+} l4ccsm_cc_crss_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint32 ccm;
+    kal_uint32 acm;
+    kal_uint8 ccwv;
+} l4ccsm_cc_ccm_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 connected_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct connected_sub_addr;
+} l4ccsm_cc_call_accept_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+} l4ccsm_cc_call_accept_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 alert;
+} l4ccsm_cc_call_alert_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 call_type;
+    kal_uint8 connected_number_present;
+    l4ccsm_cc_peer_addr_struct connected_number;
+    kal_uint8 connected_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct connected_sub_addr;
+} l4ccsm_cc_call_connect_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_call_disc_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 call_id;
+} l4ccsm_cc_rel_comp_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 is_mt_call_allowed;
+    kal_uint8 call_id;	
+    kal_uint8 seq_num;		
+    kal_uint16 reject_cause;
+} l4ccsm_cc_call_present_rsp_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 call_type;
+    kal_uint32 ccm;
+} l4ccsm_cc_call_disc_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4ccsm_cc_modify_cmd_enum modify_cmd;
+} l4ccsm_cc_call_modify_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cur_call_type;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+} l4ccsm_cc_call_modify_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 cur_call_type;
+} l4ccsm_cc_call_modify_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 preempt_type;
+} l4ccsm_cc_call_preempt_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8 call_type;    
+    kal_uint32 ccm;
+    kal_bool is_diagnostic_present;
+    kal_uint8 diagnostic;
+} l4ccsm_cc_call_rel_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4_addr_bcd_struct called_number;
+    kal_uint8 called_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct called_sub_addr;
+    kal_uint8 cug_info;
+    kal_uint8 clir_info_present;
+    kal_uint8 clir_info;
+    kal_uint8 call_priority_present;
+    kal_uint8 call_priority;
+    kal_uint8 call_type;
+    kal_uint8 redial;
+    //kal_uint8 csd_prof_id;
+    sat_csd_bearer_para_struct sat_cbst;
+    kal_uint8 is_cell_lock_call; //[MAUI_00751970]	
+    kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__
+    kal_uint8 als_type; //MAUI_01647491 ALS_DIAL_BY_SETTING
+    kal_bool l4c_retry; //for_lv
+    kal_bool  is_ecall;
+    ecall_type_enum ecall_type; 
+} l4ccsm_cc_call_setup_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id_present;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8 call_type;    
+    sat_csd_bearer_para_struct sat_cbst;
+    kal_uint8 terminal_res;
+    kal_uint8 add_res;
+    kal_bool is_diagnostic_present;
+    kal_uint8 diagnostic;
+} l4ccsm_cc_call_setup_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 signal_value_present;
+    kal_uint8 signal_value;
+    kal_uint8 alerting_pattern_present;
+    kal_uint8 alerting_pattern;
+    kal_uint8 cw_flag;
+    kal_uint8 auto_answer;
+    kal_uint8 call_type;
+    kal_uint8 calling_number_present;
+    l4ccsm_cc_peer_addr_struct calling_number;
+    kal_uint8 calling_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct calling_sub_addr;
+    kal_uint8 redirecting_number_present;
+    l4ccsm_cc_peer_addr_struct redirecting_number;
+    kal_uint8 redirecting_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct redirecting_sub_addr;
+    kal_uint8 no_cli_cause_present;
+    kal_uint8 no_cli_cause;
+    kal_uint8 call_priority_present;
+    kal_uint8 call_priority;
+} l4ccsm_cc_call_setup_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 ccbs_possible_present;
+    kal_uint8 ccbs_possible;
+    kal_uint16 cause;
+    kal_uint8 call_type;
+    kal_bool is_diagnostic_present;
+    kal_uint8 diagnostic;
+} l4ccsm_cc_call_disc_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_data_activate_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+} l4ccsm_cc_data_activate_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4_addr_bcd_struct called_number;
+    /*Cosine 070415: R4 new IE, Emergency Call Category*/
+    kal_uint8 service_category;
+    kal_bool l4c_retry; //for_lv
+    kal_bool  is_ecall;
+    ecall_type_enum ecall_type; 
+} l4ccsm_cc_emergency_call_setup_req_struct;
+
+typedef l4ccsm_cc_call_setup_cnf_struct l4ccsm_cc_emergency_call_setup_cnf_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4ccsm_cc_notify_ss_arg_struct notify_ss_arg;
+    kal_uint8 ccbs_recall_numP;
+    l4_addr_bcd_struct ccbs_recall_num;	    	
+} l4ccsm_cc_notify_ss_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 tone;
+} l4ccsm_cc_start_dtmf_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 tone;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+} l4ccsm_cc_start_dtmf_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 tone;
+} l4ccsm_cc_stop_dtmf_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 tone;    
+    kal_uint8 cause_present;
+    kal_uint16 cause;    
+} l4ccsm_cc_stop_dtmf_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 sat_call_type;
+    kal_uint8 called_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct called_sub_addr;
+    kal_uint8 ccp_present;
+    kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+    kal_uint8 size_of_ccp;
+/////    kal_uint8 is_changed_from_ss;    
+    kal_uint8 	type_of_modification;//mtk01616_070521
+    /* MAUI_01736966 [L4C][CSM] STK support clir */
+    kal_uint8 clir_info_present;
+    kal_uint8 clir_info;
+    /*Michael:the following parameter is added for SAT retry*/
+    kal_bool l4c_retry;  
+    kal_bool is_emergency_call; //Cosine, 070831
+} l4ccsm_cc_sat_setup_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 terminal_res;
+    kal_uint8 additional_res;
+    kal_uint8 connected_number_present;
+    l4ccsm_cc_peer_addr_struct connected_number;
+    kal_uint8 connected_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct connected_sub_addr;
+////    kal_uint8 is_changed_from_ss;
+    kal_uint8 	type_of_modification;//mtk01616_070523
+    /*Michael: following 4 parameters are added for SAT retry*/
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8 size_of_ccp;
+    kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];   
+} l4ccsm_cc_sat_setup_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 is_esc_off;
+    kal_uint8 port;
+} l4ccsm_cc_uart_transfer_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 port;
+    kal_bool is_esc;
+} l4ccsm_cc_uart_transfer_ind_struct; 
+/* Ripple: must the same with csm_l2r/tdt_esc_on_ind_struct, becasue CSM uses hold_local_para(). */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 call_type;
+//    kal_uint8 csd_prof_id;
+    kal_uint32 user_rate;
+    kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__ 
+} l4ccsm_cc_csd_est_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 digit_count;
+    kal_uint8 dtmf_digit[MAX_CC_DTMF_BCD_LEN];    
+} l4ccsm_cc_auto_dtmf_start_req_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN. 
+   The extra last one entry is for null terminal. */
+
+#ifdef __TCPIP__
+//#include "custom_nvram_editor_data_item.h" 
+/*MAUI_02560318 remove the dependency of header file*/
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   l4ccsm_cc_sat_prof_struct  sat_prof; //mtk01602, 070530: add for Nick SATe
+   kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__
+} l4ccsm_cc_set_csd_prof_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 result;
+   kal_uint8 error_cause;   
+   sat_csd_bearer_para_struct  sat_cbst; //mtk01602: use to send SIM modify indication
+} l4ccsm_cc_set_csd_prof_cnf_struct;
+#endif
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 line_id;
+} l4ccsm_cphs_display_als_ind_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 line_id;
+} l4ccsm_cc_update_als_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 result;
+   kal_uint16 error_cause; 
+} l4ccsm_cc_update_als_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_bool call_exist;
+} l4ccsm_cc_call_info_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 no_dtmf;
+    kal_uint8 dtmf[MAX_CC_DTMF_BCD_LEN];
+} l4ccsm_cc_sat_send_dtmf_req_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN. 
+   The extra last one entry is for null terminal. */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+} l4ccsm_cc_sat_abort_dtmf_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8    src_id;
+    kal_uint8	res;
+    kal_uint8	cause;
+} l4ccsm_cc_sat_send_dtmf_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    csmcc_cpi_msg_type_enum msg_type;
+    kal_bool is_ibt;
+    kal_bool is_tch;
+    kal_bool numberP;
+    l4_addr_bcd_struct number;
+    kal_uint16 disc_cause; //Add for WM FTA	
+    kal_bool is_diagnostic_present;
+    kal_uint8 diagnostic;
+    l4c_call_entry_struct call_entry;
+} l4ccsm_cc_cpi_ind_struct; /*mtk00924 add 041208 for +ECPI*/
+
+/* MAUI_01315252, update call state */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 call_state;
+    l4c_call_entry_struct call_entry;
+} l4ccsm_cc_update_call_state_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_call_sync_ind_struct; /*mtk00924 add 050727 for indicate MMI to get call info*/
+
+#ifdef __VIDEO_CALL_SUPPORT__
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 call_id;
+    kal_uint8 action;/*csmcc_video_call_action_enum*/
+    kal_bool result;
+    kal_uint8 cause;	
+} l4ccsm_cc_video_call_status_ind_struct; 
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 signal_value_present;
+    kal_uint8 signal_value;
+    kal_uint8 alerting_pattern_present;
+    kal_uint8 alerting_pattern;
+    kal_uint8 cw_flag;
+    kal_uint8 auto_answer;
+    kal_uint8 call_type;
+    kal_uint8 calling_number_present;
+    l4ccsm_cc_peer_addr_struct calling_number;
+    kal_uint8 calling_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct calling_sub_addr;
+    kal_uint8 called_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct called_sub_addr;
+    kal_uint8 redirecting_number_present;
+    l4ccsm_cc_peer_addr_struct redirecting_number;
+    kal_uint8 redirecting_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct redirecting_sub_addr;
+    kal_uint8 no_cli_cause_present;
+    kal_uint8 no_cli_cause;
+    kal_uint8 call_priority_present;
+    kal_uint8 call_priority;
+    kal_uint8 seq_num;	
+}l4ccsm_cc_call_present_ind_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 num_of_call;
+    l4ccsm_srvcc_call_cntxt_struct call_tbl[L4C_MAX_CALL_LIST_LEN];
+} l4ccsm_cc_srvcc_transfer_req_struct;
+
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 call_id;
+    csmcc_cpi_msg_type_enum type;
+    csmcc_call_orig_enum direction;
+    kal_uint8 number[MAX_CC_ADDR_LEN + 1];
+    kal_bool is_far_end;
+    kal_uint16 disc_cause;
+} l4ccsm_ims_call_progress_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool call_status;
+
+} l4ccsm_ims_call_status_ind_struct;
+
+//if l4ccsm_cc_srvcc_transfer_cnf_struct.num_of_call = 0, means fail.
+typedef l4ccsm_cc_srvcc_transfer_req_struct l4ccsm_cc_srvcc_transfer_cnf_struct;
+
+#ifdef __TC7__CS__SUPPORT__
+
+typedef enum {
+    CALL_EXIST = 0,
+    CALL_NO_EXIST
+} cs_call_status_enum;
+
+typedef struct {
+	kal_uint8 ref_count;
+	kal_uint16 msg_len;
+	cs_call_status_enum call_status;
+	kal_uint8 is_mt_call;
+}l4cuas_cs_status_req_struct;
+#endif 
+
+#endif 
+
+