[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/ims/sdm_imcsms_struct.h b/mcu/protocol/interface/ims/sdm_imcsms_struct.h
new file mode 100644
index 0000000..3239805
--- /dev/null
+++ b/mcu/protocol/interface/ims/sdm_imcsms_struct.h
@@ -0,0 +1,336 @@
+/*****************************************************************************
+*  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) 2013
+*
+*  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:
+ * ------------
+ *   sdm_imcsms_struct.h
+ *
+ * Project:
+ * ------------
+ *   MOLY
+ *
+ * Description:
+ * ------------
+ *   This file defines the interface messages between SDM and IMC SMS.
+ *
+ * Author:
+ * -----------
+ * -------
+ *
+ *===========================================================
+ * $Log$
+ *
+ * 05 20 2020 chen-wei.lan
+ * [MOLY00523592] Support for MT SMS in 3GPP2 format over IMS domain in CDMA less project.
+ * 3gpp2 sms in cdma less project
+ *
+ * 09 25 2019 chen-wei.lan
+ * [MOLY00443561] [Gen97] SCBM
+ * SCBM
+ *
+ * 07 12 2019 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * 	
+ * 	[SDM patch back]7342306
+ *
+ * 04 24 2019 ian-yw.chen
+ * [MOLY00401131] [Gen97] porting from 95
+ * 	
+ * 	[porting from UMOLYE][to_20181230]
+ * 	SDM part
+ * 	(MPD)
+ *
+ * 04 24 2019 ian-yw.chen
+ * [MOLY00401131] [Gen97] porting from 95
+ * 	
+ * 	[porting from UMOLYE][to_20181230]
+ * 	SDM part
+ * 	(MPD)
+ *
+ * 04 05 2017 hsuanchang.chen
+ * [MOLY00237411] [6293][PreIT] UTK/STK SMS Flow Merge
+ * 	
+ * 	. interface
+ *
+ * 03 20 2017 hsuanchang.chen
+ * [MOLY00228407] [SDM] Internal Re-arch
+ * 	
+ * 	. remove tab and un-used code
+ *
+ * 09 26 2016 hsuanchang.chen
+ * [MOLY00203894] [SDM] UMOLYA.PS.DEV merge back UMOLYA
+ *     
+ *     .
+ *
+ * 06 07 2016 ya.li
+ * [MOLY00175415] [CMCC VoLTE Spec 2.0 New Requirement][IMCSMS][IMCSMS MO retry for 202 receive or not](CR3,interface part)
+ *     
+ *     .
+ *
+ * 03 15 2016 ian-yw.chen
+ * [MOLY00169015] [COPY CR][VzW][MT6735][Pre-LC][AT command][2.51]  case fail at AT+CMSS=1, shows error
+ * SDM part
+ *
+ * 03 02 2016 ian-yw.chen
+ * [MOLY00163894] [SMS][TC01] 3GPP2 SMS over IMS
+ * [MT/PP download/STK] interface
+ *
+ * 03 02 2016 ian-yw.chen
+ * [MOLY00163894] [SMS][TC01] 3GPP2 SMS over IMS
+ *  [MO] interfaces
+ *
+ * 03 01 2016 ian-yw.chen
+ * [MOLY00147454] VZW 3GPP2 SMS over IMS
+ *  SDM and interfaces
+ *
+ * 11 04 2015 ian-yw.chen
+ * [MOLY00129787] [Copy CR]SMS over IMS implementation
+ *  (TC01) IMCSMS-interfaces part
+ *
+ * 05 08 2015 chinte.chen
+ * [MOLY00110919] [SAT] Support STK SMS over IP
+ * .
+ *
+ * 12 01 2014 chinte.chen
+ * [MOLY00086104] [SDM][Revise] remove redundant src_id from IMSP/SDM/IMCSMS
+ * .
+ *
+ * 09 03 2014 chinte.chen
+ * [MOLY00077889] [WW FT][2014 TMO US][MT6752][VoLTE/SRVCC][Seattle][ASSERT][Fatal error(buff)] err_code1:2083 err_code2:32MD offender
+ * .
+ *****************************************************************************/
+
+#ifndef SDM_IMCSMS_STRUCT_H
+#define SDM_IMCSMS_STRUCT_H
+
+#include "ps_public_struct.h"
+#include "sim_public_enum.h"
+#include "ims_common_def.h"
+#include "sdm_imcsms_enums.h"
+
+
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 error_type; /* cp or rp error*/
+    kal_uint16 error_cause;
+    #ifdef __TC01_IMS_SUPPORT__
+    kal_uint8 retry_after;
+    #endif 
+    kal_bool need_retry_in_cs;
+} imcsms_err_info_struct;
+
+
+/* MSG_ID_SDM_IMCSMS_SUBMIT */
+typedef struct{
+    LOCAL_PARA_HDR
+    ims_access_rat_enum      rat;
+    kal_bool                 is_emergency_sms;    
+} sdm_imcsms_submit_struct, sdm_imcsms_command_struct;
+
+/* MSG_ID_SDM_IMCSMS_C2K_SUBMIT */
+typedef struct{
+    LOCAL_PARA_HDR
+    /*Add destination address here for SIP header*/
+    kal_bool                 is_da_valid;
+    kal_bool                 is_international;
+    kal_uint8                da[MAX_C2K_SMS_DA];
+    ims_access_rat_enum      rat;
+    kal_bool                 is_emergency_sms;
+} sdm_imcsms_c2k_submit_struct, sdm_imcsms_utk_submit_struct;
+
+/* MSG_ID_SDM_IMCSMS_STK_SUBMIT */
+typedef struct{
+    LOCAL_PARA_HDR
+    ims_access_rat_enum      rat;
+    kal_bool                 is_emergency_sms;    
+} sdm_imcsms_stk_submit_struct;
+
+/* MSG_ID_SDM_IMCSMS_STK_SUBMIT_REPORT_ACK */
+typedef struct{
+    LOCAL_PARA_HDR   
+    sat_terminal_res_enum  tr;
+} sdm_imcsms_stk_submit_report_ack_struct;
+
+
+/* MSG_ID_SDM_IMCSMS_STK_SUBMIT_REPORT_NACK */
+typedef struct{
+    LOCAL_PARA_HDR
+    sat_terminal_res_enum tr;
+    kal_bool addition_info_present;
+    kal_uint8 addition_info;
+    imcsms_err_info_struct  err_info;
+} sdm_imcsms_stk_submit_report_nack_struct;
+
+/* MSG_ID_SDM_IMCSMS_C2K_SUBMIT_REPORT_ACK /  MSG_ID_SDM_IMCSMS_UTK_SUBMIT_REPORT_ACK */
+typedef struct{
+    LOCAL_PARA_HDR
+} sdm_imcsms_c2k_submit_report_ack_struct, sdm_imcsms_utk_submit_report_ack_struct;
+
+/* MSG_ID_SDM_IMCSMS_C2K_SUBMIT_REPORT_NACK / MSG_ID_SDM_IMCSMS_UTK_SUBMIT_REPORT_NACK */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 error_class;
+    kal_uint16 cause_code;
+} sdm_imcsms_c2k_submit_report_nack_struct, sdm_imcsms_utk_submit_report_nack_struct;
+
+/* MSG_ID_SDM_IMCSMS_SUBMIT_REPORT_ACK */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8   mr;
+} sdm_imcsms_submit_report_ack_struct;
+
+
+/* MSG_ID_SDM_IMCSMS_SUBMIT_REPORT_NACK */
+typedef struct{
+    LOCAL_PARA_HDR
+    imcsms_err_info_struct  err_info;
+} sdm_imcsms_submit_report_nack_struct;
+
+
+/* MSG_ID_SDM_IMCSMS_DELIVER */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8   smi;
+    sms_addr_struct   sc_addr;
+    kal_uint8 psi[128];
+} sdm_imcsms_deliver_struct, sdm_imcsms_status_report_struct;
+
+
+/* MSG_ID_SDM_IMCSMS_DELIVERY_REPORT_ACK */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8   smi;
+} sdm_imcsms_deliver_report_ack_struct;
+
+
+/* MSG_ID_SDM_IMCSMS_DELIVERY_REPORT_NACK */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8   smi;
+} sdm_imcsms_deliver_report_nack_struct;
+
+/* MSG_ID_SDM_IMCSMS_C2K_DELIVER */
+typedef struct{
+    LOCAL_PARA_HDR
+} sdm_imcsms_c2k_deliver_struct;
+
+/* MSG_ID_SDM_IMCSMS_C2K_ACKNOWLEDGE */
+typedef struct{
+    LOCAL_PARA_HDR
+} sdm_imcsms_c2k_acknowledge_struct;
+
+#ifdef __SUPPORT_C2K_SMS_OVER_IMS_CDMA_LESS__
+/* MSG_ID_SDM_IMCSMS_CDMA_LESS_C2K_DELIVER */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool    is_emergency_sms;
+} sdm_imcsms_cdma_less_c2k_deliver_struct;
+#endif
+
+/* MSG_ID_SDM_IMCSMS_MEM_AVL_NOTIF */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8   req_type;  /* 0: IMCSMS_SMMA_REQ, 1: IMCSMS_SMMA_ABORT */
+} sdm_imcsms_mem_avl_notif_struct;
+
+
+/* MSG_ID_SDM_IMCSMS_MEM_AVL_NOTIF_CNF */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool    result;
+} sdm_imcsms_mem_avl_notif_cnf_struct;
+
+/* MSG_ID_SDM_IMCSMS_IS_CS_ALLOWED_REQ */
+typedef struct{
+    LOCAL_PARA_HDR
+    imcsms_sdm_sms_type_enum    sms_type;
+    kal_uint32                  accound_id; //specific for different kind of IMS registration (for IMS UA usage)
+    kal_uint8                   seq_id; //to identify the SMS (for IMS UA usage)
+} sdm_imcsms_is_cs_allowed_req_struct;
+
+/* MSG_ID_SDM_IMCSMS_IS_CS_ALLOWED_CNF */
+typedef struct{
+    LOCAL_PARA_HDR
+    imcsms_sdm_sms_type_enum    sms_type;
+    kal_uint32                  accound_id;
+    kal_uint8                   seq_id;    
+    kal_bool                    result;
+} sdm_imcsms_is_cs_allowed_cnf_struct;
+
+#ifdef __TC01_IMS_SUPPORT__
+/* MSG_ID_SDM_IMCSMS_RCV_MSG_IND */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint16              msg_id;
+    kal_uint8               error_class; 
+    esmsoims_type_enum      direction; 
+    kal_uint16              length;
+    kal_uint8               data[MAX_SMS_PDU_LEN];  
+} sdm_imcsms_rcv_msg_ind_struct;
+#endif
+
+typedef enum{
+    MO_IMS_TEMP_FAILURE = 2,
+    MO_IMS_PERM_FAILURE ,
+    MO_IMS_OTHER_FAILURE
+}sdm_imcsms_error_cause_enum;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8         msg_ref;
+    sms_addr_struct   sca;
+    ims_access_rat_enum      rat;
+    kal_bool                 is_emergency_sms;    
+}
+sdm_imcsms_cmss_submit_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8   mr;
+}
+sdm_imcsms_cmss_submit_report_ack_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    imcsms_err_info_struct  err_info;
+}
+sdm_imcsms_cmss_submit_report_nack_struct;
+
+extern kal_bool sdm_get_imcsms_retry_for_202_rev(void);
+
+#endif // SDM_IMCSMS_STRUCT_H
+