[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/protocol/interface/l4/at_usir_cmd.h b/mcu/protocol/interface/l4/at_usir_cmd.h
new file mode 100644
index 0000000..179d8be
--- /dev/null
+++ b/mcu/protocol/interface/l4/at_usir_cmd.h
@@ -0,0 +1,203 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * at_usir_cmd.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ * This file is intends for ....
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/* Please add SENSITIVE_CMD() in the following table.
+ format of command ATD is ATD123456789, it need to be processed specially
+ do NOT change the location (row_index=1) of ATD handling function */
+SENSITIVE_CMD("default", 0, 0, USIR_CMD_DEFAULT, atp_usir_none_hdlr)
+SENSITIVE_CMD("atd", 4, 0, USIR_CMD_ATD, atp_usir_atd_hdlr)
+SENSITIVE_CMD("creg", 190805, 0, USIR_CMD_ATCREG, atp_usir_none_hdlr)
+SENSITIVE_CMD("cgreg", 6665701, 0, USIR_CMD_ATCGREG, atp_usir_none_hdlr)
+SENSITIVE_CMD("cereg", 6555957, 0, USIR_CMD_ATCEREG, atp_usir_none_hdlr)
+SENSITIVE_CMD("ereg", 300549, 0, USIR_CMD_EREG, atp_usir_ereg_hdlr)
+SENSITIVE_CMD("egreg", 10835973, 0, USIR_CMD_EGREG, atp_usir_egreg_hdlr)
+SENSITIVE_CMD("cops", 186903, 0, USIR_CMD_ATCOPS, atp_usir_none_hdlr)
+SENSITIVE_CMD("eops", 296647, 0, USIR_CMD_ATEOPS, atp_usir_none_hdlr)
+SENSITIVE_CMD("cpol", 188302, 0, USIR_CMD_ATCPOL, atp_usir_none_hdlr)
+SENSITIVE_CMD("csim", 192407, 0, USIR_CMD_ATCSIM, atp_usir_none_hdlr)
+SENSITIVE_CMD("cgla", 175181, 0, USIR_CMD_ATCGLA, atp_usir_none_hdlr)
+SENSITIVE_CMD("crla", 191065, 0, USIR_CMD_ATCRLA, atp_usir_none_hdlr)
+SENSITIVE_CMD("emccmnc", 11143475, 535, USIR_CMD_ATEMCCMNC, atp_usir_none_hdlr)
+SENSITIVE_CMD("ecell", 10597984, 0, USIR_CMD_ATECELL, atp_usir_none_hdlr)
+SENSITIVE_CMD("iccid", 18935518, 0, USIR_CMD_ICCID, atp_usir_none_hdlr)
+SENSITIVE_CMD("ecmpcid", 10609679, 346 , USIR_CMD_ATECMPCID, atp_usir_none_hdlr)
+SENSITIVE_CMD("eapprove", 10504282, 22501, USIR_CMD_ATEAPPROVE, atp_usir_none_hdlr)
+SENSITIVE_CMD("eimscp", 10939025, 16, USIR_CMD_ATEIMSCP, atp_usir_none_hdlr)
+SENSITIVE_CMD("eimsinfo", 10939031, 20459, USIR_CMD_ATEIMSINFO, atp_usir_none_hdlr)
+SENSITIVE_CMD("eimsxui", 10939046, 807, USIR_CMD_ATEIMSXUI, atp_usir_none_hdlr)
+SENSITIVE_CMD("epbum", 11307331, 0, USIR_CMD_ATEPBUM, atp_usir_none_hdlr)
+SENSITIVE_CMD("cgcontrdp", 6644428,1123600 , USIR_CMD_CGCONTRDP, atp_usir_none_hdlr)
+SENSITIVE_CMD("cgscontrdp", 6667077, 30315504, USIR_CMD_CGSCONTRDP, atp_usir_none_hdlr)
+SENSITIVE_CMD("epdn", 297630, 0, USIR_CMD_EPDN, atp_usir_none_hdlr)
+SENSITIVE_CMD("cpin", 188076, 0, USIR_CMD_ATCPIN, atp_usir_none_hdlr)
+SENSITIVE_CMD("epin", 297820, 0, USIR_CMD_ATEPIN, atp_usir_none_hdlr)
+SENSITIVE_CMD("epin1", 11317188, 0, USIR_CMD_ATEPIN1, atp_usir_none_hdlr)
+SENSITIVE_CMD("epin2", 11317189, 0, USIR_CMD_ATEPIN2, atp_usir_none_hdlr)
+SENSITIVE_CMD("epinc", 11317163, 0, USIR_CMD_ATEPINC, atp_usir_none_hdlr)
+SENSITIVE_CMD("esimauth", 11481739, 31092, USIR_CMD_ATESIMAUTH, atp_usir_none_hdlr)
+SENSITIVE_CMD("esmsmaip", 11487755,1802, USIR_CMD_ATESMSMAIP, atp_usir_none_hdlr)
+SENSITIVE_CMD("esmsmoip", 11487755,22018, USIR_CMD_ATESMSMOIP, atp_usir_none_hdlr)
+SENSITIVE_CMD("esmsmtip", 11487755,29238, USIR_CMD_ATESMSMTIP, atp_usir_none_hdlr)
+SENSITIVE_CMD("eauth", 10511644, 0, USIR_CMD_ATEAUTH, atp_usir_none_hdlr)
+SENSITIVE_CMD("cpuc", 188521, 0, USIR_CMD_ATCPUC, atp_usir_none_hdlr)
+SENSITIVE_CMD("esmlck", 11487479, 11, USIR_CMD_ATESMLCK, atp_usir_none_hdlr)
+SENSITIVE_CMD("ecpi", 279309, 0, USIR_CMD_ATECPI, atp_usir_ecpi_hdlr)
+SENSITIVE_CMD("clcc", 182061, 0, USIR_CMD_ATCLCC, atp_usir_none_hdlr)
+SENSITIVE_CMD("clccs", 6918337, 0, USIR_CMD_ATCLCCS, atp_usir_none_hdlr)
+SENSITIVE_CMD("clip", 182302, 0, USIR_CMD_ATCLIP, atp_usir_none_hdlr)
+SENSITIVE_CMD("eaic", 276149, 0, USIR_CMD_ATEAIC, atp_usir_none_hdlr)
+SENSITIVE_CMD("colp", 186748, 0, USIR_CMD_ATCOLP, atp_usir_none_hdlr)
+SENSITIVE_CMD("cacm", 166187, 0, USIR_CMD_ATCACM, atp_usir_none_hdlr)
+SENSITIVE_CMD("camm", 166567, 0, USIR_CMD_ATCAMM, atp_usir_none_hdlr)
+SENSITIVE_CMD("cmgs", 183673, 0, USIR_CMD_ATCMGS, atp_usir_none_hdlr)
+SENSITIVE_CMD("emgs", 293417, 0, USIR_CMD_ATEMGS, atp_usir_none_hdlr)
+SENSITIVE_CMD("cmss", 184129, 0, USIR_CMD_ATCMSS, atp_usir_none_hdlr)
+SENSITIVE_CMD("cmt", 4846, 0, USIR_CMD_ATCMT, atp_usir_none_hdlr)
+SENSITIVE_CMD("clck", 182069, 0, USIR_CMD_ATCLCK, atp_usir_none_hdlr)
+SENSITIVE_CMD("cpwd", 188598, 0, USIR_CMD_ATCPWD, atp_usir_none_hdlr)
+SENSITIVE_CMD("ciev", 177824, 0, USIR_CMD_ATCIEV, atp_usir_none_hdlr)
+SENSITIVE_CMD("stkctrl", 40731042, 696, USIR_CMD_ATSTKCTRL, atp_usir_none_hdlr)
+SENSITIVE_CMD("cmgw", 183677, 0, USIR_CMD_ATCMGW, atp_usir_none_hdlr)
+SENSITIVE_CMD("emgw", 293421, 0, USIR_CMD_ATEMGW, atp_usir_none_hdlr)
+SENSITIVE_CMD("esimind", 11481747, 536, USIR_CMD_ATESIMIND, atp_usir_none_hdlr)
+SENSITIVE_CMD("cpbw", 187819, 0, USIR_CMD_ATCPBW, atp_usir_none_hdlr)
+SENSITIVE_CMD("ecpbw", 10613499, 0, USIR_CMD_ATECPBW, atp_usir_none_hdlr)
+SENSITIVE_CMD("epbw", 297563, 0, USIR_CMD_ATEPBW, atp_usir_none_hdlr)
+SENSITIVE_CMD("cpbr", 187814, 0, USIR_CMD_ATCPBR, atp_usir_none_hdlr)
+SENSITIVE_CMD("ecpbr", 10613494, 0, USIR_CMD_ATECPBR, atp_usir_none_hdlr)
+SENSITIVE_CMD("etmosk", 11542481, 11, USIR_CMD_ATETMOSK, atp_usir_none_hdlr)
+SENSITIVE_CMD("etmoslb", 11542481, 458, USIR_CMD_ATETMOSLB, atp_usir_none_hdlr)
+SENSITIVE_CMD("eattsk", 10510211, 11, USIR_CMD_ATEATTSK, atp_usir_none_hdlr)
+SENSITIVE_CMD("eattslb", 10510211, 458, USIR_CMD_ATEATTSLB, atp_usir_none_hdlr)
+SENSITIVE_CMD("eslblob", 11485664, 572, USIR_CMD_ATESLBLOB, atp_usir_none_hdlr)
+SENSITIVE_CMD("eslblobf", 11485664, 21742, USIR_CMD_ATESLBLOBF, atp_usir_none_hdlr)
+SENSITIVE_CMD("egmr", 284980, 0, USIR_CMD_ATEGMR, atp_usir_none_hdlr)
+SENSITIVE_CMD("egmrext", 10829245, 932, USIR_CMD_ATEGMREXT, atp_usir_none_hdlr)
+SENSITIVE_CMD("crsm", 191343, 0, USIR_CMD_ATCRSM, atp_usir_none_hdlr)
+SENSITIVE_CMD("ersa", 301075, 0, USIR_CMD_ERSA, atp_usir_none_hdlr)
+SENSITIVE_CMD("espn", 302418, 0, USIR_CMD_ATESPN, atp_usir_none_hdlr)
+SENSITIVE_CMD("esimapp", 11481739, 624, USIR_CMD_ATESIMAPP, atp_usir_none_hdlr)
+SENSITIVE_CMD("stkenv", 40731112, 22, USIR_CMD_ATSTKENV, atp_usir_none_hdlr)
+SENSITIVE_CMD("stkpci", 40731519, 9, USIR_CMD_ATSTKPCI, atp_usir_none_hdlr)
+SENSITIVE_CMD("stktr", 40731686, 0, USIR_CMD_ATSTKTR, atp_usir_none_hdlr)
+SENSITIVE_CMD("cusate", 7435214, 5, USIR_CMD_CUSATE, atp_usir_none_hdlr)
+SENSITIVE_CMD("ecusd", 10621346, 0, USIR_CMD_ATECUSD, atp_usir_none_hdlr)
+SENSITIVE_CMD("ccfc", 169179, 0, USIR_CMD_ATCCFC, atp_usir_none_hdlr)
+SENSITIVE_CMD("ccwa", 169823, 0, USIR_CMD_ATCCWA, atp_usir_none_hdlr)
+SENSITIVE_CMD("cnap", 184886, 0, USIR_CMD_ATCNAP, atp_usir_none_hdlr)
+SENSITIVE_CMD("ersaind", 11440859, 536, USIR_CMD_ATERSAIND, atp_usir_none_hdlr)
+SENSITIVE_CMD("ecrla", 10616745, 0, USIR_CMD_ATECRLA, atp_usir_none_hdlr)
+SENSITIVE_CMD("emsdtnum", 169636960, 21027, USIR_CMD_ATEMSDTNUM, atp_usir_none_hdlr)
+SENSITIVE_CMD("emsdrnum", 169636958, 21027, USIR_CMD_ATEMSDRNUM, atp_usir_none_hdlr)
+SENSITIVE_CMD("cgdcont", 6645417, 552, USIR_CMD_ATCGDCONT,atp_usir_none_hdlr)
+SENSITIVE_CMD("cgauth", 6641774, 8, USIR_CMD_ATCGAUTH, atp_usir_none_hdlr)
+SENSITIVE_CMD("egpco", 10833017, 0, USIR_CMD_EGPCO, atp_usir_none_hdlr)
+SENSITIVE_CMD("cgtft", 6668640, 0, USIR_CMD_ATCGTFT, atp_usir_none_hdlr)
+SENSITIVE_CMD("vlocinfo", 46553239, 20459, USIR_CMD_ATVLOCINFO, atp_usir_none_hdlr)
+SENSITIVE_CMD("ec2kcell", 10632593, 7688, USIR_CMD_ATEC2KCELL, atp_usir_none_hdlr)
+SENSITIVE_CMD("eclck", 10607749, 0, USIR_CMD_ATECLCK, atp_usir_none_hdlr)
+SENSITIVE_CMD("ec2kcnma", 10632593, 20711, USIR_CMD_ATEC2KCNMA, atp_usir_none_hdlr)
+SENSITIVE_CMD("ecampui", 10592250, 807, USIR_CMD_ATECAMPUI, atp_usir_ecampui_hdlr)
+SENSITIVE_CMD("econf", 10612494, 0, USIR_CMD_ATECONF, atp_usir_econf_hdlr)
+SENSITIVE_CMD("eicpgu", 10924475, 21, USIR_CMD_ATEICPGU, atp_usir_eicpgu_hdlr)
diff --git a/mcu/protocol/interface/l4/cc2sat_struct.h b/mcu/protocol/interface/l4/cc2sat_struct.h
new file mode 100644
index 0000000..191381d
--- /dev/null
+++ b/mcu/protocol/interface/l4/cc2sat_struct.h
@@ -0,0 +1,133 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * cc2sat_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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 : ps2sat_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _CC2SAT_STRUCT_H
+#define _CC2SAT_STRUCT_H
+
+//#include "kal_non_specific_general_types.h"
+#include "l4c2csm_cc_struct.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ti;
+ kal_bool addr_p;
+ kal_bool sub_addr_p;
+ l4_addr_bcd_struct addr;
+ l4ccsm_cc_sub_addr_struct sub_addr;
+} sat_evdl_mt_call_req_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/csm2l2r_struct.h b/mcu/protocol/interface/l4/csm2l2r_struct.h
new file mode 100644
index 0000000..2c81fc5
--- /dev/null
+++ b/mcu/protocol/interface/l4/csm2l2r_struct.h
@@ -0,0 +1,151 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csm2l2r_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between CSM and L2R layers.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+ * FILENAME : csm2l2r_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _CSM2L2R_STRUCT_H
+#define _CSM2L2R_STRUCT_H
+
+//#include "kal_non_specific_general_types.h"
+#include "data_xid_struct.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rat;
+ kal_uint8 user_app;
+ kal_uint8 user_rate;
+ kal_uint8 is_FR;
+ kal_uint8 is_xid_params_p; /* compression parameters; 1 means present,0 not present*/
+ xid_params_struct xid_params; /* XID parameters*/
+} csm_l2r_activate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_successful;
+} csm_l2r_activate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ xid_params_struct xid_params; /* XID parameters*/
+} csm_l2r_xid_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+} csm_l2r_esc_off_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+ kal_uint8 is_esc_on;
+} csm_l2r_esc_on_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+} csm_l2r_uart_setowner_req_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/csm2t30_struct.h b/mcu/protocol/interface/l4/csm2t30_struct.h
new file mode 100644
index 0000000..72a5436
--- /dev/null
+++ b/mcu/protocol/interface/l4/csm2t30_struct.h
@@ -0,0 +1,127 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csm2t30_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between T30 and CSM.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+#ifndef _CSM2T30_STRUCT_H
+#define _CSM2T30_STRUCT_H
+
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rat;
+ kal_uint8 access_rate;
+ kal_uint8 is_FR;
+ kal_uint8 fax_direction;
+ kal_uint8 serv_class;
+ kal_uint8 alt_speech;
+} csm_t30_activate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_successful;
+} csm_t30_activate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 fax_rate;
+} csm_t30_fax_rate_cnf_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/csm2tdt.h b/mcu/protocol/interface/l4/csm2tdt.h
new file mode 100644
index 0000000..1802cd3
--- /dev/null
+++ b/mcu/protocol/interface/l4/csm2tdt.h
@@ -0,0 +1,103 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csm2tdt.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is for CSM to TDT interface.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+#ifndef _CSM2TDT_H
+#define _CSM2TDT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef TEST_TOOL
+#include "tt_defs.h"
+#else
+#include "kal_public_api.h"
+#endif
+
+//#include "csm2tdt_enums.h"
+#include "csm2tdt_struct.h"
+
+#ifdef TOOL
+#include "set_csm2tdt.h"
+#include "get_csm2tdt.h"
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/mcu/protocol/interface/l4/csm2tdt_struct.h b/mcu/protocol/interface/l4/csm2tdt_struct.h
new file mode 100644
index 0000000..1d65770
--- /dev/null
+++ b/mcu/protocol/interface/l4/csm2tdt_struct.h
@@ -0,0 +1,144 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csm2l2r_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between CSM and L2R layers.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+ * FILENAME : csm2tdt_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _CSM2TDT_STRUCT_H
+#define _CSM2TDT_STRUCT_H
+
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rat;
+ kal_uint8 user_app;
+ kal_uint8 user_rate;
+ kal_uint8 isFR;
+} csm_tdt_activate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_successful;
+} csm_tdt_activate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+} csm_tdt_esc_off_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+ kal_uint8 is_esc_on;
+} csm_tdt_esc_on_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+} csm_tdt_uart_setowner_req_struct;
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/csm_data_enums.h b/mcu/protocol/interface/l4/csm_data_enums.h
new file mode 100644
index 0000000..65bac01
--- /dev/null
+++ b/mcu/protocol/interface/l4/csm_data_enums.h
@@ -0,0 +1,114 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csm_data_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file includes the enum value between CSM to L2R interface.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+
+#ifndef _CSM_DATA_ENUMS_H_
+#define _CSM_DATA_ENUMS_H_
+
+typedef enum
+{
+ RLP_VERSION_0,
+ RLP_VERSION_1,
+ RLP_VERSION_2
+
+} RLP_VERSION_ENUM;
+
+typedef enum
+{
+ CSD_APP_UART,
+ CSD_APP_PPP,
+ CSD_APP_SAT
+}
+CSD_APP_ENUM;
+
+typedef enum
+{
+ MO_FAX_CALL,
+ MT_FAX_CALL
+}
+CSD_FAX_DIRECTION_ENUM;
+
+typedef enum
+{
+
+ G3_SERV_CLASS_0,
+ G3_SERV_CLASS_1,
+ G3_SERV_CLASS_1_0,
+ G3_SERV_CLASS_2,
+ G3_SERV_CLASS_2_0
+}
+G3_SERVICE_CLASS_ENUM;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/data_xid_struct.h b/mcu/protocol/interface/l4/data_xid_struct.h
new file mode 100644
index 0000000..5149342
--- /dev/null
+++ b/mcu/protocol/interface/l4/data_xid_struct.h
@@ -0,0 +1,117 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * data_xid_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is for XID struct in related interface.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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 : data_xid_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _DATA_XID_STRUCT_H
+#define _DATA_XID_STRUCT_H
+
+#include "kal_general_types.h"
+
+typedef struct {
+ kal_uint8 version_num_p;
+ kal_uint8 version_num;
+ kal_uint8 wsize_ms_iwf_p;
+ kal_uint8 wsize_ms_iwf;
+ kal_uint8 wsize_iwf_ms_p;
+ kal_uint8 wsize_iwf_ms;
+ kal_uint8 t1_p;
+ kal_uint8 t1;
+ kal_uint8 n2_p;
+ kal_uint8 n2;
+ kal_uint8 t2_p;
+ kal_uint8 t2;
+} xid_params_struct;
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/general_qos_struct.h b/mcu/protocol/interface/l4/general_qos_struct.h
new file mode 100644
index 0000000..4a0bec2
--- /dev/null
+++ b/mcu/protocol/interface/l4/general_qos_struct.h
@@ -0,0 +1,136 @@
+/*****************************************************************************
+* 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) 2007
+*
+* 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:
+ * ---------
+ * general_qos_struct.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ ****************************************************************************/
+
+#ifndef _GENERAL_QOS_STRUCT_H
+#define _GENERAL_QOS_STRUCT_H
+
+#include "kal_general_types.h"
+
+/* Handling for the QoS values:
+
+ - For UL direction:
+ ===================================================================
+ Bitrate | TCM SIC | TCM SIC |
+ | = Use R15 Qos | = No R15 QoS |
+ ===================================================================
+ < 10Gbps | Pre-5G values: | Pre-5G values: |
+ | - L4C decodes u8 data | - L4C decodes u8 data |
+ | - TCM fills-in values | - TCM fills-in values |
+ | is_use_ext_qos = F | is_use_ext_qos = F |
+ | is_use_full_r11_qos = F | is_use_full_r11_qos = F |
+ -------------------------------------------------------------------
+ >=10Gbps | Pre-5G values: | Pre-5G values: |
+ | - TCM would not fill them | - TCM would not fill them |
+ | - Let ESM fill values | - Let ESM fill values |
+ | is_use_ext_qos = T | is_use_ext_qos = F |
+ | is_use_full_r11_qos = F | is_use_full_r11_qos = T |
+ ===================================================================
+
+ - For DL direction:
+ - If NW gave extended QoS, ESM decodes them and fill-in struct (is_use_ext_qos and its value)
+ - If NW did not give extended QoS, ESM decodes them and fill into old u8 data fields
+ - ESM no need to fill-in the is_use_full_r11_qos (it is used in UL direction) */
+typedef struct
+{
+ kal_uint8 qci;
+ kal_bool bit_rate_present;
+ kal_bool bit_rate_ext_present;
+ kal_bool bit_rate_ext2_present;
+ kal_uint8 ul_mbr;
+ kal_uint8 dl_mbr;
+ kal_uint8 ul_gbr;
+ kal_uint8 dl_gbr;
+ kal_uint8 ul_mbr_ext;
+ kal_uint8 dl_mbr_ext;
+ kal_uint8 ul_gbr_ext;
+ kal_uint8 dl_gbr_ext;
+ kal_uint8 ul_mbr_ext2;
+ kal_uint8 dl_mbr_ext2;
+ kal_uint8 ul_gbr_ext2;
+ kal_uint8 dl_gbr_ext2;
+
+ // __R15.4__
+ kal_bool is_use_full_r11_qos; // if KAL_TRUE, don't encode extended EPS QoS
+
+ kal_bool is_use_ext_qos_for_dl_gbr;
+ kal_bool is_use_ext_qos_for_ul_gbr;
+ kal_bool is_use_ext_qos_for_dl_mbr;
+ kal_bool is_use_ext_qos_for_ul_mbr;
+
+ kal_uint64 ext_eps_qos_dl_gbr;
+ kal_uint64 ext_eps_qos_ul_gbr;
+ kal_uint64 ext_eps_qos_dl_mbr;
+ kal_uint64 ext_eps_qos_ul_mbr;
+} eps_qos_struct;
+
+#endif /* _GENERAL_QOS_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/l4_ps_api.h b/mcu/protocol/interface/l4/l4_ps_api.h
new file mode 100644
index 0000000..1941e29
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4_ps_api.h
@@ -0,0 +1,227 @@
+/*****************************************************************************
+* 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) 2011
+*
+* 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:
+ * ---------
+ * l4_ps_api.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * API provided by L4 task and inside-PS task uses only
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef L4_PS_API_H
+#define L4_PS_API_H
+
+#include "ps_em_enum.h"
+#include "ps_public_enum.h"
+#ifdef __DIALUP_GPRS_COUNTER_SUPPORT__
+#include "l4c_ratdm_struct.h"
+#endif
+#include "ims_common_def.h"
+#include "l3_inc_enums_public.h"
+
+extern kal_bool is_ps_conf_test_xta_mode_internal(void);
+extern kal_bool is_ps_conf_test_xta_mode(void);
+extern ps_conf_test_mode_enum query_ps_conf_test_mode_internal(void);
+extern ps_conf_test_mode_enum query_ps_conf_test_mode(void);
+extern kal_uint32 query_ps_conf_test_profile_setting(void);
+
+#if 0
+/* under construction !*/
+#else
+#define l4c_cross_core_update_ps_conf_info(xta_mode, mode, profile) NULL
+#endif
+
+extern ps_conf_test_mode_enum test_mode_consider_sim(kal_uint8 simInterface);
+
+#ifdef __DIALUP_GPRS_COUNTER_SUPPORT__
+extern void ratdm_l4c_query_pdp_statistics_table( single_pdp_call_history_info_struct *query_result );
+#endif
+
+
+
+
+#if defined(__DUAL_SIM_PROJECT_SUPPORT_SGLTE_WORLD_PHONE_NVRAM__) && defined(__GEMINI__)
+/**************************************************************************************************************
+ * FUNCTION
+ * gemini_double_write_nvram_para()
+ * DESCRIPTION
+ * In GEMINI load:
+ * (1)Whether the protocol need double write nvram record.
+ * (2)If needed, which nvram record should be written.
+ * PARAMETERS
+ * sim_interface: the protocol stack's sim_interface, which calls the function.
+ * RETURNS
+ * if (not 4G switched)
+ * if (sim_interface == 0) return 3;
+ * else if (sim_interface == 1) return 4;
+ * else return 0xFFFF; //other protocol, should not occur
+ * else //4G switched
+ * if (sim_interface == 0) return 4;
+ * else if (sim_interface == 1) return 3;
+ * else return 0xFFFF; //other protocol, should not occur
+ **************************************************************************************************************/
+extern kal_uint16 gemini_double_write_nvram_para(kal_uint8 sim_interface);
+#endif
+
+extern kal_bool is_RRM_test(void);
+
+extern void l4c_resend_afr_req();
+extern kal_bool l4c_is_hvolte_enable(void);
+extern hvolte_enable_status_enum l4c_query_hvolte_enable_status(protocol_id_enum ps_id);
+extern hvolte_enable_status_enum l4c_query_hvolte_enable_for_roaming_status(protocol_id_enum ps_id);
+extern hvolte_mode_enum l4c_query_hvolte_mode(protocol_id_enum ps_id);
+extern rat_enum l4c_query_global_rat_mode(void);
+extern rat_enum l4c_query_global_rat_mode_by_idx(sim_interface_enum simInterface);
+extern kal_bool l4bpwr_get_op01_sim_lock_state();
+extern kal_bool l4bpwr_get_op01_rat_lock_state();
+
+
+#endif
diff --git a/mcu/protocol/interface/l4/l4_vdm_enum.h b/mcu/protocol/interface/l4/l4_vdm_enum.h
new file mode 100644
index 0000000..90640b3
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4_vdm_enum.h
@@ -0,0 +1,526 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4_vdm_enum.h
+ *
+ * Description:
+ * ------------
+ * This file is intends for L4/VDM interface
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4_VDM_ENUM_H
+#define _L4_VDM_ENUM_H
+
+
+#define L4CC_MAX_CALL_NUM 7
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+#define MAX_MSD_LENGTH 140
+#endif
+
+typedef enum
+{
+ L4_CALL_RELATED_SS_TYPE_REL_HELD_OR_UDUB, // AT+CHLD=0
+ L4_CALL_RELATED_SS_TYPE_REL_ACTIVE_AND_ACCEPT, // AT+CHLD=1
+ L4_CALL_RELATED_SS_TYPE_REL_SPECIFIC_CALL, // AT+CHLD=1x
+ L4_CALL_RELATED_SS_TYPE_HOLD_ACTIVE_AND_ACCEPT, // AT+CHLD=2
+ L4_CALL_RELATED_SS_TYPE_HOLD_ACTIVE_EXCEPT_SPECIFIC_CALL, // AT+CHLD=2x
+ L4_CALL_RELATED_SS_TYPE_ADD_HELD_CALL, // AT+CHLD=3
+ L4_CALL_RELATED_SS_TYPE_EXPLICIT_CALL_TRANSFER, // AT+CHLD=4
+ L4_CALL_RELATED_SS_TYPE_ACTIVATE_CCBS_CALL, // AT+CHLD=5
+ L4_CALL_RELATED_SS_TYPE_REL_ALL, // AT+CHLD=6
+ L4_CALL_RELATED_SS_TYPE_REL_CALL_REJECT, // AT+CHLD=8
+ L4_CALL_RELATED_SS_TYPE_VT_FALL_TO_VOICE, // AT+CHLD=9x
+ L4_CALL_RELATED_SS_TYPE_INVALID
+} l4_call_related_ss_type_enum;
+
+
+typedef enum
+{
+ L4_RCODE_OK,
+ L4_RCODE_CONNECT,
+ L4_RCODE_RING,
+ L4_RCODE_NO_CARRIER, //3
+ L4_RCODE_ERROR, //4
+ L4_RCODE_BUSY = 7,
+
+ /* Below are MTK proprietary result codes */
+ L4_RCODE_CONNECT_PS = 100,
+
+ /* Below are result codes added for IMS */
+
+} l4_result_code_enum;
+
+
+typedef enum
+{
+ L4_ERR_PHONE_FAILURE = 0,
+ L4_ERR_OPERATION_NOT_ALLOWED_ERR = 3,
+ L4_ERR_OPERATION_NOT_SUPPORTED = 4,
+ L4_ERR_PH_SIM_PIN_REQUIRED = 5,
+ L4_ERR_PH_FSIM_PIN_REQUIRED = 6,
+ L4_ERR_PH_FSIM_PUK_REQUIRED = 7,
+ L4_ERR_SIM_NOT_INSERTED = 10,
+ L4_ERR_SIM_PIN_REQUIRED = 11,
+ L4_ERR_SIM_PUK_REQUIRED = 12,
+ L4_ERR_SIM_FAILURE = 13,
+ L4_ERR_SIM_BUSY = 14,
+ L4_ERR_SIM_WRONG = 15,
+ L4_ERR_INCORRECT_PASSWD = 16,
+ L4_ERR_SIM_PIN2_REQUIRED = 17,
+ L4_ERR_SIM_PUK2_REQUIRED = 18,
+ L4_ERR_MEM_FULL = 20,
+ L4_ERR_INVALID_INDEX = 21,
+ L4_ERR_NO_FOUND = 22,
+ L4_ERR_TEXT_ERRSTRING_TOO_LONG_ERR = 24,
+ L4_ERR_INVALID_CHARACTERS_IN_TEXT_ERRSTRING_ERR = 25,
+ L4_ERR_DIAL_ERRSTRING_TOO_LONG_ERR = 26,
+ L4_ERR_INVALID_CHARACTERS_IN_DIAL_ERRSTRING_ERR = 27,
+ L4_ERR_NO_NW_SERVICE = 30,
+ L4_ERR_NETWORK_TIMEOUT = 31,
+ L4_ERR_NETWORK_NOT_ALLOWED = 32,
+ L4_ERR_NW_PERSON_PIN_REQUIRED = 40,
+ L4_ERR_NW_PERSON_PUK_REQUIRED = 41,
+ L4_ERR_NW_SUB_PERSON_PIN_REQUIRED = 42,
+ L4_ERR_NW_SUB_PERSON_PUK_REQUIRED = 43,
+ L4_ERR_SP_PERSON_PIN_REQUIRED = 44,
+ L4_ERR_SP_PERSON_PUK_REQUIRED = 45,
+ L4_ERR_CORP_PERSON_PIN_REQUIRED = 46,
+ L4_ERR_CORP_PERSON_PUK_REQUIRED = 47,
+ L4_ERR_UNKNOWN = 100,
+ L4_ERR_ILLEGAL_MS = 103,
+ L4_ERR_ILLEGAL_ME = 106,
+ L4_ERR_GPRS_NOT_ALLOWED = 107,
+ L4_ERR_PLMN_NOT_ALLOWED = 111,
+ L4_ERR_LA_NOT_ALLOWED = 112,
+ L4_ERR_ROAMING_AREA_NOT_ALLOWED = 113,
+ L4_ERR_SERV_OPTION_NOT_SUPPORTED = 132,
+ L4_ERR_REQ_SERV_OPTION_NOT_SUBSCRIBED = 133,
+ L4_ERR_SERV_OPTION_TEMP_OUT_OF_ORDER = 134,
+ L4_ERR_GPRS_UNSPECIFIED_ERROR = 148,
+ L4_ERR_PDP_AUTH_FAIL = 149,
+ L4_ERR_INVALID_MOBILE_CLASS = 150,
+ L4_ERR_LINK_NS_SP_PERSON_PIN_REQUIRED = 151,
+ L4_ERR_LINK_NS_SP_PERSON_PUK_REQUIRED = 152,
+ L4_ERR_LINK_SIM_C_PERSON_PIN_REQUIRED = 153,
+ L4_ERR_LINK_SIM_C_PERSON_PUK_REQUIRED = 154,
+
+ /* Below are MTK proprietary error codes */
+ L4_ERR_COMMAND_CONFLICT = 302,
+ L4_NO_ERR = 600,
+ L4_ERR_UNRECOGNIZED_CMD = 601,
+ L4_ERR_RETURN_ERROR = 602,
+ L4_ERR_SYNTEX_ERROR = 603,
+ L4_ERR_UNSPECIFIED = 604,
+ L4_ERR_DATA_TRANSFER_ALREADY = 605,
+ L4_ERR_ACTION_ALREADY = 606,
+ L4_ERR_NOT_AT_CMD = 607,
+ L4_ERR_MULTI_CMD_TOO_LONG = 608,
+ L4_ERR_ABORT_COPS = 609,
+ L4_ERR_NO_CALL_DISC = 610,
+ L4_ERR_BT_SAP_UNDEFINED = 611,
+ L4_ERR_BT_SAP_NOT_ACCESSIBLE = 612,
+ L4_ERR_BT_SAP_CARD_REMOVED = 613,
+ L4_ERR_AT_NOT_ALLOWED_BY_CUSTOMER = 614
+
+} l4_err_id_enum;
+
+
+
+
+
+typedef enum
+{
+ L4_CALL_DIR_MO_CALL = 0,
+ L4_CALL_DIR_MT_CALL = 1,
+} l4_call_dir_enum;
+
+
+typedef enum
+{
+ L4_CALL_MODE_CS_DOMAIN_BEGIN = 0,
+ L4_CALL_MODE_CS_VOICE_CALL = L4_CALL_MODE_CS_DOMAIN_BEGIN,
+ L4_CALL_MODE_CS_DATA_CALL,
+ L4_CALL_MODE_CS_FAX_CALL,
+ L4_CALL_MODE_CS_VFD_VOICE, /* voice followed by data, voice mode */
+ L4_CALL_MODE_CS_AVD_VOICE, /* alternating voice/data, voice mode */
+ L4_CALL_MODE_CS_AVF_VOICE, /* alternating voice/fax, voice mode */
+ L4_CALL_MODE_CS_VFD_DATA, /* voice followed by data, data mode */
+ L4_CALL_MODE_CS_AVD_DATA, /* alternating voice/data, data mode */
+ L4_CALL_MODE_CS_AVF_FAX, /* alternating voice/fax, fax mode */
+ L4_CALL_MODE_CS_UNKNOWN_MODE,
+ L4_CALL_MODE_CS_VIDEO_CALL,
+
+ L4_CALL_MODE_IMS_DOMAIN_BEGIN = 20,
+ L4_CALL_MODE_IMS_VOICE_CALL = L4_CALL_MODE_IMS_DOMAIN_BEGIN,
+ L4_CALL_MODE_IMS_VIDEO_CALL,
+ L4_CALL_MODE_IMS_VOICE_CONF,
+ L4_CALL_MODE_IMS_VIDEO_CONF,
+ L4_CALL_MODE_IMS_VOICE_CONF_PARTS, // voice conference call participant
+ L4_CALL_MODE_IMS_VIDEO_CONF_PARTS, // video conference call participant
+ L4_CALL_MODE_IMS_DOMAIN_END = 39,
+
+ L4_CALL_MODE_C2K_DOMAIN_BEGIN = 40,
+ L4_CALL_MODE_C2K_VOICE_CALL = L4_CALL_MODE_C2K_DOMAIN_BEGIN,
+ L4_CALL_MODE_C2K_OTASP_CALL_STD,
+ L4_CALL_MODE_C2K_OTASP_CALL_NO_STD,
+ L4_CALL_MODE_C2K_ECC_CALL,
+ L4_CALL_MODE_C2K_DOMAIN_END
+} l4_call_mode_enum;
+
+
+typedef enum
+{
+ L4_CLCCS_CALL_MODE_CS_VOICE_CALL = 1,
+ L4_CLCCS_CALL_MODE_CS_DATA_CALL, /* = 2 */
+ L4_CLCCS_CALL_MODE_CS_FAX_CALL, /* = 3 */
+ L4_CLCCS_CALL_MODE_CS_VFD_VOICE, /* = 4 voice followed by data, voice mode */
+ L4_CLCCS_CALL_MODE_CS_AVD_VOICE, /* = 5 alternating voice/data, voice mode */
+ L4_CLCCS_CALL_MODE_CS_AVF_VOICE, /* = 6 alternating voice/fax, voice mode */
+ L4_CLCCS_CALL_MODE_CS_VFD_DATA, /* = 7 voice followed by data, data mode */
+ L4_CLCCS_CALL_MODE_CS_AVD_DATA, /* = 8 alternating voice/data, data mode */
+ L4_CLCCS_CALL_MODE_CS_AVF_FAX, /* = 9 alternating voice/fax, fax mode */
+ L4_CLCCS_CALL_MODE_CS_VIDEO_CALL, /* = 10 */
+
+ L4_CLCCS_CALL_MODE_IMS_DOMAIN_BEGIN = 20, // align to CLCC call mode
+ L4_CLCCS_CALL_MODE_IMS_VOICE_CALL = L4_CLCCS_CALL_MODE_IMS_DOMAIN_BEGIN,
+ L4_CLCCS_CALL_MODE_IMS_VIDEO_CALL,
+ L4_CLCCS_CALL_MODE_IMS_VOICE_CONF,
+ L4_CLCCS_CALL_MODE_IMS_VIDEO_CONF,
+ L4_CLCCS_CALL_MODE_IMS_VOICE_CONF_PARTS, // voice conference call participant
+ L4_CLCCS_CALL_MODE_IMS_VIDEO_CONF_PARTS, // video conference call participant
+ L4_CLCCS_CALL_MODE_IMS_DOMAIN_END = 39,
+
+ L4_CLCCS_CALL_MODE_C2K_DOMAIN_BEGIN = 40,
+ L4_CLCCS_CALL_MODE_C2K_VOICE_CALL = L4_CLCCS_CALL_MODE_C2K_DOMAIN_BEGIN,
+ L4_CLCCS_CALL_MODE_C2K_OTASP_CALL_STD,
+ L4_CLCCS_CALL_MODE_C2K_OTASP_CALL_NO_STD,
+ L4_CLCCS_CALL_MODE_C2K_ECC_CALL,
+ L4_CLCCS_CALL_MODE_C2K_DOMAIN_END
+} l4_clccs_call_mode_enum;
+
+
+typedef enum
+{
+ L4_CALL_TYPE_INVALIDE = 0,
+ L4_CALL_TYPE_NATIONAL = 129,
+ L4_CALL_TYPE_INTERNATIONAL = 145,
+} l4_call_type_enum;
+
+
+typedef enum
+{
+ L4_CALL_CCSTATUS_IDLE = 1,
+ L4_CALL_CCSTATUS_CALLING_MO, //2 map to CLCC_CALL_DIALING
+ L4_CALL_CCSTATUS_CONNECTING_MO, //3
+ L4_CALL_CCSTATUS_ALERTING_MO, //4 map to CLCC_CALL_ALERTING
+ L4_CALL_CCSTATUS_ALERTING_MT, //5 mpa to CLCC_CALL_INCOMING
+ L4_CALL_CCSTATUS_ACTIVE, //6 map to CLCC_CALL_ACTIVE
+ L4_CALL_CCSTATUS_RELEASED_MO, //7
+ L4_CALL_CCSTATUS_RELEASED_MT, //8
+ L4_CALL_CCSTATUS_USER_BUSY, //9
+ L4_CALL_CCSTATUS_UDUB, //10
+ L4_CALL_CCSTATUS_WAITING_MO, //11
+ L4_CALL_CCSTATUS_WAITING_MT, //12
+ L4_CALL_CCSTATUS_HOLD_MO, //13 map to CLCC_CALL_HELD
+ L4_CALL_CCSTATUS_HOLD_MT, //14 map to CLCC_CALL_HELD
+ L4_CALL_CCSTATUS_INVALID_STATE = 0xff
+} l4_call_ccstatus_enum;
+
+
+typedef enum
+{
+ L4_CALL_NUMBER_TYPE_NONE,
+ L4_CALL_NUMBER_TYPE_URI,
+ L4_CALL_NUMBER_TYPE_TEL,
+} l4_call_number_type_enum;
+
+
+typedef enum
+{
+ L4_CC_EAIC_ALLOWED = 0,
+ L4_CC_EAIC_NOT_ALLOWED
+} l4_cc_eaic_result_enum;
+
+
+
+typedef enum
+{
+ L4_EXT_ERROR_REPORT_NORMAL_CLEARING = 16,
+ L4_EXT_ERROR_REPORT_RESOURCE_UNAVAILABLE = 47,
+ L4_EXT_ERROR_REPORT_UNOBTAINABLE_NUMBER = 1,
+ L4_EXT_ERROR_REPORT_NORMAL_UNSPECIFIED = 31,
+ L4_EXT_ERROR_REPORT_BEARER_NOT_AVAIL = 58,
+ L4_EXT_ERROR_REPORT_USER_BUSY = 17,
+ L4_EXT_ERROR_REPORT_SERVICE_NOT_AVAILABLE = 63,
+ L4_EXT_ERROR_REPORT_FDN_RESTRICTION = 2600, // refer to ps_cause_enum
+ L4_EXT_ERROR_REPORT_TEMPORTARY_FAILURE = 41,
+ L4_EXT_ERROR_REPORT_QOS_NOT_AVAIL = 49,
+ L4_EXT_ERROR_REPORT_INVALID_CMD = 0,
+ L4_EXT_ERROR_REPORT_FACILITY_REJECTED = 29,
+ L4_EXT_ERROR_REPORT_CALL_REJECTED = 21,
+ L4_EXT_ERROR_REPORT_DEDICATED_BEARER_TIMEOUT = 1000, // may reselect CS domain
+ L4_EXT_ERROR_REPORT_GENERIC_RETRY_CS = 1001, // may reselect CS domain
+ L4_EXT_ERROR_REPORT_GENERIC_NO_RETRY = 1002,
+ L4_EXT_ERROR_REPORT_GENERIC_RETRY_IMS_CS = 1003, // may retry IMS once, then CS domain
+ L4_EXT_ERROR_REPORT_TIMER_B_EXPIRY = 1004,
+ L4_EXT_ERROR_REPORT_NON_UE_DETECT_EMERG = 380, // report to AP to trigger normal to ecc redial
+ L4_EXT_ERROR_REPORT_SILENT_REDIAL_3GPP2 = 2001,
+ L4_EXT_ERROR_REPORT_DIAL_1XRTT_DIRECTLY = 2002,
+ L4_EXT_ERROR_REPORT_NEED_GLOBAL_MODE_FOR_EMERG = 2003,
+} l4_ext_error_report_enum;
+
+
+typedef enum
+{
+ L4_CALL_STATE_ACTIVE = 0,
+ L4_CALL_STATE_HELD = 1,
+ L4_CALL_STATE_MO_DIALING = 2,
+ L4_CALL_STATE_MO_ALERTING = 3,
+ L4_CALL_STATE_MT_INCOMING = 4,
+ L4_CALL_STATE_MT_WAITING = 5,
+} l4_call_state_enum;
+
+
+typedef enum
+{
+ L4_STK_CALL_DOMAIN_WG = 0,
+ L4_STK_CALL_DOMAIN_IMS = 1,
+ L4_STK_CALL_DOMAIN_C2K = 2,
+ L4_STK_CALL_DOMAIN_INVALID
+} l4_stk_call_domain_enum;
+
+typedef enum
+{
+ L4_TR_TRIGGER_MD_SEDN_STK_CALL_SETUP = 0,
+ L4_TR_TRIGGER_MD_SEDN_STK_CALL_SETUP_BUT_ICON_COULD_NOT_DSPL = 4
+} l4_stk_type_enum;
+
+typedef enum
+{
+ L4_DTMF_START,
+ L4_DTMF_STOP,
+ L4_DTMF_START_AND_STOP,
+} l4_dtmf_action_enum;
+
+typedef enum
+{
+ L4_IRAT_STATUS_IDLE = 0,
+ L4_IRAT_STATUS_ONGOING
+} l4_irat_status_enum;
+
+typedef enum
+{
+ L4_SETUP_CALL_BUT_ONLY_IF_NOT_CURRENTLY_BUSY_ON_ANOTHER_CALL = 0,
+ L4_SETUP_CALL_BUT_ONLY_IF_NOT_CURRENTLY_BUSY_ON_ANOTHER_CALL_WITH_REDIAL = 1,
+ L4_SETUP_CALL_PUTTINGALL_OTHER_CALLS_IF_ANY_ON_HOLD = 2,
+ L4_SETUP_CALL_PUTTINGALL_OTHER_CALLS_IF_ANY_ON_HOLD_WITH_REDIAL = 3,
+ L4_SETUP_CALL_DISCONNECTING_ALL_OTHER_CALLS_IF_ANY = 4,
+ L4_SETUP_CALL_DISCONNECTING_ALL_OTHER_CALLS_IF_ANY_WITH_REDIAL = 5
+}l4_stk_redial_setting_enum;
+
+typedef enum
+{
+ L4_STK_MEDIA_TYPE_VOICE = 0,
+ L4_STK_MEDIA_TYPE_VIDEO = 1
+}l4_stk_media_type_enum;
+
+// mirror from rmmi_reg_state_enum, notify the registered state for VDM
+typedef enum
+{
+ NAS_REG_STATUS_NOT_REGISTERED = 0,
+ NAS_REG_STATUS_REGISTERED_HOME,
+ NAS_REG_STATUS_NOT_REGISTERED_SEARCHING,
+ NAS_REG_STATUS_REG_DENIED,
+ NAS_REG_STATUS_OUT_OF_COVERAGE,
+ NAS_REG_STATUS_REGISTERED_ROAMING,
+ NAS_REG_STATUS_SMS_ONLY_HOME,
+ NAS_REG_STATUS_SMS_ONLY_ROAMING,
+ NAS_REG_STATUS_EMERGENCY_ONLY,
+ NAS_REG_STATUS_CSFB_NOT_PREFERRED_HOME,
+ NAS_REG_STATUS_CSFB_NOT_PREFERRED_ROAMING
+} nas_reg_status_enum;
+
+// mirror from rac_vgmm_struct.h, notify result of ESFB/acquire EMC for VDM
+typedef enum{
+ L4_EMS_ACQUIRE,
+ L4_EMS_RE_ACQUIRE,
+ L4_EMS_RELEASE
+} l4_emergency_service_request_type_enum;
+
+typedef enum{
+ L4_EMS_CAUSE_NONE = 0,
+ L4_EMS_CAUSE_EPDU_FAILURE = 1,
+ L4_EMS_CAUSE_NUM
+} l4_emergency_service_request_cause_enum;
+
+typedef enum
+{
+ L4_NORMAL_REGISTRATION,
+ L4_EMERGENCY_REGISTRATION
+} l4_emergency_service_reg_type_enum;
+
+typedef enum{
+ L4_EMS_IND_CAUSE_NONE = 0,
+
+ //Success CNF response to EMERGENCY_SERVICE_REQ and EMS IND causes
+ //that map to this value.
+ L4_EMS_CNF_SUCCESS = 1,
+ L4_EMS_IND_ACTIVE = 2,
+
+ //Failure CNF response to EMERGENCY_SERVICE_REQ and EMS IND causes
+ //that map to this value.
+ L4_EMS_CNF_FAIL = 100,
+ L4_EMS_IND_BARRED = 101,
+ L4_EMS_IND_NO_CELL = 102,
+ L4_EMS_IND_CURRENT_PLMN = 103,
+ L4_EMS_IND_N1_NOT_ACTIVE = 104,
+ L4_EMS_IND_INACTIVE = 105,
+ L4_EMS_IND_ABNORMAL_TRY_OTHER_IPCAN = 106
+} l4_emergency_service_cnf_result_enum, l4_emergency_service_cnf_cause_enum;
+
+typedef enum{
+ L4_EMSFB_CAUSE_NONE = 0,
+
+ //Success CNF response to EMERGENCY_SERVICE_FALLBACK_REQ
+ L4_EMSFB_CNF_SUCCESS = 1,
+
+ //Failure CNF response to EMERGENCY_SERVICE_REQ
+ L4_EMSFB_CNF_FAIL = 200,
+ L4_EMSFB_BARRED = 201,
+ L4_EMSFB_NO_CELL = 202,
+ L4_EMSFB_CURRENT_PLMN = 203,
+ L4_EMSFB_N1_NOT_ACTIVE = 204,
+
+ //VDM internal use
+ L4_EMSFB_VDM_ESFB_TIMER_TIMEOUT,
+} l4_emergency_fallback_cnf_result_enum, l4_emergency_fallback_cnf_cause_enum;
+
+#endif /* _L4_VDM_ENUM_H */
+
diff --git a/mcu/protocol/interface/l4/l4b_vdm_struct.h b/mcu/protocol/interface/l4/l4b_vdm_struct.h
new file mode 100644
index 0000000..2f71b9c
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4b_vdm_struct.h
@@ -0,0 +1,446 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4b_vdm_struct.h
+ *
+ * Description:
+ * ------------
+ * This file is intends for L4B/VDM interface
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4B_VDM_STRUCT_H
+#define _L4B_VDM_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "l4_vdm_enum.h"
+#include "sim_public_enum.h"
+
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+/***********************************/
+/* VDM -> L4B (REQ) */
+/***********************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ecall_type_enum ecall_type;
+ ecall_format_enum ecall_format;
+ kal_uint8 msd_data_len;
+ kal_uint8 msd_data[MAX_MSD_LENGTH];
+} vdm_l4b_cs_cc_ecall_req_struct;
+#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ADDR_LEN];
+ kal_bool is_video_call;
+ kal_bool is_redial_from_volte;
+ kal_uint8 call_id;
+ kal_uint8 so;
+} vdm_l4b_c2k_cc_mo_call_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ADDR_LEN];
+ kal_uint8 call_id;
+} vdm_l4b_c2k_cc_emerg_call_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sat_terminal_res_enum tr; // o or 4
+ kal_uint8 call_id;
+} vdm_l4b_c2k_cc_stk_call_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ l4_call_related_ss_type_enum opcode;
+} vdm_l4b_c2k_cc_call_related_ss_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 seq_no;
+ l4_cc_eaic_result_enum eaic_result;
+} vdm_l4b_c2k_cc_mt_call_present_rsp_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_l4b_c2k_cc_mt_call_accept_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+}vdm_l4b_c2k_cc_list_current_calls_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 digit;
+} vdm_l4b_c2k_cc_send_digit_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 digit;
+} vdm_l4b_c2k_cc_start_send_digit_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_l4b_c2k_cc_stop_send_digit_req_struct;
+
+
+/***********************************/
+/* L4B -> VDM (CNF) */
+/***********************************/
+
+
+/* Common response from L4B to VDM */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_result_code_enum result;
+ l4_err_id_enum error_cause;
+} vdm_l4b_common_response_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+/* MSG_ID_VDM_L4B_CS_CC_ECALL_CNF */
+typedef vdm_l4b_common_response_struct vdm_l4b_cs_cc_ecall_cnf_struct;
+#endif
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_mo_call_cnf_struct;
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_emerg_call_cnf_struct;
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_stk_call_cnf_struct;
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_hangup_all_cnf_struct;
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_call_related_ss_cnf_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_ext_error_report_enum ceer_cause;
+ l4_result_code_enum result;
+ l4_err_id_enum err_id;
+ kal_uint16 ecc_category;
+} vdm_l4b_c2k_cc_ext_error_report_cnf_struct;
+
+
+typedef struct {
+ kal_uint8 call_id;
+ l4_call_dir_enum dir;
+ l4_call_state_enum call_state;
+ l4_call_mode_enum call_mode;
+ kal_bool mpty; // FALSE: is NOT conference call, TRUE: is conference call
+ l4_call_type_enum call_type;
+ kal_uint8 number[MAX_CC_ADDR_LEN];
+ kal_uint8 cli_validity;
+} vdm_l4b_call_list_struct;
+
+
+typedef struct {
+ kal_uint8 call_id;
+ l4_call_dir_enum dir;
+ l4_clccs_call_mode_enum clccs_cs_mode;
+ l4_call_ccstatus_enum ccstatus;
+ kal_bool mpty; // FALSE: is NOT conference call, TRUE: is conference call
+ l4_call_number_type_enum number_type;
+ l4_call_type_enum call_type;
+ kal_uint8 number[MAX_SIP_URI_LEN];
+ kal_bool cli_present;
+ kal_uint8 cli_validity;
+} vdm_l4b_call_list_ext_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sat_terminal_res_enum tr;
+ kal_uint8 additional_info;
+} vdm_l4b_snd_stk_call_tr_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_result_code_enum result;
+} vdm_l4b_snd_stk_call_tr_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 total_call;
+ vdm_l4b_call_list_struct call_list[L4CC_MAX_CALL_NUM];
+} vdm_l4b_c2k_cc_list_current_calls_cnf_struct;
+
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_mt_call_accept_cnf_struct;
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_send_digit_cnf_struct;
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_start_send_digit_cnf_struct;
+
+typedef vdm_l4b_common_response_struct vdm_l4b_c2k_cc_stop_send_digit_cnf_struct;
+/***********************************/
+/* L4B -> VDM (URC) */
+/***********************************/
+
+typedef struct
+{
+ /* +ECPI:<call_id>,<msg_type>,<is_ibt>,<is_tch>,<dir>,
+ * <call_mode>,[<number>,<type>],[<disc_cause>],[<pau>]
+ */
+ kal_bool is_ibt;
+ kal_bool is_tch;
+ l4_call_dir_enum call_dir;
+ l4_call_mode_enum call_mode;
+ kal_bool is_number_call_type_present;
+ kal_uint8 number[MAX_CC_ADDR_LEN];
+ l4_call_type_enum call_type;
+ kal_bool is_disc_cause_present;
+ kal_uint16 disc_cause;
+} l4b_ecpi_info_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ecpi_type;
+ l4b_ecpi_info_struct ecpi_info;
+} vdm_l4b_common_cs_cc_ecpi_ind_struct;
+
+
+typedef struct {
+ kal_uint8 number[MAX_CC_ADDR_LEN];
+ l4_call_type_enum call_type;
+ l4_call_mode_enum call_mode;
+ kal_uint8 redirect_num[MAX_CC_ADDR_LEN];
+} l4b_cc_eaic_info_struct;
+
+
+typedef struct
+{
+ /* +EAIC
+ */
+
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ l4b_cc_eaic_info_struct eaic_info;
+ kal_uint8 seq_no;
+} vdm_l4b_c2k_cc_mt_call_present_ind_struct;
+
+/* MSG_ID_VDM_L4BNW_ATTACHED_RAT_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum currently_attached_rat;
+ rat_enum last_attached_rat;
+} vdm_l4bnw_attached_rat_ind_struct;
+
+/******************************************************************************
+ * +ESTKCNUM: <call_number>, <call_type>, <domain>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 stk_call_num[MAX_CC_ADDR_LEN];
+ l4_call_type_enum stk_call_type;
+ l4_stk_call_domain_enum stk_call_domain;
+ l4_stk_redial_setting_enum stk_redial_setting;
+ l4_stk_media_type_enum stk_media_type;
+} vdm_l4b_stk_call_num_ind_struct;
+
+typedef vdm_l4b_common_cs_cc_ecpi_ind_struct vdm_l4b_c2k_cc_ecpi_translate_ind_struct;
+
+typedef vdm_l4b_common_cs_cc_ecpi_ind_struct vdm_l4b_c2k_cc_mt_call_setup_ind_struct;
+
+typedef vdm_l4b_common_cs_cc_ecpi_ind_struct vdm_l4b_c2k_cc_call_disconnect_ind_struct;
+
+typedef vdm_l4b_common_cs_cc_ecpi_ind_struct vdm_l4b_c2k_cc_mo_call_id_ind_struct;
+
+#endif /* _L4B_VDM_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4/l4c2rac_struct.h b/mcu/protocol/interface/l4/l4c2rac_struct.h
new file mode 100644
index 0000000..327cfca
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c2rac_struct.h
@@ -0,0 +1,885 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4crac_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between RAC and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* 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 : l4c2rac_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _L4C2RAC_STRUCT_H
+#define _L4C2RAC_STRUCT_H
+
+#include "ps_public_enum.h"
+#include "kal_public_defs.h"
+#include "mcd_l3_inc_struct.h"
+#include "kal_general_types.h"
+#include "l3_inc_enums.h"
+#include "l3_inc_local.h"
+#include "l4c_common_enum.h"
+#include "l4crac_enums.h"
+#include "sim_public_enum.h"
+#include "ims_common_def.h"
+#include "irat_common_enums.h"
+#include "gmss_public.h"
+#include "rac_gmss_struct.h"
+
+#include "c2k_irat_msg_struct.h"
+#include "l4c_eval_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+} l4crac_act_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ mm_user_search_type_enum search_type; //mm_user_search_type_enum, erica 20070424, MAUI_00232280
+ mm_user_search_cause_enum search_cause; //used for GSMA SIM block feature
+} l4crac_reg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ mm_user_search_type_enum search_type; //mm_user_search_type_enum, erica 20070424, MAUI_00232280
+} l4crac_ps_reg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ domain_id_enum service; /* CS/PS/CS_PS*/
+ kal_bool is_poweroff; /* TRUE/FALSE*/
+ l4c_rac_detach_cause_enum detach_cause; /*DETACH_CAUSE_NONE/DETACH_CAUSE_DUPLEX_MODE_CHANGE*/
+ kal_uint8 sim_index; /*which sim is invalid*/
+ rat_enum reject_rat; /*which rat reject the sim*/
+} l4crac_dereg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rfoff_cause_enum rfoff_cause;
+} l4crac_rfoff_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ user_list_type_enum user_list_type;
+ rat_enum list_rat;
+ kal_uint8 given_number_of_plmn; // used for the USER_LIST_TYPE_GIVEN_TIMER_NUMBER. When xAS found the given number of plmn, xAS return plmn list cnf (with signal power value). If the number is 255, means feature OFF.
+ kal_uint32 given_timer_period; //used for the USER_LIST_TYPE_GIVEN_TIMER_NUMBER to guard the plmn list procedure, if the timer timeout, RAC will notify lower layer to update what they found
+ network_scan_input_struct network_scan_input;
+} l4crac_plmn_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ ms_mobile_class_enum ms_class; /* CC/CG/B*/
+} l4crac_class_change_req_struct;
+
+#if 0 // MOLY00083802 remove band related codes in RAC
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#ifdef __LTE_RAT__
+/* under construction !*/
+/* under construction !*/
+#endif /* __LTE_RAT__ */
+/* under construction !*/
+/* under construction !*/
+#endif
+
+#if defined(__GEMINI__)
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_config_status_enum sim_config_status; // refer to sim_config_status_enum
+ sim_insert_status_enum sim_insert_status; // refer to sim_insert_status_enum
+}l4crac_sim_status_update_req_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ plmn_id_rat_struct plmn_id;
+ //kal_uint8 plmn_sel_mode;
+
+ /* Johnny:
+ AUTO_RESELECTION/MANUAL_RESELECTION, there is no __MANUAL_MODE_NW_SEL__ compile option
+ */
+ plmn_reselection_enum plmn_reselection_mode;
+ rat_enum preference; // 0:default , 1:GSM , 2:UMTS
+ endc_search_enum endc_search_mode;
+ kal_uint32 factory_mode_arfcn; //FastCampOn 20081104
+#ifdef __CSG_SUPPORT__
+//mtk02475: for Rel8 CSG feature, user can specify CSG id for manual CSG selection
+ kal_bool is_manual_csg_sel;
+ kal_uint32 csg_id;
+#endif
+} l4crac_plmn_search_req_struct;
+
+typedef rac_gmss_abort_enwsel_search_req_struct l4crac_abort_enwsel_search_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ rat_enum rat_mode;
+ kal_bool save_to_nvram; //MAUI_02554068
+}l4crac_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+}l4crac_plmn_list_stop_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ prefer_rat_type_enum type;
+ rat_enum prefer_rat;
+ kal_uint32 rat_num;
+ rat_enum rat_order[MAX_SUPPORTED_RAT];
+}l4crac_set_prefer_rat_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ prefer_rat_type_enum type;
+}l4crac_get_prefer_rat_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ susp_resu_mode_enum mode;
+ susp_resu_action_enum action;
+ kal_uint8 susp_id;
+ susp_resu_source_enum source;
+}l4crac_susp_resu_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool is_supporting_roaming;
+ kal_bool disable_international_roaming_support;
+ kal_bool disable_national_roaming_support;
+ kal_bool disable_hhplmn_search_support;
+}l4crac_set_roaming_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool force_send_SCRI;
+ end_session_cause_enum cause;
+}l4crac_end_ps_data_session_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ end_session_cause_enum cause;
+}l4crac_end_ps_data_session_ind_struct;
+
+#ifdef __CSG_SUPPORT__
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ plmn_id_rat_struct plmn_id_rat; //mtk02475: user can specified the CSG list scope
+} l4crac_csg_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+}l4crac_csg_list_stop_req_struct;
+#endif /* __CSG_SUPPORT__ */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ l4c_rac_sms_preference_enum sms_preference;
+ kal_bool is_from_provision;
+} l4crac_set_sms_preference_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool enable;
+} l4crac_set_sms_over_sgs_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool is_utran_vdp_valid;
+ kal_bool is_eutran_vdp_valid;
+ l4_voice_domain_preference_enum utran_voice_domain_preference;
+ l4_voice_domain_preference_enum eutran_voice_domain_preference;
+ kal_bool is_from_provision;
+} l4crac_set_voice_domain_preference_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ ue_usage_setting_enum ue_usage_setting;
+} l4crac_set_ue_usage_setting_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ ue_mode_enum ue_mode;
+} l4crac_set_ue_mode_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool is_ims_voice_available;
+} l4crac_set_ims_voice_availability_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool is_ims_sms_available;
+} l4crac_set_ims_sms_availability_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} l4crac_sim_ready_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sim_error_cause_enum cause;
+} l4crac_sim_error_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
+} l4crac_set_recovery_search_timer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_recovery_search_timer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; // need to piggyback to L4C
+} l4crac_get_recovery_search_timer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; // piggyback to L4C from REQ
+ kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
+} l4crac_get_recovery_search_timer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ps_cause_enum cause;
+} l4crac_eps_attach_needed_rej_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ct_mode_enum mode;
+} l4crac_set_ct_mode_req_struct;
+
+
+#if defined(__CDMA2000_RAT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mmdc_recovery_search_enum trigger_type;
+} l4crac_mmdc_recovery_search_req_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ act_sim_enum active_sim;
+}l4crac_active_sim_ind_struct, l4crac_active_sim_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn;
+ rat_enum rat;
+ kal_uint8 ara_start[2];
+ kal_uint8 ara_end[2];
+}l4crac_aral_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ ims_reg_state_enum reg_state;
+ ims_reg_type_enum reg_type;
+ ims_dereg_cause_enum dereg_cause;
+ ims_access_rat_enum rat;
+ kal_bool is_retry;
+ kal_uint32 ext_info;
+} l4crac_ims_reg_status_update_req_struct;
+
+#ifdef __IMS_SUPPORT__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool is_ims_voice_support;
+ kal_bool is_ims_sms_support;
+ ims_cap_rat_enum ims_rat_cap;
+} l4crac_ims_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_reg_type_enum reg_type;
+} l4crac_ims_reg_start_req_struct, l4crac_ims_dereg_start_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_timer_type_enum timer_type;
+ ims_timer_status_enum timer_status;
+ kal_uint16 timer_length;
+} l4crac_ims_timer_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_special_event_enum ims_event;
+ imcb_imc_sip_cause_enum sip_cause;
+} l4crac_ims_event_update_req_struct;
+
+#endif /* __IMS_SUPPORT__*/
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_ims_roaming_enable;
+} l4crac_set_ims_roaming_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ custom_plmn_type_enum type;
+} l4crac_get_custom_plmn_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ custom_plmn_type_enum type;
+ kal_uint8 plmn_ver[2];
+ kal_uint16 no_plmn_entry;
+ kal_uint8 *plmn_data;
+} l4crac_custom_plmn_list_update_req_struct;
+
+#ifdef __VOLTE_SUPPORT__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ mm_ims_voice_termination mm_ivt;
+} l4crac_set_mm_ims_voice_termination_req_struct;
+#endif /* __VOLTE_SUPPORT__ */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ call_status_enum call_status;
+ call_type_indication_enum call_type;
+ kal_bool is_flight_mode_on_ecc; // GMSS need this flag to determine System/PLMN selection logic during filght mode ECC
+ rat_enum call_current_rat; // the call start/stop current rat
+} l4crac_call_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} l4crac_set_first_camp_on_prefer_rat_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ emdstatus_md_config_enum md_config;
+ emdstatus_sim_config_enum sim_config;
+} l4crac_md_sim_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ plmn_id_struct plmn_id;
+} l4crac_disable_eutran_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool geran_tdma;
+ kal_bool utran_fdd;
+ kal_bool utran_tdd_lcr;
+ kal_bool eutran_fdd;
+ kal_bool eutran_tdd;
+ kal_bool nr_fdd;
+ kal_bool nr_tdd;
+ mode_switch_cause_enum cause;
+} l4crac_duplex_mode_change_req_struct;
+
+ typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ } l4crac_clear_mru_req_struct;
+
+ typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+ kal_uint16 arfcn;
+ kal_uint8 requested_band;
+} l4crac_set_mru_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+} l4crac_set_aux_plmn_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool voice_over_ims_ongoing;
+} l4crac_ims_call_info_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ ims_scm_info_type_enum application;
+ ims_scm_info_action_enum indication;
+} l4crac_ims_scm_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ wm_policy_enum wm_policy;
+} l4crac_set_wm_policy_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool data_enabled_setting;
+ kal_bool data_roaming_setting;
+} l4crac_set_roaming_data_config_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ module_type dst_id; // destination module ID
+ omadm_cmd_type_enum cmd;
+ omadm_node_type_enum node_type; // OMADM node
+ kal_uint32 node_value; // used only cmd=SET
+} l4crac_omadm_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ mru_cmd_type_enum cmd;
+ mmss_list_type_enum list_type; // RAL or MRU
+ vzwmru_entry_struct entry; // used only cmd=EDIT
+} l4crac_vzwmru_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ hvolte_mode_enum mode;
+ kal_bool is_for_silent_redial;
+ set_hvolte_mode_cause_enum cause;
+} l4crac_set_hvolte_mode_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool mode; //to indicate the mode=0/1 to RAC
+} l4crac_cs_voice_call_protection_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_main_ps; /* GEMINI : data preferred SIM e.g. internet data*/
+} l4crac_data_allow_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_main_ps; /* GEMINI : data preferred SIM e.g. internet data*/
+} l4cvdm_data_allow_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_user_selected_main_ps; /* GEMINI : user selected data preferred stack e.g. internet data*/
+} l4crac_user_selected_main_ps_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 tw_mode;
+ kal_uint8 setting;
+} l4crac_gmss_set_tw_mode_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_apn_enable;
+} l4crac_vzw_admin_apn_setting_notify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_data_service_present;
+ kal_bool is_data_service_on;
+ kal_bool is_data_roaming_service_present;
+ kal_bool is_data_roaming_service_on;
+} l4crac_data_service_status_update_req_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+}l4crac_rsim_auth_abort_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_rsim_enable;
+}l4crac_rsim_set_ps_only_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_rsim_enabled; /* TRUE when RSIM is enabled, (i.e when AT+ERSIM = 1 is received), FALSE when RSIM is disabled, (i.e when AT+ERSIM = 0 is received)*/
+ kal_bool is_aka_sim_enabled; /* TRUE when AKA SIM is enabled (I.E when AT+ERSIMAKA=1 is received), FALSE when AKA SIM is enabled, (i.e when AT+ERSIMAKA = 0 is received) */
+}l4crac_rsim_aka_status_req_struct;
+
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_ct_volte_support;
+} l4crac_volte_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4crac_reset_ota_ctxt_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4crac_get_last_rat_select_ind_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ vzw_barring_timer_type_enum timer_type;
+ kal_uint32 timer_interval; /* in second */
+} l4crac_gmss_set_plmn_barring_timer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+} l4crac_gmss_set_plmn_barring_timer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ vzw_barring_timer_type_enum timer_type;
+} l4crac_gmss_get_plmn_barring_timer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint32 timer_interval;
+} l4crac_gmss_get_plmn_barring_timer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum disable_rat;
+}l4crac_rat_disable_config_req_struct; /*TMO diable 2G*/
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 svn; // BCD type, non reverse
+} l4crac_set_ms_sv_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ fplmn_action_enum action;
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+ kal_bool card_lock;
+#endif
+ kal_uint8 fplmn_count;
+ plmn_id_struct fplmn_id[MAX_NUM_FPLMNS];
+} l4crac_fplmn_action_req_struct;
+
+typedef struct {
+ kal_bool is_mobile_data_enable_present;
+ kal_bool is_mobile_data_enable;
+ kal_bool is_mobile_data_roaming_enable_present;
+ kal_bool is_mobile_data_roaming_enable;
+ kal_bool is_volte_enable_present;
+ kal_bool is_volte_enable;
+ kal_bool is_vzw_ims_test_mode_enable_present;
+ kal_bool is_vzw_ims_test_mode_enable;
+} l4crac_cellular_network_config;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4crac_cellular_network_config config;
+}l4crac_cellular_network_config_req_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 purpose;
+ kal_uint8 mode;
+ kal_uint32 timer1;
+ kal_bool is_timer1_valid;
+ kal_uint32 timer2;
+ kal_bool is_timer2_valid;
+}l4crac_set_timer_req_struct;
+#endif
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ module_type user;
+ kal_uint8 src_id;
+ vg_option_enum vg_option_bitmap;
+ kal_uint8 act_operation; // 0 (default value): no operation, 1: need local release, 2: need local release + trigger NR search
+} l4crac_vg_option_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ module_type user; // Piggy back
+ kal_uint8 src_id;
+ kal_bool result;
+} l4crac_vg_option_update_cnf_struct;
+
+//should be the same as mm_emm_csfb_page_rsp_struct
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_accept_paging; //Whether upper layer decides to answer the mobile terminating CS service
+} l4crac_csfb_page_rsp_struct;
+
+//should be the same as mm_emm_csfb_page_config_req_struct
+typedef struct {
+ LOCAL_PARA_HDR
+ csfb_page_config_enum csfb_page_config;
+ kal_uint8 add_info; // if csfb_page_config is 3 or 4, add_info will be the new timer value
+} l4crac_csfb_page_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_rude_wakeup;
+}l4crac_screen_on_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool normal_oos_recovery_round_present;
+ kal_uint8 normal_oos_recovery_round; /* default value =5, range [2,10] */
+ kal_bool inactive_fullband_period_present;
+ kal_uint16 inactive_fullband_period; /* default value =200s, range [90,360] */
+ kal_bool inactive_sniffer_period_present;
+ kal_uint8 inactive_sniffer_period; /* default value =30s, range [10,60] */
+ kal_bool is_inactive_mode_present;
+ kal_bool is_inactive_mode; /* TRUE: Enter inactive mode, FALSE: Leave inactive mode*/
+ kal_bool inactive_scan_time_present;
+ kal_uint32 inactive_scan_time;
+ kal_bool inactive_sleep_time_present;
+ kal_uint32 inactive_sleep_time;
+} l4crac_inactive_mode_configuration_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id;
+ ims_service_type_enum type;
+ ims_service_status_enum status;
+ kal_uint8 src_id; //source id of this message (IMS or VDM)
+} l4crac_uac_param_check_req_struct; // rac_vgmm_ims_uac_req_struct
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id;
+ kal_uint8 src_id; //source id of this message (IMS or VDM)
+} l4crac_uac_abort_req_struct; // rac_vgmm_ims_uac_abort_req_struct
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_service_type_enum type;
+ ims_service_status_enum status;
+} l4crac_nr_ims_service_status_req_struct; // rac_vgmm_ims_service_status_req_struct
+
+
+// TODO: Define below struct
+/* Below enums are defined in rac_vgmm_struct.h.
+ rac_vgmm_struct.h includes this header, so this header cannot include it again.
+ Do not use kal_uint8/kal_uint32. The sizes of enums are unpredictable!
+*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} l4crac_emergency_service_fallback_req_struct; // rac_vgmm_emergency_service_fallback_req_struct
+
+typedef l4c_eval_sr_failure_ind_struct l4crac_vgmm_proc_failure_ind_struct;
+
+#if defined(__TC01__) // at%ltecall
+typedef struct{
+ #if defined(__GSM_RAT__)
+ kal_uint8 requested_gsm_band;
+ #endif /* __GSM_RAT__ */
+ #if defined(__UMTS_RAT__)
+ kal_uint8 requested_umts_fdd_band[SIZE_OF_UMTS_BAND];
+ #endif /* __UMTS_RAT__ */
+}custom_factory_ugrac_context_struct;
+
+#ifdef __LTE_RAT__
+typedef struct{
+ kal_uint8 requested_lte_band[SIZE_LTE_BAND];
+}custom_factory_rac_erac_context_struct;
+#endif
+
+typedef struct {
+ kal_uint8 factory_dynamic_band;
+ rat_enum factory_change_rat;
+ #if defined(__GSM_RAT__) || defined(__UMTS_RAT__)
+ custom_factory_ugrac_context_struct ugrac;
+ #endif
+ #if defined(__LTE_RAT__)
+ custom_factory_rac_erac_context_struct erac;
+ #endif /* __LTE_RAT__ */
+ kal_uint8 initial_lte_call;
+}custom_factory_band_context_struct;
+#endif /* __TC01__ */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool high_prio_timer_config;
+} l4crac_high_prio_search_timer_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool is_disable_integrity_check; //KAL_TRUE to disable integirty check
+ } l4crac_set_save_rac_preference_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool ims_pdn_activation_ongoing;
+ } l4crac_ims_pdn_activation_req_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ecall_registration_state_enum ecall_reg_state;
+} l4crac_set_ecall_registration_req_struct;
+#endif /* (__ECALL_SUPPORT__) || (__NG_ECALL_SUPPORT__) */
+typedef rac_gmss_set_allowed_mcc_list_req_struct l4crac_set_allowed_mcc_list_req_struct;
+
+typedef rac_gmss_set_allowed_mcc_list_cnf_struct l4crac_set_allowed_mcc_list_cnf_struct;
+#endif /* _L4C2RAC_STRUCT_H */
+
diff --git a/mcu/protocol/interface/l4/l4c2smu_struct.h b/mcu/protocol/interface/l4/l4c2smu_struct.h
new file mode 100644
index 0000000..807e34f
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c2smu_struct.h
@@ -0,0 +1,1149 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4c2smu_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+
+/********************************************************************************
+* 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 : l4c2smu_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _L4C2SMU_STRUCT_H
+#define _L4C2SMU_STRUCT_H
+
+#include "ps_public_struct.h"
+#include "ps2sim_struct.h"
+#include "ps2sat_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "device.h"
+#include "l4c_common_enum.h"
+#include "sim_public_enum.h"
+#include "sim_ps_enum.h"
+#include "smu_def.h"
+#include "smu_common_enums.h"
+#include "smu_tmo_sml.h"
+#include "rmmi_common_enum.h"
+#include "custom_nvram_extra.h"
+#include "custom_nvram_sec.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums.h"
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+#include "l5_l4c_enums.h"
+#include "l5_l4c_struct.h"
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ power_on_status_enum poweron_mode;//add for system error with exception handle
+} l4csmu_start_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ l4c2smu_res_enum response;
+ kal_bool cause_present;
+ sim_cmd_result_enum cause;
+ smu_chv1_phonelock_status_enum chv1_phonelock_status;
+ sim_lp_struct lp[2];
+ rmmi_err_id_enum rmmi_error_cause;
+ sim_chv_info_struct chv_info;
+ sim_ecc_struct ecc;
+ kal_uint8 is_valid_rat_mode; //mtk01616_110315
+ kal_uint8 rat_mode; //RAT mode setting value in EF_RAT
+ sim_additional_error_cause_enum additional_error_cause;
+ kal_bool is_sim_disable;
+} l4csmu_start_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ smu_security_type_enum type;
+ sim_security_operation_enum op;
+ kal_uint8 key1[SML_MAX_SUPPORT_KEY_LEN];
+ kal_uint8 key2[SML_MAX_SUPPORT_KEY_LEN];
+ kal_uint8 channel_id;
+} l4csmu_security_req_struct, l4csmu_app_security_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ smu_security_type_enum type;
+ kal_uint32 cphs_retry_count; /* Only for CPHS Locks */
+ l4c2smu_res_enum response;
+ kal_bool cause_present;
+ sim_cmd_result_enum cause;
+ rmmi_err_id_enum rmmi_error_cause;
+ sim_chv_info_struct chv_info;
+ kal_uint8 channel_id;
+} l4csmu_security_cnf_struct, l4csmu_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];
+#ifdef __SIM_MULTI_PIN__
+ kal_uint8 pin_status_data[SIM_MAX_PIN_DO_SIZE];
+#endif
+} l4csmu_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];
+} l4csmu_event_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ uicc_app_type_enum app_type;
+} l4csmu_app_start_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ uicc_app_type_enum app_type;
+ kal_uint8 channel_id;
+ kal_uint16 result;
+} l4csmu_app_start_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ sml_cat_enum category; /* sml_cat_enum */
+ sml_op_enum op; /* sml_op_enum */
+ kal_uint8 key[CAT_KEY_MAX_SUPPORT_LEN];
+ kal_uint8 len; /* valid bytes in data[] */
+ kal_uint8 data[10]; /* the data for add command */
+} l4csmu_set_personalization_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ sml_cat_enum category; /* sml_cat_enum */
+ sml_op_enum op; /* sml_op_enum */
+ kal_bool result;
+ sml_state_enum state; /* sml_state_enum */
+ kal_uint32 retry_count;
+ kal_uint8 num_of_sets; /* number of sets in this category */
+ kal_uint8 space_of_sets;/* number of empty sets in this category */
+} l4csmu_set_personalization_cnf_struct;
+
+#ifdef __CARRIER_RESTRICTION__
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ smu_crrst_op_enum op;
+ kal_uint8 key[SML_MAX_SUPPORT_KEY_LEN];
+ kal_uint8 list;
+ smu_crrst_cat_enum category;
+ kal_uint8 len; /* valid bytes in data[] */
+ kal_uint8 data[23]; /* the data for add, remove command */
+ kal_uint8 multi_sim_policy;
+ kal_uint8 allowed_carriers_prioritized;
+} l4csmu_set_carrier_restriction_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ smu_crrst_cat_enum category;
+ smu_crrst_op_enum op;
+ kal_bool result;
+} l4csmu_set_carrier_restriction_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_carrier_restriction_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ smu_crrst_state_enum crrst_state;
+ kal_uint8 multi_sim_policy;
+ kal_uint8 allowed_carriers_prioritized;
+ smu_carrier_restriction_list_struct white_list;
+ smu_carrier_restriction_list_struct black_list;
+} l4csmu_carrier_restriction_status_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 algo_type;
+ kal_uint32 max_retry_count;
+ kal_uint8 crrst_hck[NVRAM_SML_S_MAX_SUPPORT_HCK_LEN];
+ kal_uint8 crrst_salt[NVRAM_SML_S_MAX_SUPPORT_SALT_LEN];
+ kal_uint8 crrst_inter_cnt[NVRAM_SML_S_MAX_SUPPORT_INTER_CNT_LEN];
+} l4csmu_set_crrst_secure_data_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_set_crrst_secure_data_cnf_struct;
+#endif
+
+// TMO SML
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_get_shared_key_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint8 envelope_type;
+ kal_uint32 encrypted_key_len;
+ kal_uint8 encrypted_key[SML_TMO_MAX_ENCRYPTED_KEY_LENGTH];
+} l4csmu_get_shared_key_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint16 slb_len;
+} l4csmu_update_slb_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint16 rmmi_error_cause;
+} l4csmu_update_slb_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_reset_slb_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint16 rmmi_error_cause;
+} l4csmu_reset_slb_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_get_slb_version_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint8 version[SML_TMO_SIZE_OF_VERSION];
+} l4csmu_get_slb_version_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_get_sim_lock_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint8 lock_state;
+ kal_uint32 unlock_time_left;
+ kal_uint8 num;
+ kal_uint8 sim_plmn_gid[SML_TMO_SIZE_OF_MCC_MNC+SML_TMO_SIZE_OF_GID];
+} l4csmu_get_sim_lock_status_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_get_modem_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint16 length;
+ kal_uint8 blob[2048];
+} l4csmu_get_modem_config_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_get_api_version_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 api_version[SML_TMO_SIZE_OF_API_VERSION];
+ kal_bool result;
+} l4csmu_get_api_version_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 nw_time_zone;
+ nw_time_zone_time_struct nw_time;
+} l4csmu_update_nw_time_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sml_event_enum event;
+} l4csmu_sml_event_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ smu_sim_access_cmd_enum cmd;
+ kal_uint16 fileid;
+ kal_uint8 p1;
+ kal_uint8 p2;
+ kal_uint8 p3;
+ kal_uint8 data[255];
+ kal_uint8 pathid[4];
+ kal_uint8 pathid_length;
+ kal_uint8 channel_id;
+} l4csmu_sim_access_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 sw1;
+ kal_uint8 sw2;
+ kal_uint16 length;
+ kal_uint8 res_data[256+1];
+ l4c2smu_res_enum response;
+ kal_bool cause_present;
+ sim_cmd_result_enum cause;
+} l4csmu_sim_access_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_file_index_enum file_idx;
+ l4c_source_id_enum src_id;
+ kal_uint8 idx;
+ smu_plmnsel_op_enum op;
+ kal_uint8 plmn_data[5];
+} l4csmu_plmn_sel_write_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ l4c2smu_res_enum response;
+ kal_bool cause_present;
+ sim_cmd_result_enum cause;
+} l4csmu_plmn_sel_write_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 currency_code[3];
+ kal_uint8 puct_data[18];
+} l4csmu_puct_write_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ l4c2smu_res_enum response;
+ kal_bool cause_present;
+ sim_cmd_result_enum cause;
+} l4csmu_puct_write_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_puct_read_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ l4c2smu_res_enum response;
+ kal_bool cause_present;
+ sim_cmd_result_enum cause;
+ kal_uint8 currency_code[3];
+ kal_uint8 puct_data[18];
+} l4csmu_puct_read_cnf_struct;
+
+
+#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 !*/
+/* 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
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ sim_dn_enum dn_type;
+ kal_uint8 switch_on;
+} l4csmu_dial_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ l4c2smu_res_enum response;
+ kal_bool cause_present;
+ sim_cmd_result_enum cause;
+} l4csmu_dial_mode_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_spn_valid; // SPN
+ kal_uint8 is_spn_RPLMN_required;
+ kal_uint8 spn[LEN_OF_SPN];
+ kal_uint8 is_opname_valid; // OPN
+ kal_uint8 opname[LEN_OF_OPNAME + 1];
+ kal_uint8 is_sopname_valid; // sOPN
+ kal_uint8 sopname[11];
+ kal_uint8 no_msisdn; // MSISDN
+ l4csmu_addr_struct msisdn[2];
+ kal_uint8 no_info_num; // Information Numbers
+ l4csmu_info_num_struct *info_num;
+ kal_uint8 is_valid_csp;
+ kal_uint8 csp[22]; // Custom Service Profile
+ kal_uint8 is_puct_valid;
+ kal_uint8 ef_puct[5];
+ kal_uint8 is_autolock_enable; /* SML */
+ kal_uint8 autolock_result; /* SML */
+ kal_uint8 autolock_remain; /* SML */
+ /* Acting HPLMN */ /* mtk01488 */
+ kal_bool is_valid_ef_acting_hplmn;
+ kal_uint8 ef_acting_hplmn[3];
+ kal_uint8 digits_of_mnc;
+ kal_bool is_usim;
+ kal_bool is_valid_ef_ehplmn;
+ kal_uint8 num_of_ehplmn;
+ kal_uint8 ef_ehplmn[MAX_EHPLMN_EF_LEN];
+} l4csmu_mmi_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_sml_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ sml_state_enum state[7];
+ kal_uint32 retry_count[7];
+ kal_uint8 autolock_count[7];
+ kal_uint8 num_of_sets[7];
+ kal_uint8 total_size_of_cat[7];
+ sml_key_state_enum key_state[7];
+ kal_uint8 ef_imsi[8];
+ kal_uint8 is_valid_gid1;
+ kal_uint8 ef_gid1;
+ kal_uint8 is_valid_gid2;
+ kal_uint8 ef_gid2;
+ kal_uint8 digits_of_mnc;
+} l4csmu_sml_status_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool cipher_ind; //20050202 Benson add for MMI cipher indication display
+ /* Johnny: cipher_ind is useless now, L4C will use l4csmu_get_cipher_ind_status() to get cipher_ind status from SMU */
+ kal_uint8 is_valid_rat_mode; //To indicare RAT Mode is valid.
+ kal_uint8 rat_mode; //RAT mode setting value to overwrite
+ kal_bool is_uicc_activated;
+} l4csmu_mmrr_ready_ind_struct;
+
+#ifdef __SMS_DEPERSONALIZATION__
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 length; //length of peer buf data; unit:byte
+ kal_uint8 access_id;
+} l4csmu_sms_depersonalization_req_struct; //Kinki: JRD require. [MAUI_01255000]
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool response; //Kinki: kal_bool
+ kal_bool cause_present; //present only when response is FALSE
+ smu_sms_depersonalization_enum cause;
+ kal_uint16 length; //length of peer buf data; unit:byte
+ kal_uint8 access_id; //SMU piggy-back
+} l4csmu_sms_depersonalization_cnf_struct; //Kinki: JRD require. [MAUI_01255000]
+
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 uicc_unlock_code;
+} l4csmu_uicc_unlock_code_ind_struct;
+
+#ifdef __SAT__
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 bearer_type;
+} l4csat_open_channel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool res;
+} l4csat_open_channel_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res; /* sat_terminal_res_enum */
+ kal_uint8 cause; /* sat_additional_info_for_res_enum */
+} l4csmu_sat_open_channel_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 state;
+} l4csmu_sat_notify_mmi_ind_struct;
+
+typedef struct {
+ kal_uint8 context_id;
+ kal_uint8 name_length;
+ kal_uint8 name_dcs;
+ kal_uint8 authentication_type;
+ kal_uint8 name[32];
+ kal_uint8 user_name[16];
+ kal_uint8 password[16];
+ kal_uint8 dns[4];
+ kal_uint8 apn [100];
+ kal_uint8 apn_length;
+ sat_gprs_qos_struct req_qos;
+} gprs_data_account_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ gprs_data_account_struct gprs_data_account;
+} l4csat_set_gprs_data_account_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 cause;
+} l4csat_set_gprs_data_account_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sat_csd_bearer_para_struct bearer_para;
+ 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;
+} l4csat_csm_open_csd_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sat_csd_bearer_para_struct bearer_para;
+} l4csat_csm_bearer_info_ind_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause; /* cm_enum_cause */
+} l4csat_csm_open_csd_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} l4csat_cc_call_disc_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause; /* cm_enum_cause */
+} l4csat_cc_call_disc_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause; /* cm_enum_cause */
+} l4csat_cc_call_disc_ind_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+} l4csmu_sat_send_data_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res; /* sat_terminal_res_enum */
+ kal_uint8 cause; /* sat_additional_info_for_res_enum */
+} l4csmu_sat_send_data_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+} l4csmu_sat_recv_data_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res; /* sat_terminal_res_enum */
+ kal_uint8 cause; /* sat_additional_info_for_res_enum */
+} l4csmu_sat_recv_data_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+} l4csmu_sat_close_data_req_struct;
+
+// Nick start
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 nw_acct_id;
+ kal_bool is_addr_valid;
+ kal_uint8 size_of_address;
+ kal_uint8 addr[MAX_SIM_ADDR_BCD_LEN];
+ kal_bool is_subaddr_valid;
+ kal_uint8 size_of_subaddr;
+ kal_uint8 subaddr[MAX_SIM_ADDR_BCD_LEN];
+ kal_bool is_username_valid;
+ kal_uint8 no_username;
+ kal_uint8 username[16];
+ kal_uint8 dcs_of_username;
+ kal_bool is_passwd_valid;
+ kal_uint8 no_passwd;
+ kal_uint8 passwd[16];
+ kal_uint8 dcs_of_passwd;
+ kal_bool is_local_addr_valid;
+ kal_uint8 no_local_addr;
+ kal_uint8 local_addr[16];
+ kal_bool is_dest_addr_valid;
+ kal_uint8 no_dest_addr;
+ kal_uint8 dest_addr[16];
+ sat_csd_bearer_para_struct csd_bearer;
+} l4csmu_sat_set_csd_prof_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+// sat_csd_bearer_para_struct csd_bearer;
+} l4csmu_sat_set_csd_prof_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 nw_acct_id;
+ kal_bool is_apn_valid;
+ kal_uint8 apn_length;
+ kal_uint8 apn[50];
+ kal_bool is_username_valid;
+ kal_uint8 no_username;
+ kal_uint8 username[16];
+ kal_uint8 dcs_of_username;
+ kal_bool is_passwd_valid;
+ kal_uint8 no_passwd;
+ kal_uint8 passwd[16];
+ kal_uint8 dcs_of_passwd;
+ kal_bool is_local_addr_valid;
+ kal_uint8 no_local_addr;
+ kal_uint8 local_addr[16];
+ kal_bool is_dest_addr_valid;
+ kal_uint8 no_dest_addr;
+ kal_uint8 dest_addr[16];
+ sat_gprs_bearer_para_struct gprs_bearer;
+} l4csmu_sat_set_gprs_prof_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+// sat_gprs_bearer_para_struct gprs_bearer;
+} l4csmu_sat_set_gprs_prof_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 bearer_type;
+ sat_gprs_bearer_para_struct gprs_bearer;
+ sat_csd_bearer_para_struct csd_bearer;
+} l4csmu_sat_bearer_para_req_struct ;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 additional_info;
+} l4csmu_sat_open_channel_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 state;
+} l4csmu_sat_channel_disc_evdl_ind_struct;
+
+#endif // __SAT__
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 nonce_len;
+ kal_uint8 nonce[256]; //Random String: 80 byte
+} l4csmu_ut_set_nonce_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 unlock_code;
+ kal_uint16 sig_len;
+ kal_uint8 sig[512]; //sig(B64): 344 byte + 1 byte('\0')
+} l4csmu_ut_sig_verify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_sml_get_lock_codes_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 num_of_sets[SML_SUPPORT_CAT_SIZE];
+ kal_uint8 code_cat_n[SML_CFG_CAT_N_SIZE];
+ kal_uint8 code_cat_ns[SML_CFG_CAT_NS_SIZE];
+ kal_uint8 code_cat_sp[SML_CFG_CAT_SP_SIZE];
+ kal_uint8 code_cat_c[SML_CFG_CAT_C_SIZE];
+ kal_uint8 code_cat_sim[SML_CFG_CAT_SIM_SIZE];
+ kal_uint8 code_cat_ns_sp[SML_CFG_CAT_NS_SP_SIZE];
+ kal_uint8 code_cat_sim_c[SML_CFG_CAT_SIM_C_SIZE];
+} l4csmu_sml_get_lock_codes_cnf_struct;
+
+typedef struct {
+ kal_uint8 algo_type;
+ kal_uint8 key[CAT_KEY_MAX_SUPPORT_LEN];
+ kal_uint8 salt[NVRAM_SML_S_MAX_SUPPORT_SALT_LEN];
+ kal_uint8 iter_cnt[NVRAM_SML_S_MAX_SUPPORT_INTER_CNT_LEN];
+} l4csmu_set_key_data_struct;
+
+typedef union
+{
+ kal_uint32 max_retry_count;
+ l4csmu_set_key_data_struct key_data;
+ kal_uint8 key_state;
+} l4csmu_set_custom_data_union;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ sml_cat_enum category;
+ sml_custom_op_enum op;
+ l4csmu_set_custom_data_union data;
+} l4csmu_set_custom_personalization_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_set_custom_personalization_cnf_struct;
+
+//MSG_ID_L4CSMU_OP129_UPDATE_SIMLOCK_SETTING_REQ
+typedef struct {
+ LOCAL_PARA_HDR
+
+ l4c_source_id_enum src_id;
+ kal_bool is_last_data;
+ kal_uint16 data_offset;
+ kal_uint16 data_len;
+ kal_uint8 lock_setting[1000];
+}l4csmu_op129_update_simlock_setting_req_struct;
+
+//MSG_ID_L4CSMU_OP129_UPDATE_SIMLOCK_SETTING_CNF
+typedef struct {
+ LOCAL_PARA_HDR
+
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint16 rmmi_error_cause;
+}l4csmu_op129_update_simlock_setting_cnf_struct;
+
+// MSG_ID_L4CSMU_OP129_GET_SIMLOCK_DATA_REQ
+typedef struct {
+ LOCAL_PARA_HDR
+
+ l4c_source_id_enum src_id;
+ kal_uint8 list_type;
+}l4csmu_op129_get_simlock_data_req_struct;
+
+// MSG_ID_L4CSMU_OP129_GET_SIMLOCK_DATA_CNF
+typedef struct {
+ LOCAL_PARA_HDR
+
+ l4c_source_id_enum src_id;
+ kal_uint8 list_type;
+ kal_uint16 triplet_number[SML_OP129_CAT_MAX];
+ kal_uint8 simlock_data[2048];
+}l4csmu_op129_get_simlock_data_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint16 slb_len;
+} l4csmu_sl_update_blob_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint16 rmmi_error_cause;
+} l4csmu_sl_update_blob_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_sl_get_sim_lock_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint8 lock_state;
+} l4csmu_sl_get_sim_lock_status_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 sml_lock_rule;
+ kal_uint16 sml_lock_sub_rule;
+ kal_uint8 sml_device_lock_status;
+ kal_uint8 sml_lock_rule_policy;
+ kal_uint8 sml_state_is_valid_sim;
+} l4csmu_sml_lock_status_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 rule;
+ kal_uint16 sub_rule;
+} l4csmu_update_gblob_lock_rule_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_update_gblob_lock_rule_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 op;
+ kal_uint16 gblob_data_len;
+ kal_uint8 gblob_data[2048];
+} l4csmu_update_gblob_data_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_update_gblob_data_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 op;
+ kal_uint8 dev_key_len;
+ kal_uint8 dev_key[SML_GBLOB_SIZE_OF_DEV_HCK];
+ kal_uint8 new_lock_state;
+} l4csmu_gblob_dev_lock_verify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_gblob_dev_lock_verify_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 dev_algo_type;
+ kal_uint8 dev_hck[SML_GBLOB_SIZE_OF_DEV_HCK];
+ kal_uint32 dev_max_retry_cnt;
+ kal_uint8 dev_salt[SML_GBLOB_SIZE_OF_DEV_SALT];
+ kal_uint8 dev_inter_cnt[SML_GBLOB_SIZE_OF_DEV_INTCNT];
+} l4csmu_update_gblob_dev_lock_algo_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_update_gblob_dev_lock_algo_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 slot_id;
+ kal_uint8 imei[16];
+} l4csmu_update_gblob_imei_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_update_gblob_imei_cnf_struct;
+
+#ifdef __CUST_SML_RULE__
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 cust_code;
+ kal_uint8 cust_rule;
+} l4csmu_update_gblob_cust_rule_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_update_gblob_cust_rule_cnf_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_get_gblob_dev_lock_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 lock_state;
+ kal_uint8 dev_algo;
+ kal_uint32 max_retry_count;
+ kal_uint32 remain_retry_count;
+} l4csmu_get_gblob_dev_lock_status_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ dsml_simlock_data_struct simlock_data;
+} smu_ut_dynamic_simmelock_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ dsml_result_enum result;
+} smu_ut_dynamic_simmelock_cnf_struct;
+
+/* TMO Movial Solution */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 unlock_req_type;
+ kal_uint8 imsi[TMO_RSU_IMSI_SIZE];
+ kal_uint8 imei[TMO_RSU_IMEI_SIZE];
+} l4csmu_tmo_rsu_create_unlock_msg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint16 raw_len;
+ kal_uint8 imei[TMO_RSU_IMEI_SIZE];
+ kal_uint8 raw_msg[TMO_MAX_MSG_LEN];
+} l4csmu_tmo_rsu_process_msg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+} l4csmu_tmo_rsu_get_sml_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 imei[TMO_RSU_IMEI_SIZE];
+} l4csmu_tmo_rsu_get_reg_msg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+} l4csmu_tmo_rsu_create_unlock_msg_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+} l4csmu_tmo_rsu_process_msg_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 lock_response[TMO_RSU_LOCK_STATE_RESPONSE_BLOB_SIZE];
+} l4csmu_tmo_rsu_get_sml_status_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+} l4csmu_tmo_rsu_get_reg_msg_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 rsu_version_str[8];
+} l4csmu_tmo_rsu_get_adapter_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint16 blob_length;
+ kal_uint8 adapter_config[256];
+} l4csmu_tmo_rsu_get_adapter_config_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ l4c_source_id_enum src_id;
+ kal_uint16 data_len;
+ kal_uint8 data[SML_TMO_MOVIAL_MAX_BLOB_SIZE];
+} l4csmu_tmo_rsu_update_blob_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ kal_uint16 rmmi_error_cause;
+} l4csmu_tmo_rsu_update_blob_cnf_struct;
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 num_of_black_list;
+ kal_uint8 black_list[MAX_NW_BLACK_LIST*3];
+} l4csmu_set_nw_black_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nw_black_list_operator_result_enum result;
+ kal_bool black_list_lock_state;
+} l4csmu_set_nw_black_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool black_list_lock_state;
+ kal_bool card_error;
+ kal_bool is_init;
+ kal_uint8 num_of_black_list;
+ kal_uint8 black_list[MAX_NW_BLACK_LIST*3];
+} l4csmu_nw_black_list_state_ind_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ sml_cat_enum category;
+ kal_uint8 salt_length;
+ kal_uint16 hck_length;
+ kal_uint32 iter_count;
+ kal_uint8 ctrl_key_str[2*SML_MAX_SUPPORT_KEY_LEN + 1];
+} l4csmu_generate_hck_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_generate_hck_cnf_struct;
+
+#endif
+
+
+
diff --git a/mcu/protocol/interface/l4/l4c2smu_vzw_struct.h b/mcu/protocol/interface/l4/l4c2smu_vzw_struct.h
new file mode 100644
index 0000000..f6d98a2
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c2smu_vzw_struct.h
@@ -0,0 +1,125 @@
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * l4c2smu_vzw_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * This file defines the data structure used between L4C and SMU reardign to
+ * VZW feature
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+#ifndef _L4C2SMU_VZW_STRUCT_H
+#define _L4C2SMU_VZW_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "l4c_common_enum.h"
+#include "kal_general_types.h"
+#include "custom_sml.h"
+#include "sml_public_def.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_vzw_rsu_initiate_req_struct;
+
+typedef struct {
+ kal_uint8 msg_type;
+ kal_uint8 imei[15];
+ kal_uint8 major_ver;
+ kal_uint8 minor_ver;
+ kal_uint8 session_id[8];
+ kal_uint8 max_major_ver;
+ kal_uint8 max_minor_ver;
+} sml_vzw_rsu_req_msg_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ sml_vzw_rsu_req_msg_struct request_msg; // 1 + 15 + 1 + 1 + 8 + 1 + 1
+ kal_uint8 hmac[32];
+} l4csmu_vzw_rsu_initiate_cnf_struct;
+
+typedef struct {
+ kal_uint8 major_ver;
+ kal_uint8 minor_ver;
+ kal_uint8 protection_algo;
+ kal_uint8 nw_lock_op;
+ kal_uint8 imei[15];
+ kal_uint8 timestamp[8];
+ kal_uint8 nw_num;
+ kal_uint8 nw_list[SML_VZW_RSU_NW_LIST_LEN];
+ kal_uint8 ns_num;
+ kal_uint8 ns_list[SML_VZW_RSU_NS_LIST_LEN];
+ kal_uint8 sp_num;
+ kal_uint8 sp_list[SML_VZW_RSU_SP_LIST_LEN];
+ kal_uint8 ehplmn_num;
+ kal_uint8 ehplmn_list[SML_VZW_RSU_EHPLMN_LIST_LEN];
+ kal_uint8 signature[256]; //Used for RSA based integrity checking
+} sml_vzw_rsu_rsp_msg_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint16 data_len;
+ kal_uint8 data[MAX_VZW_RSU_RSP_SIZE];
+} l4csmu_vzw_rsu_response_req_struct;
+
+typedef struct {
+ kal_uint8 msg_type;
+ kal_uint8 imei[15];
+ kal_uint8 major_ver;
+ kal_uint8 minor_ver;
+ kal_uint8 nw_lock_op;
+ kal_uint8 error_code;
+ kal_uint8 timestamp[8];
+} sml_vzw_rsu_status_msg_struct;
+
+typedef struct {
+ sml_vzw_rsu_status_msg_struct status_msg;
+ kal_uint8 hmac[32];
+} smu_vzw_rsu_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ smu_vzw_rsu_status_ind_struct status_ind;
+} l4csmu_vzw_rsu_response_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ smu_vzw_rsu_delay_timer_op_enum mode;
+} l4csmu_vzw_rsu_delay_timer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ sml_vzw_rsu_unlock_timer_resp_enum resp;
+ kal_uint16 unlock_timer;
+} l4csmu_vzw_rsu_delay_timer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4csmu_vzw_rsu_data_reset_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4csmu_vzw_rsu_data_reset_cnf_struct;
+
+
+#endif /* _L4C2SMU_VZW_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/l4c2t30_enums.h b/mcu/protocol/interface/l4/l4c2t30_enums.h
new file mode 100644
index 0000000..6ea3476
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c2t30_enums.h
@@ -0,0 +1,142 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4c2t30_enums.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for enum definition between T30 and L4C.
+ *
+ * Author:
+ * -------
+ *
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+#ifndef _L4C2T30_ENUMS_H
+#define _L4C2T30_ENUMS_H
+
+typedef enum {
+ ACTION_SET,
+ ACTION_QUERY,
+ ACTION_TEST
+} l4c_t30_action_enum;
+
+typedef enum {
+ CODE_CONNECT,
+ CODE_ERROR,
+ CODE_NOCARRIER,
+ CODE_OK,
+ CODE_FCERROR,
+ NO_CODE
+}l4c_t30_act_rsp_enum;
+
+
+typedef enum {
+ FIP_INIT_PARA=0x1, /* initialize all parameters */
+ FCC_DCE_CAP=0x2, /* DCE capability */
+ FIS_NEG_CAP=0x4, /* current session negotiating position*/
+ FCS_CURRENT_CAP=0x8, /* current sessioni parameters(read only) */
+ FLP_DOC_AVAIL=0x10, /*indicate documet available for polling */
+ FSP_POLL_ENABLE=0x20,
+ FNR_REPORT_PARAM= 0x40,
+ FIE_PI_ENABLE= 0x80,
+ FPS_PAGE_STATUS= 0x100,
+ FCQ_COPY_QUALITY= 0x200,
+ FIT_INACT_TO = 0x400,
+ FPP_PKT_PROCO= 0x800,
+ FBO_BIT_ORDER = 0x1000,
+ FEA_EOL_ALIGN = 0x2000,
+ FCR_RECV_CAP = 0x4000,
+ FBU_HDLC_REPORT = 0x8000,
+ FAP_ADD_POLL_CAP = 0x10000,
+ FRQ_RECV_Q_THRESD = 0x20000,
+ FCT_PHC_TO = 0x40000,
+ FHS_HANG_CODE = 0x80000,
+ FMS_MIN_SPEED = 0x100000,
+ FCL_CARRIER_LOSS = 0x200000,
+ FDD_ESC_REPLACE = 0x400000,
+ FFC_FORMAT_CONV = 0x800000,
+ FBS_BUFF_SIZE = 0x1000000,
+ FRY_CTC_RETRY = 0x2000000,
+ FET_POST_CMD = 0x4000000
+} rw_param_enum;
+
+typedef enum {
+ FLI_LOCAL_ID = 0x1,
+ FPI_LOCAL_ID = 0x2,
+ FNS_NON_STAND = 0x4,
+ FSA_SUB_ADD = 0x8,
+ FPW_PWD = 0x10,
+ FPA_SEL_ADD = 0x20
+} rw_str_param_enum;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#endif
+
diff --git a/mcu/protocol/interface/l4/l4c2t30_struct.h b/mcu/protocol/interface/l4/l4c2t30_struct.h
new file mode 100644
index 0000000..f724266
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c2t30_struct.h
@@ -0,0 +1,354 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4c2t30_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between T30 and L4C.
+ *
+ * Author:
+ * -------
+ *
+ *=============================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+
+#ifndef _L4C2T30_STRUCT_H
+#define _L4C2T30_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct
+{
+ kal_bool is_present; /* is the parameter available */
+ kal_uint8 para_value; /* the parameter value */
+
+}t30_sub_para_struct;
+
+
+/* the structure defines the t30 session parameters. only valid in Class2. */
+typedef struct
+{
+ t30_sub_para_struct DF;
+ t30_sub_para_struct VR;
+ t30_sub_para_struct WD;
+ t30_sub_para_struct LN;
+
+}t30_fdt_subparam_struct;
+
+
+
+typedef struct
+{
+ t30_sub_para_struct vrc; /* vertical resolution conversion */
+ t30_sub_para_struct dfc; /* data format conversion */
+ t30_sub_para_struct lnc; /* page length conversion */
+ t30_sub_para_struct wdc; /* page width conversion */
+
+}format_conv_struct;
+
+
+typedef struct
+{
+ t30_sub_para_struct pgl; /* percentage of good line */
+ t30_sub_para_struct cbl; /* max tolerable number of consecutive bad lines */
+
+}recv_quality_thresd_struct;
+
+
+typedef struct
+{
+ t30_sub_para_struct sub; /* SUB enable */
+ t30_sub_para_struct sep; /* SEP enable */
+ t30_sub_para_struct pwd; /* PWD enable */
+
+}add_poll_cap_struct;
+
+
+typedef struct
+{
+ kal_uint8 time; /* timeout time value */
+ kal_uint8 action; /* action value */
+
+}dte_inactive_struct;
+
+
+typedef struct
+{
+ t30_sub_para_struct rq; /* receive copy quality enable */
+ t30_sub_para_struct tq; /* transmit copy quality enable */
+
+}copy_quality_struct;
+
+
+typedef struct
+{
+ t30_sub_para_struct rpr; /* receiver parameters report */
+ t30_sub_para_struct tpr; /* transmitter paramerters report */
+ t30_sub_para_struct idr; /* ID string report */
+ t30_sub_para_struct nsr; /* non-standard frames report */
+
+}cap_report_struct;
+
+
+typedef struct
+{
+ t30_sub_para_struct VR;
+ t30_sub_para_struct BR;
+ t30_sub_para_struct WD;
+ t30_sub_para_struct LN;
+ t30_sub_para_struct DF;
+ t30_sub_para_struct EC;
+ t30_sub_para_struct BF;
+ t30_sub_para_struct ST;
+ t30_sub_para_struct JP;
+
+}t30_session_subparam_struct;
+
+
+typedef struct
+{
+ kal_uint8 string[20]; /* local station ID string */
+ kal_uint8 nsf_string[90]; /* pass-through non-standard octet string */
+}t30_str_param_struct;
+
+
+typedef struct
+{
+ t30_session_subparam_struct session_param ; /* session subparameter*/
+ kal_uint8 enable_polled; /* indecate document available for remotes's pooling*/
+ kal_uint8 enable_polling;
+ cap_report_struct report_param ; /* negotiation reporting enable */
+ kal_uint8 PI_enable ; /* procedure interrupt enable*/
+ kal_uint8 page_status; /* page transfer status */
+ copy_quality_struct copy_quality;
+ dte_inactive_struct inactivity_timer; /*DTE inactivity timer*/
+ kal_uint8 packet_protocol; /* Packet protocol control */
+ kal_uint8 data_bit_order; /* Phace C data bit order */
+ kal_uint8 EOL_align; /* phace C received EOL alignment */
+ kal_uint8 cap_to_receive; /* capability to receive */
+ kal_uint8 HDLC_report; /* HDLC frame reporting enable */
+ add_poll_cap_struct add_poll_cap; /*address and polling capability */
+ recv_quality_thresd_struct recv_quality_thresd; /* recive quality threshold */
+ kal_uint8 phase_C_timeout;
+ kal_uint8 hangup_status;
+ kal_uint8 min_speed; /* minimum phace C speed */
+ kal_uint8 carrier_loss_to; /* carrier loss timeout (class 1 ) */
+ kal_uint8 esc_replace_enable; /*double escape charactor replacement (class 1) */
+ format_conv_struct data_format_conver; /* image data format conversion */
+ kal_uint8 buffer_size[2]; /* buffer size, read only*/
+ kal_uint8 CTC_retry_val; /* CTC retry value */
+ kal_uint8 NSF_msg_ind; /* NSF message data indication */
+ kal_uint8 FET_post_cmd; /* end page or document command (only for class 2) */
+
+}t30_rw_param_struct;
+
+
+/* this struct is used for construct the local_param of MSG_ID_L4C_T30_TX_MSG_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mod_value; /* modulation codes */
+ t30_fdt_subparam_struct fdt_subparam; /*session parameters */
+
+}l4c_t30_tx_msg_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mod_value; /* modulation codes */
+}l4c_t30_rx_msg_req_struct;
+
+/* this struct is used for construct the local_param of MSG_ID_L4C_T30_RW_PARAM_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_uint8 serv_class;
+ kal_uint32 rw_param;
+ t30_rw_param_struct t30_rw_param;
+
+}l4c_t30_rw_param_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_uint8 serv_class;
+ kal_uint32 rw_str_param;
+ t30_str_param_struct t30_str_param;
+}l4c_t30_rw_str_param_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 silence_time;
+}l4c_t30_tx_silence_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 silence_time;
+}l4c_t30_rx_silence_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mod_value;
+}l4c_t30_tx_bcs_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mod_value;
+}l4c_t30_rx_bcs_req_struct;
+
+
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result_code;
+}l4c_t30_tx_msg_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result_code;
+}l4c_t30_rx_msg_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result_code;
+}l4c_t30_tx_bcs_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result_code;
+}l4c_t30_rx_bcs_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_bool result_code;
+ kal_uint8 result_str[80];
+
+}l4c_t30_rw_param_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_bool result_code;
+ kal_uint8 result_str[110];
+}l4c_t30_rw_str_param_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result_code;
+}l4c_t30_ready_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result_str[250];
+}l4c_t30_report_param_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 page_status;
+}l4c_t30_tx_ppm_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result_code;
+}l4c_t30_tx_ppm_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+}l4c_t30_transfer_uart_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+ kal_uint8 is_esc_on;
+}l4c_t30_transfer_uart_ind_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/l4c_enl2_struct.h b/mcu/protocol/interface/l4/l4c_enl2_struct.h
new file mode 100644
index 0000000..1f2b3d4
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c_enl2_struct.h
@@ -0,0 +1,78 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+ * ---------
+ * l4c_enl2_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ * Messages and common definitions for L4C-ENL2 interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+
+#ifndef _L4C_ENL2_STRUCT_H_
+#define _L4C_ENL2_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef enum
+{
+ SERVICE_INTERNET = 0, /* internet RB */
+ SERVICE_NUM
+} service_type_enum;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 rlc_latency_in_ms; /* The latency between RLC SDU pretx and RLC ACK received */
+ service_type_enum service_type; /* The latency sampled in certain service type */
+} l4c_4g5g_rlc_latency_update_ind_struct;
+
+typedef l4c_4g5g_rlc_latency_update_ind_struct l4c_nrlcul_latency_update_ind_struct;
+
+typedef l4c_4g5g_rlc_latency_update_ind_struct l4c_erlcul_latency_update_ind_struct;
+
+#endif /* _L4C_ENL2_STRUCT_H_ */
diff --git a/mcu/protocol/interface/l4/l4c_imc_struct.h b/mcu/protocol/interface/l4/l4c_imc_struct.h
new file mode 100644
index 0000000..a63b6da
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c_imc_struct.h
@@ -0,0 +1,67 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+
+#ifndef _L4C_IMC_STRUCT_H
+#define _L4C_IMC_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "ims_common_def.h"
+
+typedef enum
+{
+ DISABLE_RAT_MODE_2G = 0,
+ ENABLE_RAT_MODE_2G = 1
+} rat_operation_enum;
+
+/******************************************************************************/
+
+/* structure */
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_operation_enum rat_operation;
+} l4c_imc_rat_operation_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_cssrvnotif_acceptable; // 1: accept 0: reject
+} l4c_imc_cs_service_notification_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ epsfb_stat_enum state;
+ epsfb_type_enum type;
+} l4c_imc_epsfb_ind_struct;
+
+#endif
diff --git a/mcu/protocol/interface/l4/l4c_nas_sv_struct.h b/mcu/protocol/interface/l4/l4c_nas_sv_struct.h
new file mode 100644
index 0000000..89e12b7
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c_nas_sv_struct.h
@@ -0,0 +1,87 @@
+/*****************************************************************************
+* 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:
+* ---------
+* l4c_nas_sv_struct.h
+*
+* Project:
+* --------
+* UMOLYA
+*
+* Description:
+* ------------
+*
+* Author:
+* -------
+ * -------
+******************************************************************************/
+
+#ifndef _L4C_NAS_SV_STRUCT_H_
+#define _L4C_NAS_SV_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "mm_mmi_enums.h"
+#include "kal_public_defs.h"
+#include "sim_public_enum.h"
+#include "rac_nas_sv_struct.h"
+
+#include "ims_interface_md.h"
+
+typedef rac_nas_sv_event_update_ind_struct rat_tcm_nas_sv_event_update_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ srvcc_status_enum status;
+} l4c_nas_sv_srvcc_status_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ active_nas_enum source_nas;
+ active_nas_enum target_nas;
+
+} rat_tcm_nas_sv_active_nas_update_ind_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/l4c_nrrc_struct.h b/mcu/protocol/interface/l4/l4c_nrrc_struct.h
new file mode 100644
index 0000000..6d02f8b
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c_nrrc_struct.h
@@ -0,0 +1,254 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+ * ---------
+ * l4c_nrrc_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ * Messages and common definitions for L4C-NRRC interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+
+#ifndef _L4C_NRRC_STRUCT_H_
+#define _L4C_NRRC_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_enums.h"
+#include "nrrc_nvram_def.h"
+#include "l4c_common_enum.h"
+#include "l4c_as_inter_core_def.h"
+
+#ifdef __NR_RAT__
+#define MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH NVRAM_EF_NRRC_CUSTOM_ENDC_COMB_WHITE_LIST_MAX_LENGTH
+#else
+#define MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH 2048
+#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_int32 ssRssi_in_qdbm;
+ kal_int32 ssRsrp_in_qdbm;
+ kal_int32 ssRsrq_in_qdb;
+ kal_int32 ssSinr_in_qdb;
+
+ kal_int32 csiRsrp_in_qdbm;
+ kal_int32 csiRsrq_in_qdb;
+ kal_int32 csiSinr_in_qdb;
+
+ kal_uint16 serv_nr_band;
+ l4c_signal_reporting_type_enum signal_report_type;
+ kal_uint8 thres_cross_signal_type; /* Applicable only if is_thres_cross is TRUE.
+ 1 - ssRSRP, 2 - ssRSRQ, 3 - ssRSRP + ssRSRQ, 4 - ssSINR, 5 - RSRP + ssSINR, 6 - ssRSRQ + ssSINR, 7 - All three*/
+ kal_int16 ssSrxlev_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
+ kal_int16 ssSqual_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
+} l4c_nrrc_cell_power_level_ind_struct;
+
+
+
+typedef l4c_4g5g_etws_setting_req_struct l4c_nrrc_etws_setting_req_struct;
+
+typedef l4c_4g5g_etws_information_ind_struct l4c_nrrc_etws_information_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 rcv_tick; /* The time tick when SIB9 is received by NRRC */
+ kal_uint64 timeinfo_utc; /* 0~549755813887 */
+ kal_bool is_day_light_saving_time_valid;
+ kal_uint8 day_light_saving_time; /* 2 bits */
+ kal_bool is_leap_seconds_valid;
+ kal_int16 leap_seconds; /* -127~128 */
+ kal_bool is_localtime_offset_valid;
+ kal_int8 localtime_offset; /* -63~64 */
+} l4c_nrrc_time_info_ind_struct;
+
+
+typedef struct
+{
+ kal_bool enable;
+ kal_uint32 t1; // The period to count number of SCG failure event (seconds)
+ kal_uint8 p1; // The specified number of SCG failure event
+ kal_uint32 t2; // Expired time - when to activate SCG after deactivation (seconds)
+} scg_event_failure_config_struct;
+
+typedef struct
+{
+ kal_bool enable;
+ kal_uint32 t1; // The period to count number of SCG release event (seconds)
+ kal_uint8 p1; // The specified number of SCG release event
+ kal_uint32 t2; // Expired time - when to activate SCG after deactivation (seconds)
+} scg_event_release_config_struct;
+
+typedef union {
+ scg_event_failure_config_struct scg_event_failure_config;
+ scg_event_release_config_struct scg_event_release_config;
+} scg_event_config_union;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool allow_scg_add;
+} l4c_nrrc_endc_deactivate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ scg_event_enum scg_event;
+ scg_event_config_union scg_event_config;
+} l4c_nrrc_scg_event_config_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ scg_event_enum scg_event;
+ kal_bool endc_deactivate;
+ kal_bool allow_scg_add;
+} l4c_nrrc_scg_event_ind_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ set_plmn_freq_operation_enum operation;
+ plmn_id_struct plmn_id;
+ kal_uint8 num_of_freq;
+ NRARFCN freq[MAX_LTE_SET_STORED_NUM];
+} l4c_nrrc_set_plmn_stored_freq_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool vonr_enabled;
+} l4c_nrrc_ims_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_voice_over_ims_ongoing;
+} l4c_nrrc_ims_call_status_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool is_last;
+ ca_band_comb_list_cmd_type_enum cmd;
+ ca_band_comb_list_type_enum type;
+ kal_char ca_comb_list[MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH];
+} l4c_nrrc_ca_band_comb_list_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ ca_band_comb_list_cmd_type_enum cmd;
+ kal_bool result;
+ ca_band_comb_list_type_enum type;
+ kal_char ca_comb_list[MAX_CUSTOM_NR_COMB_LIST_MAX_LENGTH];
+} l4c_nrrc_ca_band_comb_list_cnf_struct;
+
+typedef enum
+{
+ NRRC_L4C_CUSTOM_BAR_LIST_ACTION_ADD = 0,
+ NRRC_L4C_CUSTOM_BAR_LIST_ACTION_DELETE,
+ NRRC_L4C_CUSTOM_BAR_LIST_ACTION_QUERY,
+ NRRC_L4C_CUSTOM_BAR_LIST_ACTION_INVALID = 0xff
+} nrrc_l4c_custom_bar_list_action_enum;
+
+typedef enum
+{
+ NRRC_L4C_CUSTOM_BAR_CAUSE_IDLE_CONNECTED,
+ NRRC_L4C_CUSTOM_BAR_CAUSE_CHECK_NEIGHBOR_SIGNAL
+} nrrc_l4c_custom_bar_cause_enum;
+
+typedef struct
+{
+ kal_uint32 narfcn;
+ kal_uint16 bar_time; // Unit: sec
+} nrrc_l4c_bar_freq_info_struct;
+
+typedef struct
+{
+ kal_uint32 narfcn;
+ kal_uint16 pci;
+ kal_uint16 bar_time; // Unit: sec
+} nrrc_l4c_bar_cell_info_struct;
+
+/* MSG_ID_L4C_NRRC_CUSTOM_BAR_LIST_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ nrrc_l4c_custom_bar_list_action_enum action;
+ nrrc_l4c_custom_bar_cause_enum bar_cause;
+ kal_uint8 bar_freq_num;
+ nrrc_l4c_bar_freq_info_struct bar_freq_info[MAX_L4C_CUSTOM_BAR_FREQ_NUM];
+ kal_uint8 bar_cell_num;
+ nrrc_l4c_bar_cell_info_struct bar_cell_info[MAX_L4C_CUSTOM_BAR_CELL_NUM];
+} l4c_nrrc_custom_bar_list_req_struct;
+
+/* MSG_ID_L4C_NRRC_CUSTOM_BAR_LIST_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ nrrc_l4c_custom_bar_list_action_enum action;
+ nrrc_l4c_custom_bar_cause_enum bar_cause;
+ kal_uint8 bar_freq_num;
+ nrrc_l4c_bar_freq_info_struct bar_freq_info[MAX_L4C_CUSTOM_BAR_FREQ_NUM];
+ kal_uint8 bar_cell_num;
+ nrrc_l4c_bar_cell_info_struct bar_cell_info[MAX_L4C_CUSTOM_BAR_CELL_NUM];
+} l4c_nrrc_custom_bar_list_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_endc_drb_existent;
+ kal_bool is_nr_sa_drb_existent;
+} l4c_nrrc_drb_info_ind_struct;
+
+#endif /* _L4C_NRRC_STRUCT_H_ */
diff --git a/mcu/protocol/interface/l4/l4c_ratdm_struct.h b/mcu/protocol/interface/l4/l4c_ratdm_struct.h
new file mode 100644
index 0000000..fe1178f
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c_ratdm_struct.h
@@ -0,0 +1,173 @@
+/*****************************************************************************
+* 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) 2009
+*
+* 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:
+ * ---------
+ * l4c_ratdm_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct between L4C and RATDM
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _L4C_RATDM_STRUCT_H
+#define _L4C_RATDM_STRUCT_H
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+
+
+/* basic structures for gprs dialup call log */
+
+typedef struct {
+ kal_uint64 tx;
+ kal_uint64 rx;
+ kal_uint8 context_id;
+} single_pdp_call_history_info_struct;
+
+typedef struct {
+ kal_uint8 context_id;
+ kal_bool reset_tx;
+ kal_bool reset_rx;
+} single_pdp_call_history_reset_cmd_struct;
+
+typedef struct {
+ single_pdp_call_history_reset_cmd_struct original_cmd;
+ single_pdp_call_history_info_struct volume_before_reset;
+} single_pdp_call_history_reset_result_struct;
+
+
+
+/* local param structures for L4C/RATDM SAP */
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ kal_uint8 serial_num;
+ kal_uint8 total_context_id;
+ kal_uint8 context_id[MAX_GPRS_DIALUP_NUM];
+} l4c_ps_query_ext_pdp_statistics_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ kal_uint8 serial_num;
+ kal_uint8 total_context_id;
+ single_pdp_call_history_info_struct query_result[MAX_GPRS_DIALUP_NUM];
+} l4c_ps_query_ext_pdp_statistics_rsp_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ kal_uint8 serial_num;
+ kal_uint8 total_reset_num;
+ single_pdp_call_history_reset_cmd_struct reset_cmd[MAX_GPRS_DIALUP_NUM];
+} l4c_ps_reset_ext_pdp_statistics_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ kal_uint8 serial_num;
+ kal_uint8 total_reset_num;
+ single_pdp_call_history_reset_result_struct result[MAX_GPRS_DIALUP_NUM];
+} l4c_ps_reset_ext_pdp_statistics_rsp_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 total_context_id;
+ single_pdp_call_history_info_struct result[MAX_GPRS_DIALUP_NUM];
+} l4c_ps_ext_pdp_statistics_ind_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 context_id;
+} l4c_ratdm_packets_flush_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool ims_call_ongoing;
+} l4c_ratdm_ims_call_status_struct;
+
+#endif /* _L4C_RATDM_STRUCT_H */
+
diff --git a/mcu/protocol/interface/l4/l4c_uagps_cp_struct.h b/mcu/protocol/interface/l4/l4c_uagps_cp_struct.h
new file mode 100644
index 0000000..5ff4a25
--- /dev/null
+++ b/mcu/protocol/interface/l4/l4c_uagps_cp_struct.h
@@ -0,0 +1,150 @@
+/*****************************************************************************
+* 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) 2007
+*
+* 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:
+ * ---------
+ * l4c_uagps_cp_struct.h
+ *
+ * Project:
+ * --------
+ * AGPS
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log:$
+ *
+ * 10 02 2012 adeline.chang
+ * [MOLY00004236] [interface][service][kal]remove stack_ltlcom.h
+ * 20120928_MOLY00004236_Adeline_Remove_stack_ltlcom.h_AGPS.xls.
+ *
+ * 11 08 2011 doug.shih
+ * removed!
+ * .
+ *
+ * 06 09 2011 c-hua.yang
+ * removed!
+ * .
+ *
+ * 05 26 2011 c-hua.yang
+ * removed!
+ * .
+ *
+ * 12 14 2010 c-hua.yang
+ * removed!
+ * ULCS RHR
+ *
+ * removed!
+ * removed!
+ * add to source control recursely
+ *
+ ****************************************************************************/
+
+#ifndef _L4C_UAGPS_CP_STRUCT_H
+#define _L4C_UAGPS_CP_STRUCT_H
+#include "kal_public_api.h"
+#include "kal_general_types.h"
+/**************************************************************
+ * L4C_UAGPS_CP_AGPS_ENABLE_DISABLE_REQ
+ *
+ * AGPS control plane switch on ªº®ÉԥΠenable ³qª¾ ULCS, switch off ªº®ÉÔ disable ³qª¾ ULCS
+ ***************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_bool enable; // KAL_TRUE for enable, KAL_FALSE for disable
+
+} l4c_uagps_cp_agps_enable_disable_req_struct;
+
+/**************************************************************
+ * L4C_UAGPS_CP_AGPS_KEY_UPDATE_REQ
+ *
+ * ±q SS ®³¨ì deciphering key ¤§«á, ±N¨ä¶Çµ¹ ULCS
+ ***************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 sib15_current_deciphering_key[7]; // 56 bits deciphering key form SS Location
+ kal_uint8 sib15_next_deciphering_key[7]; // 56 bits deciphering key form SS Location
+ kal_uint8 sib15_ciphering_key_flag; // key flag form SS Location
+
+} l4c_uagps_cp_agps_key_update_req_struct;
+
+/**************************************************************
+ * L4C_UAGPS_CP_AGPS_NEW_KEY_NEEDED_IND
+ *
+ * ±q SS ®³¨ì deciphering key ¤§«á, ±N¨ä¶Çµ¹ ULCS
+ ***************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+} l4c_uagps_cp_agps_new_key_needed_ind_struct;
+
+
+/**************************************************************
+ * L4C_UAGPS_CP_AGPS_LCOAL_ABORT_TRANSACTION_REQ
+ *
+ * Abort CP transaction when user dial E911 call
+ ***************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+} l4c_uagps_cp_agps_local_abort_transaction_req_struct;
+
+/**************************************************************
+ * L4C_UAGPS_CP_AGPS_TRANSACTION_START_STOP_IND
+ *
+ * Inform GPS manager about CP transaction start
+ ***************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_bool transaction_start;
+
+} l4c_uagps_cp_agps_transaction_start_stop_ind_struct;
+
+#endif /* _L4C_UAGPS_CP_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/mm2mmi_struct.h b/mcu/protocol/interface/l4/mm2mmi_struct.h
new file mode 100644
index 0000000..61b756a
--- /dev/null
+++ b/mcu/protocol/interface/l4/mm2mmi_struct.h
@@ -0,0 +1,480 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mm2mmi_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between MM and MMI.
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * 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 : mm2mmi_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _MM2MMI_STRUCT_H
+#define _MM2MMI_STRUCT_H
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "mm_mmi_enums.h"
+#include "kal_public_defs.h"
+#include "sim_public_enum.h"
+#include "mm_emm_struct.h"
+#include "mmi2mm_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool full_nw_nameP;
+ kal_uint8 full_nw_name_len;
+ kal_uint8 full_nw_name[MAX_NW_NAME_LENGTH];
+ kal_bool short_nw_nameP;
+ kal_uint8 short_nw_name_len;
+ kal_uint8 short_nw_name[MAX_NW_NAME_LENGTH];
+ kal_bool nw_time_zoneP;
+ kal_uint8 nw_time_zone;
+ kal_bool nw_time_zone_timeP;
+ nw_time_zone_time_struct nw_time_zone_time;
+ kal_bool lsa_idP;
+ kal_uint8 lsa_id_len;
+ kal_uint8 lsa_id[3];
+ kal_bool nw_day_light_saving_timeP;
+ kal_uint8 nw_day_light_saving_time;
+ /* MAUI_01664028, mtk02118: added for MMI to exactly know which PLMN the NITZ comes from */
+ plmn_id_struct plmn_id;
+} gmmreg_nw_info_struct; /* This struct shall be the same with l4crac_nw_info_ind_struct. */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ data_speed_support_enum cell_data_speed_support; /* mtk02475: for edge and hspa status */
+ cell_info_and_rat_struct cell_info;
+ kal_bool is_ra_code_valid;
+ kal_bool is_from_cgi_ind;
+} gmmreg_cell_info_update_ind_struct;
+
+/* For GPRS MMI. */
+typedef struct {
+ LOCAL_PARA_HDR
+ gmmreg_ps_service_info_enum current_status; /* gmmreg_ps_service_info_enum */
+} gmmreg_ps_service_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_gsm_conn_exist;
+ gmmreg_cipher_ind_enum gsm_cipher_cond;
+ gmmreg_cipher_ind_enum gprs_cipher_cond;
+} gmmreg_cipher_ind_struct; /* must same as l4crac_cipher_ind_struct */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_dedicated_mode;
+} gmmreg_dedicated_mode_ind_struct; /* must same as l4crac_hz_dedicated_mode_ind_struct */
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status; /* proc_status_enum */
+ mm_cause_enum cause; /* mm_cause_enum */
+ kal_uint8 num_of_hplmn;
+ rac_plmn_list_struct plmn_list;
+} gmmreg_plmn_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status;
+ mm_cause_enum cause;
+ rac_csg_list_struct csg_list;
+} gmmreg_csg_list_cnf_struct;
+
+typedef gmmreg_nw_info_struct gmmreg_nw_info_ind_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+ LOCAL_PARA_HDR
+ rr_suspend_mode_reason_enum rr_service_status;
+}gmmreg_rr_service_status_ind_struct; //20080217
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 no_ecc; //number of ECC list
+ ecc_number_struct ecc_list[MAX_NW_ECC_NUM]; //ECC list
+} gmmreg_nw_ecc_ind_struct;
+//~ __REL5__
+
+typedef struct {
+ LOCAL_PARA_HDR
+ end_session_result_enum result;
+}gmmreg_end_ps_data_session_cnf_struct;
+
+#if defined (__NO_PSDATA_SEND_SCRI__) || defined (__FAST_DORMANCY__)
+typedef struct {
+ LOCAL_PARA_HDR
+ end_session_cause_enum cause;
+}gmmreg_end_ps_data_session_ind_struct;
+#endif
+
+#ifdef __LTE_RAT__
+
+typedef struct {
+ LOCAL_PARA_HDR
+ mm_emm_csfb_paging_id_enum csfb_paging_id; //Paging identity used in CS SERVICE NOTIFICATION
+ kal_bool is_cli_present; //Whether CLI (Calling Line Identification) IE exists or not
+ kal_uint8 cli_len; //Length of CLI
+ kal_uint8 cli[12]; //CLI value Refer to TS 24.008 subclause 10.5.4.9 Calling party BCD number for decoding.
+ kal_bool is_ss_code_present; //Whether SS code IE exists or not
+ kal_uint8 ss_code; //SS code value Refer to TS 29.002 subclause 17.7.5 for decoding.
+ kal_bool is_lcs_ind_present; //Whether LCS indicator IE exists or not
+ kal_uint8 lcs_indicatior; //LCS indicator value; 0x01: MT-LR, Other values: Normal, unspecified in this version of the protocol
+ kal_bool is_lcs_client_id_present; //Whether LCS client identity IE exists or not
+ kal_uint8 lcs_client_id_len; //Length of LCS client identity
+ kal_uint8 lcs_client_id[255]; //LCS client identity value, Refer to TS 29.002 subclause 17.7.13 for decoding.
+}gmmreg_csfb_page_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_accept_paging; //Whether upper layer decides to answer the mobile terminating CS service
+}gmmreg_csfb_page_rsp_struct;
+
+#endif
+typedef struct {
+ LOCAL_PARA_HDR
+ RATCM_RRC_ReleaseCause cause;
+}gmmreg_rrc_conn_rel_cause_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ gmm_nw_feature_support_struct ug_nw_feature;
+} gmmreg_nw_feature_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sat_nw_rej_info_enum op;
+ cell_info_and_rat_struct current_cell;
+ sat_nw_rej_type_enum type;
+ kal_uint8 rej_cause;
+}gmmreg_nw_reject_ind_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_virtual_connected;
+}gmmreg_virtual_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rsim_auth_finish_result_enum result;
+}gmmreg_auth_finish_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rsim_auth_abort_result_enum result;
+}gmmreg_rsim_auth_abort_cnf_struct;
+
+#endif /* __GEMINI__ */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool non_3gpp_emergency_number_indicator; // To indicate non-3gpp nw provided policies IEI information to Upper layers which is extracted from LU accept message, RAU accept message and Attach accept message.
+}gmmreg_non_3gpp_nw_policies_ind_struct;
+
+typedef mm_emm_csfb_result_ind_struct gmmreg_csfb_result_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ mm_cause_source_enum event;
+ mm_cause_enum original_mm_cause;
+ mm_cause_enum converted_mm_cause;
+ kal_bool is_ps_sim_valid;
+ kal_bool is_cs_sim_valid;
+} gmmreg_cause_info_ind_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result; /* 1 : success, 0: failure */
+} gmmreg_set_ecall_registration_cnf_struct;
+
+typedef gmmreg_set_ecall_registration_req_struct gmmreg_ecall_registration_state_ind_struct;
+#endif
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/mm_mmi_enums.h b/mcu/protocol/interface/l4/mm_mmi_enums.h
new file mode 100644
index 0000000..11bc018
--- /dev/null
+++ b/mcu/protocol/interface/l4/mm_mmi_enums.h
@@ -0,0 +1,165 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mm_mmi_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for enum definition MM and MMI/L4.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+
+#ifndef _MM_MMI_ENUMS_H
+#define _MM_MMI_ENUMS_H
+
+typedef enum
+{
+ /* These enums are used between mm-sublayer, AS and MMI */
+ NORMAL_DETACH = 0,
+ POWER_SWITCHED_OFF = 1
+}power_status_enum;
+
+typedef enum
+{
+ GPRS_DETACH = 1, /* 10.5.5.5, TS 24.008 */
+ IMSI_DETACH_MS_TO_N,
+ COMBINED_GPRS_IMSI_DETACH
+}ms_to_nw_detach_type_enum;
+
+typedef enum
+{
+ REATTACH_REQD = 1, /* 10.5.5.5, TS 24.008 */
+ REATTACH_NOT_REQD,
+ IMSI_DETACH_N_TO_MS,
+ GMM_DETACH_TYPE_NOT_VALID
+}nw_to_ms_detach_type_enum;
+
+/* These values are used in GMM, TCM and ATCI modules */
+typedef enum
+{
+ NO_PROCEDURE = 1,
+ INITIAL_CELL_SELECTION,
+ ATTACH_PROCEDURE,
+ DETACH_PROCEDURE,
+ RAU_PROCEDURE,
+ PERIODIC_RAU_PROCEDURE,
+ NEW_CELL_UPDATE_PROCEDURE,
+ SERVICE_PROCEDURE,
+ COMBINED_RAU,
+ COMBINED_RA_LA_WITH_IMSI_ATTACH,
+ GMM_PAGE_RSP,
+ SMS_EST_REQ,
+ SM_DATA_REQ,
+ AUTH_PROCEDURE
+}gmm_proc_enum;
+
+/* Gor GPRS MMI. */
+typedef enum {
+ GMMREG_GPRS_CELL_FOUND,
+ GMMREG_GPRS_REGISTERING
+} gmmreg_ps_service_info_enum;
+
+
+#define MAX_SIZE_OF_MS_RA_CAP 52
+#define MAX_SIZE_OF_MS_NW_CAP 10
+#define SIZE_OF_CLASSMARK1 1
+#define SIZE_OF_CLASSMARK2 3
+#define SIZE_OF_DRX_PARAMETER 2
+#define MAX_LSA_LENGTH 3
+#define MM_LOCI_GPRS_LEN 0x0E
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/mmi2mm_struct.h b/mcu/protocol/interface/l4/mmi2mm_struct.h
new file mode 100644
index 0000000..137bff1
--- /dev/null
+++ b/mcu/protocol/interface/l4/mmi2mm_struct.h
@@ -0,0 +1,661 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mmi2mm_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for struct definition between MM and MMI/L4.
+ *
+ * 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!
+ * 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 : mmi2mm_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _MMI2MM_STRUCT_H
+#define _MMI2MM_STRUCT_H
+
+#include "kal_general_types.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "ps_public_enum.h"
+#include "kal_public_defs.h"
+#include "nas_as_inter_core_enum.h"
+#ifdef __VOLTE_SUPPORT__
+#include "ims_common_def.h"
+#endif /* __VOLTE_SUPPORT__ */
+
+/* MM NVRAM Re-structure Start */
+#include "l4_nvram_editor.h"
+#include "emm_nvram_editor.h"
+/* MM NVRAM Re-structure End */
+#include "gmss_public.h"
+#include "l4_nvram_editor.h"
+#include "emm_nvram_editor.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 imei[9];
+ kal_uint8 imei_svn;
+ #if defined(__GEMINI__)
+ kal_uint8 peer_ps_imei[9];
+ #endif
+ kal_uint8 packed_drx_para[2];
+#ifdef __MONITOR_PAGE_DURING_TRANSFER__
+ gprs_transfer_preference_enum prefer; //mtk02475: gprs_transfer_preference
+#endif
+#ifdef __TC02_SECURITY_REQUIREMENT__
+ kal_uint8 nvram_imsi_loci_gloci[MAX_LEN_OF_IMSI_LOCI_GLOCI]; //mtk02475: for man-in-middle-attack prevention
+#endif
+#ifdef __MM_INTEGRITY_PREF__
+ kal_bool is_disable_integrity_check;
+#endif
+ nvram_ef_mm_data_struct nvram_mm_data_info;
+ nvram_ef_t3346_timer_info_struct t3346_info;
+ init_cause_enum init_cause;
+} gmmreg_init_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 band;
+} gmmreg_band_sel_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_selection_mode_enum plmn_sel_mode;
+} gmmreg_sel_mode_req_struct;
+
+typedef struct {
+ kal_uint8 timer_unit;
+ kal_uint8 timer_value;
+} gmmreg_timer_struct;
+
+#ifdef __MONITOR_PAGE_DURING_TRANSFER__
+typedef struct {
+ LOCAL_PARA_HDR
+ gprs_transfer_preference_enum prefer;
+} gmmreg_set_gprs_transfer_preference_req_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum detach_type; /* CS-only, PS-only or both CS/PS */
+ kal_bool power_off; /* mobile shut down or not */
+ kal_uint8 att_id; /* Johnny: 3G RAC, for attach_req and detach_req using */
+ l4c_rac_detach_cause_enum detach_cause;
+} gmmreg_detach_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_main_ps;
+} gmmreg_data_allow_req_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_rsim_enabled;
+ kal_bool is_aka_sim_enabled;
+} gmmreg_rsim_aka_status_req_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_reselection_enum plmn_search_mode; /* plmn_reselection_enum */
+ //kal_bool is_gprs_required; /* John Tang 2004/03/10: For at+cops = 2 then at+cops= 0 case. */
+ plmn_id_rat_struct selected_plmn; /* Selected PLMN */
+ kal_bool is_manual_csg_sel;
+ kal_uint32 csg_id;
+ rat_enum prefer_rat; // 0:default , 1:GSM , 2:UMTS
+ kal_bool from_l4c;
+ kal_uint16 factory_mode_arfcn; //0xFFFF means invalid arfcn, /* 20081110 mtk00714, for fast camp on test machine */
+} gmmreg_plmn_search_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_rat_struct plmn_id_rat;
+} gmmreg_csg_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat_mode; /* RATCM_RAT_ENUM*/
+ rat_enum active_rat;
+ domain_id_enum detach_domain; //for UEMODE:PS_MODE_x, CS domain should be detached first in RAT_MODE which contains RAT_LTE
+ rat_enum reported_rat;
+ rat_mode_change_cause_enum rat_mode_change_cause;
+} gmmreg_set_rat_mode_req_struct;
+
+#ifdef __DYNAMIC_BAND_SEL__
+typedef struct {
+ LOCAL_PARA_HDR
+ band_selection_enum gsm_band; /* refer to band_selection_enum value*/
+ kal_bool is_gsm_band_present;
+ kal_uint8 umts_fdd_band[SIZE_OF_UMTS_BAND]; /* 3G band change */
+ kal_bool is_umts_band_present; /* 3G band change */
+}gmmreg_set_preferred_band_req_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool force_send_SCRI;
+ end_session_cause_enum cause;
+}gmmreg_end_ps_data_session_req_struct;
+
+#if defined(__GEMINI__)
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_config_status_enum sim_config_status;
+ sim_insert_status_enum sim_insert_status;
+}gmmreg_sim_status_update_req_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum prefer_rat;
+}gmmreg_set_prefer_rat_req_struct;
+
+
+#ifdef __VOLTE_SUPPORT__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_ims_voice_available;
+} gmmreg_set_ims_voice_availability_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mm_ims_voice_termination mm_ivt;
+} gmmreg_set_ims_voice_termination_req_struct;
+#endif /* __VOLTE_SUPPORT__ */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ act_sim_enum active_sim;
+}gmmreg_active_sim_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn;
+ rat_enum rat;
+ kal_uint8 ara_start[2];
+ kal_uint8 ara_end[2];
+}gmmreg_aral_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat_mode; //User's setting, could be RAT_GSM or RAT_UMTS or RAT_GSM_UMTS
+ kal_bool is_pgcheck_on;
+ kal_uint8 causes; // causes to be ignored.
+} gmmreg_set_pgcheck_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool mode;
+}gmmreg_cs_voice_call_protection_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rfoff_cause_enum rfoff_cause;
+}gmmreg_rfoff_req_struct;
+
+/* MSG_ID_GMMREG_SET_MS_SV_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 svn;
+}gmmreg_set_ms_sv_req_struct;
+
+typedef struct {
+ kal_bool is_mobile_data_enable_present;
+ kal_bool is_mobile_data_enable;
+ kal_bool is_mobile_data_roaming_enable_present;
+ kal_bool is_mobile_data_roaming_enable;
+ kal_bool is_volte_enable_present;
+ kal_bool is_volte_enable;
+ kal_bool is_vzw_ims_test_mode_enable_present;
+ kal_bool is_vzw_ims_test_mode_enable;
+} gmmreg_cellular_network_config;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ gmmreg_cellular_network_config config;
+}gmmreg_cellular_network_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ elevator_mode_enum elevator_mode;
+}gmmreg_elevator_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ lte_normal_service_loss_reason_enum reason;
+}gmmreg_lte_normal_service_loss_update_req_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 purpose; //0 for EMM, 1 for MM
+ kal_uint8 mode; //0 reset timer, 1 for set timer
+ kal_uint32 timer1;
+ kal_bool is_timer1_valid;
+ kal_uint32 timer2;
+ kal_bool is_timer2_valid;
+} gmmreg_set_timer_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ecall_registration_state_enum ecall_reg_state;
+} gmmreg_set_ecall_registration_req_struct;
+#endif /*__ECALL_SUPPORT__ || __NG_ECALL_SUPPORT__ */
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/mncc_enums.h b/mcu/protocol/interface/l4/mncc_enums.h
new file mode 100644
index 0000000..a32ed16
--- /dev/null
+++ b/mcu/protocol/interface/l4/mncc_enums.h
@@ -0,0 +1,382 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mncc_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file contains the Values for THE IES in the CC entity.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+
+#ifndef _MNCC_ENUMS_H_
+#define _MNCC_ENUMS_H_
+
+/*****************
+Include Statements
+******************/
+
+/************************
+Macros Without Parameters
+*************************/
+
+
+/*Location*/
+typedef enum {
+ CC_USER =0x00,
+ CC_PRIVATE_NW_LOCAL_USER, /* Private Network, local user */
+ CC_PUBLIC_NW_LOCAL_USER, /* Public network, local user */
+ CC_TRANSIT_NW,
+ CC_PUBLIC_NW_REMOTE_USER , /* Public network, remote user */
+ CC_PRIVATE_NW_REMOTE_USER, /* Private Network, remote user */
+ CC_INTERNATIONAL_NW = 0x07,
+ CC_NW_BEYOND_IWP = 0x0A /* Network beyond Interworking point */
+}cc_user_location_enum;
+
+typedef enum {
+
+ CC_MIN_AUX_CALL_STATE_IE_LEN = 3
+}cc_aux_state_len_enum;
+/*----------AUX_STATE --------------------------------*/
+
+
+
+/*---------BEARER CAPABILITY----------------------------*/
+typedef enum {
+ CC_MIN_BC_IE_LEN = 3
+}cc_bc_len_enum;
+
+/*App Types*/
+typedef enum {
+ CC_SPEECH_APP = 0x00,
+ CC_UDI_APP,
+ CC_EX_PLMN_APP,
+ CC_FAX3_APP,
+ CC_OTHER_ITC =0x05,
+ CC_AUX_SPEECH_APP =0x06,
+ CC_RESERVED_APP =0x07
+}cc_app_types_enum;
+
+/*Radio Channel Requirement*/
+typedef enum {
+ CC_FULL_RATE_ONLY_MS = 0X01 ,
+ CC_DUAL_RATE_MS_HALF_RATE_PREF ,
+ CC_DUAL_RATE_MS_FULL_RATE_PREF
+}cc_chanel_requirement_enum;
+
+/*Transfer Mode*/
+typedef enum {
+ CC_CIRCUIT_TM = 0x00,
+ CC_PACKET_TM = 0x00
+}cc_transfer_mode_enum;
+
+/*---------CALL CONTROL CAPABILITIES--------------------*/
+typedef enum {
+
+ CC_MIN_CC_CAPABILITIES_IE_LEN =3
+} cc_cc_capabilities_len_enum;
+
+/*Prolonged Claering Support*/
+typedef enum {
+ CC_PROLONGED_CLEARING_NOT_SUPPORTED = 0,
+ CC_PROLONGED_CLEARING_SUPPORTED
+}cc_prolonged_clr_support_enum;
+
+/*Dtmf Support*/
+typedef enum {
+ CC_DTMF_SUPPORT_EARLIER_VERSION = 0,
+ CC_DTMF_SUPPORT_CURRENT_VERSION
+}cc_dtmf_support_enum;
+
+
+
+/*------------- CALLED PARTY NUMBER ----------*/
+
+/*Type of Number*/
+typedef enum {
+ CC_TON_UNKNOWN = 0x00, /* unknown number */
+ CC_TON_INT_NUM , /* International number */
+ CC_TON_NAT_NUM , /* National Number */
+ CC_TON_NW_NUM , /* Network specific number */
+ CC_TON_SHORT_CODE , /* dedicated access, short code */
+ CC_TON_RESRV_EXT = 0x07, /* Reserved for Extension */
+ CC_TON_RESERVE = 0x05 /* x50 to x70 is reserved */
+}cc_called_party_type_of_num_enum;
+
+/*Numbering Plan*/
+typedef enum {
+ CC_UNKNOWN_NP = 0x00 ,/* unknown numbering plan */
+ CC_ISDN_NP , /* ISDN numbering plan */
+ CC_DATA_NP = 0x03 ,/* data numbering plan */
+ CC_TELEX_NP , /* Telex numbering plan */
+ CC_NATIONAL_NP = 0x08, /* National */
+ CC_PRIVATE_NP , /* private numbering plan */
+ CC_RESERVE_NP = 0x0F /* reserved numbering plan */
+}cc_called_party_num_plan_enum;
+
+/* Digits or Charachters */
+/* Digit 1-9 has same value as their binary coded value */
+typedef enum {
+ CC_STAR = 0x0A,
+ CC_HASH ,
+ CC_DIGIT_A ,
+ CC_DIGIT_B ,
+ CC_DIGIT_C ,
+ CC_LAST_DIGIT
+}cc_xtra_digits_enum;
+
+/*Screening Indicator*/
+typedef enum {
+ CC_SCR_NOT_SCREENED = 0x00 ,/* user provided, not screened */
+ CC_SCR_PASSED , /* user provided, verf, passed */
+ CC_SCR_FAILED , /* user prov., failed */
+ CC_SCR_NW /* network provided */
+}cc_scr_ind_enum;
+
+
+/*--------- SUBADDRESS -----------*/
+#define CC_MAX_CALLED_SUB_ADDR_IE_LEN 21
+
+typedef enum {
+ CC_NSAP_SUB_ADDR_TYPE,
+ CC_USER_SPEC_SUB_ADDR_TYPE = 0x2
+}cc_sub_addr_type_enum;
+
+typedef enum {
+ CC_EVEN_SUB_INDICATOR,
+ CC_ODD_SUB_INDICATOR
+}cc_sub_add_indicator_enum;
+
+/*------------CONGESTION LEVEL------------*/
+typedef enum {
+ CC_RECEIVER_READY = 0x00,
+ CC_RECEIVER_NOT_READY
+
+}cc_congestion_level_enum;
+
+/*------------NOTIFICATION INDICATOR------*/
+
+#define CC_MIN_NOTIFY_IND_IE_LEN 3
+
+/*Notification Indication*/
+typedef enum {
+ S_USER_SUSPENDED = 0x00,
+ S_USER_RESUMED ,
+ S_BEARER_CHG
+}cc_notification_ind_enum;
+
+/*------------PROGRESS INDICATOR---------*/
+
+/* Progress Description */
+typedef enum {
+ CC_NOT_END_TO_END_PLMN = 0X01,/* Call is not end-to-end plmn */
+ CC_DST_ADD_NON_PLMN , /* Destination address is in non plmn*/
+ CC_ORG_ADD_NON_PLMN , /* Originating address is in non-plmn */
+ CC_CALL_RET_PLMN , /* Call return to plmn */
+ CC_INBAND_INFO_AVAIL = 0X08,/* Inband Information avail now */
+ CC_END_TO_END_PLMN = 0X20,/* Call is end to end plmn */
+ CC_QUEUEING = 0X40, /* Call queueing */
+ CC_PROG_DESC_INVALID_DEFAULT = 255 /*mtk00924: remove warning C2874W may be used before being set*/
+
+}cc_progress_description_enum;
+
+/*------------RECALL TYPE---------------*/
+/*Recall Type*/
+#define CC_CCBS_RECALL 0x00
+
+
+/*------------REPEAT INDICATOR---------*/
+/*Repeat Indication*/
+typedef enum {
+ MODE1_ALTERNATE_MODE2 = 0x01,
+ MODE1_PREFERED_ELSE_MODE2
+}cc_repeat_ind_enum;
+
+/*------------SIGNAL--------------------*/
+typedef enum {
+ CC_DIAL_TONE_ON = 0x00,
+ CC_RING_BACK_TONE_ON ,
+ CC_INTERCEPT_TONE_ON ,
+ CC_NTW_CONGESTION_TONE_ON ,
+ CC_BUSY_TONE_ON ,
+ CC_CONFIRM_TONE_ON ,
+ CC_ANSWER_TONE_ON ,
+ CC_CALL_WAITING_TONE_ON ,
+ CC_OFF_HOOK_WARNING_TONE_ON ,
+ CC_TONES_OFF = 0x3F ,
+ CC_ALERTING_OFF = 0x4F
+
+}cc_signal_tone_enum;
+
+/*------------ALLOWED ACTIONS-------------*/
+typedef enum {
+ CC_CCBS_ACTIVATION_NOT_POSSIBLE = 0 ,
+ CC_CCBS_ACTIVATION_POSSIBLE
+
+} cc_allowed_actions_enum;
+
+
+/*------------SS VERSION INDICATOR-------*/
+typedef enum {
+ CC_SS_VERSION_2 = 0x00,
+ CC_SS_VERSION_3
+
+}cc_ss_version_ind_enum;
+
+/*------------NETWORK CC CAPABILITY------*/
+typedef enum {
+ CC_NETWOTK_NOT_SUPPORTS_MULTICALL =0x00,
+ CC_NETWOTK_SUPPORTS_MULTICALL
+}cc_nw_cc_capability_enum;
+
+/*------------USER USER------------------*/
+typedef enum {
+
+ CC_MAX_USER2USER_IE_LEN = 131
+}cc_nw_user2user_enum;
+
+typedef enum {
+ CC_UUI_PD_USER_SPECIFIC = 0x00 ,
+ CC_UUI_PD_OSI_HIGH_LAYER ,
+ CC_UUI_PD_X_244 ,
+ CC_UUI_PD_SYSTEM_MGMT_CONVERGENCE ,
+ CC_UUI_PD_IA5_CHARS ,
+ CC_UUI_PD_REC_V_120_RATE_ADAPTION = 0x07,
+ CC_UUI_PD_Q_931_CC_USER_MSGS
+
+}cc_uui_pd_enum;
+
+/*------------CAUSE OF NO CLI------------*/
+typedef enum {
+ CC_CAUSE_OF_NO_CLI_UNAVAILABLE = 0x00 ,
+ CC_CAUSE_OF_NO_CLI_REJECTED_BY_USER ,
+ CC_CAUSE_OF_NO_CLI_INTERACTION_WITH_OTHER_SERVICE ,
+ CC_CAUSE_OF_NO_CLI_COIN_LINE_OR_PAY_PHONE
+
+}cc_cause_of_no_cli_enum;
+
+/*------------CC CAPABILITY------------*/
+typedef enum {
+ CC_EARLIER_DTMF_VERSION = 0,
+ CC_CURRENT_DTMF_VERSION
+}cc_dtmf_version_enum;
+
+typedef enum {
+ CC_PCP_NOT_SUPPORTED = 0,
+ CC_PCP_SUPPORTED
+
+}cc_pcp_supported_enum;
+
+
+/*****************
+Enums Without Tags
+******************/
+
+/***************
+Type Definitions
+****************/
+
+/********
+Constants
+*********/
+
+/*********************
+Macros With Parameters
+**********************/
+
+/***************************
+Exported Function Prototypes
+****************************/
+
+/******************************
+Declarations Of Exported Globals
+*******************************/
+
+#endif /* _MNCC_ENUMS_H_ */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mcu/protocol/interface/l4/mncc_struct.h b/mcu/protocol/interface/l4/mncc_struct.h
new file mode 100644
index 0000000..af23549
--- /dev/null
+++ b/mcu/protocol/interface/l4/mncc_struct.h
@@ -0,0 +1,995 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mncc_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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 : mncc_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _MNCC_STRUCT_H
+#define _MNCC_STRUCT_H
+
+//#include "kal_non_specific_general_types.h"
+#include "mcd_ss_tcapmessages.h"
+#include "l4c2csm_cc_struct.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+
+typedef enum
+{
+ SS_COMP_INV,
+ SS_COMP_RR,
+ SS_COMP_RE,
+ SS_COMP_REJ
+} mncc_ss_comp_type_enum;
+
+typedef enum
+{
+ SS_REJ_GEN_PROBLEM,
+ SS_REJ_INV_PROBLEM,
+ SS_REJ_RR_PROBLEM,
+ SS_REJ_RE_PROBLEM,
+ SS_REJ_INVALID_PROBLEM = 255 /*mtk00924: remove warning C2874W may be used before being set*/
+} mncc_ss_rej_prob_type_enum;
+
+
+typedef struct {
+ kal_uint8 hold_aux_state;
+ kal_uint8 mpty_aux_state;
+} mncc_aux_state_struct;
+
+typedef struct {
+ kal_uint8 no_value;
+ kal_uint8 value_size;
+ kal_uint8 value[16];
+} mncc_bc_struct;
+
+/*[MAUI_00740014]: __REL4__ new IE, Supported Codec List*/
+typedef struct {
+ kal_uint8 no_value;
+ kal_uint8 value[8];
+} mncc_supported_codec_struct;
+
+typedef struct {
+ kal_uint8 call_state_value;
+} mncc_call_state_struct;
+
+typedef struct {
+ kal_uint8 location;
+ kal_uint16 cause_value;
+ kal_uint8 diagnostics_length;
+ kal_uint8 diagnostics[28];
+} mncc_cause_struct;
+
+typedef struct {
+ kal_uint8 CLIR_suppression;
+} mncc_clir_suppression_struct;
+
+typedef struct {
+ kal_uint8 CLIR_invocation;
+} mncc_clir_invocation_struct;
+
+typedef struct {
+ kal_uint8 congestion_level;
+} mncc_congestion_level_struct;
+
+typedef struct {
+ kal_uint8 num_of_components;
+ Component *component[2];
+} mncc_facility_struct;
+
+typedef struct {
+ kal_uint8 location;
+ kal_uint8 prog_desc;
+} mncc_progress_indicator_struct;
+
+typedef struct {
+ kal_uint8 no_value;
+ kal_uint8 value_size;
+ kal_uint8 value[3];
+} mncc_hlc_struct;
+
+typedef struct {
+ kal_uint8 keypad_info;
+} mncc_keypad_facility_struct;
+
+typedef struct {
+ kal_uint8 no_value;
+ kal_uint8 value_size;
+ kal_uint8 value[18];
+} mncc_llc_struct;
+
+typedef struct {
+ kal_uint8 more_data;
+} mncc_more_data_struct;
+
+typedef struct {
+ kal_uint8 notification_description;
+} mncc_notification_ind_struct;
+
+typedef struct {
+ kal_uint8 recall_type;
+} mncc_recall_type_struct;
+
+typedef struct {
+ kal_uint8 repeat_indication;
+} mncc_repeat_ind_struct;
+
+typedef struct {
+ kal_uint8 signal_value;
+} mncc_signal_struct;
+
+typedef struct {
+ kal_uint8 pd;
+ kal_uint8 user2user_info_length;
+ kal_uint8 user2user_info[131];
+} mncc_user2user_struct;
+
+typedef struct {
+ kal_uint8 pattern;
+} mncc_alerting_pattern_struct;
+
+typedef struct {
+ kal_uint8 CCBS_possible;
+} mncc_ccbs_status_struct;
+
+typedef struct {
+ kal_uint8 cause_of_no_CLI;
+} mncc_cause_of_no_cli_struct;
+
+typedef struct {
+ kal_uint8 immediate_modification_ind;
+} mncc_immediate_modification_ind_struct;
+
+typedef struct {
+ kal_uint8 call_priority;
+} mncc_priority_level_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} mncc_dummy_local_para_struct;
+
+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 ti;
+
+ 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];
+ kal_bool cli_present;
+ kal_uint8 cli;
+} mncc_srvcc_call_cntxt_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ti;
+ kal_uint8 bc_repeat_indP;
+ mncc_repeat_ind_struct bc_repeat_ind;
+ kal_uint8 bc1P;
+ mncc_bc_struct bc1;
+ kal_uint8 bc2P;
+ mncc_bc_struct bc2;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 progress_indP;
+ mncc_progress_indicator_struct progress_ind;
+ kal_uint8 signalP;
+ mncc_signal_struct signal;
+ kal_uint8 calling_numP;
+ l4ccsm_cc_peer_addr_struct calling_num;
+ kal_uint8 calling_sub_addrP;
+ l4ccsm_cc_sub_addr_struct calling_sub_addr;
+ kal_uint8 called_numP;
+ l4_addr_bcd_struct called_num;
+ kal_uint8 called_sub_addrP;
+ l4ccsm_cc_sub_addr_struct called_sub_addr;
+ kal_uint8 redirecting_numP;
+ l4ccsm_cc_peer_addr_struct redirecting_num;
+ kal_uint8 redirecting_sub_addrP;
+ l4ccsm_cc_sub_addr_struct redirecting_sub_addr;
+ kal_uint8 llc_repeat_indP;
+ mncc_repeat_ind_struct llc_repeat_ind;
+ kal_uint8 llc1P;
+ mncc_llc_struct llc1;
+ kal_uint8 llc2P;
+ mncc_llc_struct llc2;
+ kal_uint8 hlc_repeat_indP;
+ mncc_repeat_ind_struct hlc_repeat_ind;
+ kal_uint8 hlc1P;
+ mncc_hlc_struct hlc1;
+ kal_uint8 hlc2P;
+ mncc_hlc_struct hlc2;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+#ifdef __EMLPP_SUPPORT__
+ kal_uint8 priorityP;
+ mncc_priority_level_struct priority;
+#endif
+ kal_uint8 alertP;
+ mncc_alerting_pattern_struct alert;
+ kal_uint8 cause_of_no_cliP;
+ mncc_cause_of_no_cli_struct cause_of_no_cli;
+ kal_uint8 backup_bcP;
+ mncc_bc_struct backup_bc;
+} mncc_setup_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 progress_indP;
+ mncc_progress_indicator_struct progress_ind;
+ kal_uint8 connected_numP;
+ l4ccsm_cc_peer_addr_struct connected_num;
+ kal_uint8 connected_sub_addrP;
+ l4ccsm_cc_sub_addr_struct connected_sub_addr;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+} mncc_setup_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+} mncc_setup_compl_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 is_cc_setup_sent; //mtk01602, 071022
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+} mncc_rej_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 bc_repeat_indP;
+ mncc_repeat_ind_struct bc_repeat_ind;
+ kal_uint8 bc1P;
+ mncc_bc_struct bc1;
+ kal_uint8 bc2P;
+ mncc_bc_struct bc2;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 progress_indP;
+ mncc_progress_indicator_struct progress_ind;
+#ifdef __EMLPP_SUPPORT__
+ kal_uint8 priorityP;
+ mncc_priority_level_struct priority;
+#endif /*__EMLPP_SUPPORT__*/
+} mncc_call_proc_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_progress_indicator_struct progress_ind;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+} mncc_progress_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 progress_indP;
+ mncc_progress_indicator_struct progress_ind;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+} mncc_alert_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_notification_ind_struct notification_ind;
+} mncc_notify_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_cause_struct cause;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 progress_indP;
+ mncc_progress_indicator_struct progress_ind;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+ kal_uint8 ccbs_allowedP;
+ mncc_ccbs_status_struct ccbs_allowed;
+} mncc_disc_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+ kal_uint8 second_causeP;
+ mncc_cause_struct second_cause;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+} mncc_rel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+ kal_uint16 disc_cause;
+} mncc_rel_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+} mncc_facility_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 response;
+ kal_uint8 digit;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+} mncc_start_dtmf_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 response;
+ kal_uint8 digit;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+} mncc_stop_dtmf_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_bc_struct bc;
+ kal_uint8 llcP;
+ mncc_llc_struct llc;
+ kal_uint8 hlcP;
+ mncc_hlc_struct hlc;
+ kal_uint8 rscd_P;
+} mncc_modify_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 response;
+ mncc_bc_struct bc;
+ kal_uint8 llcP;
+ mncc_llc_struct llc;
+ kal_uint8 hlcP;
+ mncc_hlc_struct hlc;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+} mncc_modify_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 channel_type;
+ kal_uint8 channel_mode;
+} mncc_sync_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rat; /* rat_enum */
+} mncc_rat_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 response;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+} mncc_hold_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 response;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+} mncc_retrieve_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_user2user_struct uui;
+ kal_uint8 more_dataP;
+ mncc_more_data_struct more_data;
+} mncc_user_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_congestion_level_struct congestion_level;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+} mncc_congestion_ctrl_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ti;
+ kal_uint8 bc_repeat_indP;
+ mncc_repeat_ind_struct bc_repeat_ind;
+ kal_uint8 bc1P;
+ mncc_bc_struct bc1;
+ kal_uint8 bc2P;
+ mncc_bc_struct bc2;
+ kal_uint8 llc_repeat_indP;
+ mncc_repeat_ind_struct llc_repeat_ind;
+ kal_uint8 llc1P;
+ mncc_llc_struct llc1;
+ kal_uint8 llc2P;
+ mncc_llc_struct llc2;
+ kal_uint8 hlc_repeat_indP;
+ mncc_repeat_ind_struct hlc_repeat_ind;
+ kal_uint8 hlc1P;
+ mncc_hlc_struct hlc1;
+ kal_uint8 hlc2P;
+ mncc_hlc_struct hlc2;
+} mncc_ccbs_est_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_recall_type_struct recall_type;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 ccbs_recall_numP;
+ l4_addr_bcd_struct ccbs_recall_num;
+} mncc_ccbs_recall_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint32 ccm;
+ kal_uint32 acm;
+ kal_bool update_cdur;
+ kal_uint32 cdur;
+ kal_bool ccwe; /* warning event *//* MAUI_01637672 support CCWE */
+} mncc_aoc_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} mncc_sig_con_re_est_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} mncc_sig_con_re_est_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+#ifdef __EMLPP_SUPPORT__
+ kal_uint8 call_priority;
+#endif
+ kal_bool is_emergency_call;
+ kal_uint8 clir_suppression;
+ kal_uint8 clir_invocation;
+ kal_uint8 bc_repeat_indP;
+ mncc_repeat_ind_struct bc_repeat_ind;
+ kal_uint8 bc1P;
+ mncc_bc_struct bc1;
+ kal_uint8 bc2P;
+ mncc_bc_struct bc2;
+ kal_uint8 simple_recall_alignmentP;
+ mncc_facility_struct simple_recall_alignment;
+ kal_uint8 calling_sub_addrP;
+ l4ccsm_cc_sub_addr_struct calling_sub_addr;
+ kal_uint8 called_numP;
+ l4_addr_bcd_struct called_num;
+ kal_uint8 called_sub_addrP;
+ l4ccsm_cc_sub_addr_struct called_sub_addr;
+ kal_uint8 llc_repeat_indP;
+ mncc_repeat_ind_struct llc_repeat_ind;
+ kal_uint8 llc1P;
+ mncc_llc_struct llc1;
+ kal_uint8 llc2P;
+ mncc_llc_struct llc2;
+ kal_uint8 hlc_repeat_indP;
+ mncc_repeat_ind_struct hlc_repeat_ind;
+ kal_uint8 hlc1P;
+ mncc_hlc_struct hlc1;
+ kal_uint8 hlc2P;
+ mncc_hlc_struct hlc2;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+ kal_uint8 advanced_recall_alignmentP;
+ mncc_facility_struct advanced_recall_alignment;
+ kal_uint8 recall_alignment_not_essentialP;
+ mncc_facility_struct recall_alignment_not_essential;
+ kal_uint8 supported_codecP;//MAUI_01992695
+ mncc_supported_codec_struct supported_codec;//[MAUI_00740014], __REL4__
+ kal_uint8 service_categoryP;
+ kal_uint8 service_category;
+ kal_bool is_ecall;
+ kal_uint8 ecall_type;
+} mncc_setup_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 connected_sub_addrP;
+ l4ccsm_cc_sub_addr_struct connected_sub_addr;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+} mncc_setup_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_cause_struct cause;
+} mncc_rej_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 bc_repeat_indP;
+ mncc_repeat_ind_struct bc_repeat_ind;
+ kal_uint8 bc1P;
+ mncc_bc_struct bc1;
+ kal_uint8 bc2P;
+ mncc_bc_struct bc2;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+ kal_uint8 supported_codecP;
+ mncc_supported_codec_struct supported_codec; //[MAUI_00740014], __REL4__
+} mncc_call_conf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+} mncc_alert_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_notification_ind_struct notification_ind;
+} mncc_notify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_cause_struct cause;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+} mncc_disc_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+ kal_uint8 facilityP;
+ mncc_facility_struct facility;
+ kal_uint8 uuiP;
+ mncc_user2user_struct uui;
+} mncc_rel_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_cause_struct cause;
+} mncc_rel_comp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_facility_struct facility;
+} mncc_facility_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 digit;
+} mncc_start_dtmf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 digit;
+} mncc_stop_dtmf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_bc_struct bc;
+ kal_uint8 llcP;
+ mncc_llc_struct llc;
+ kal_uint8 hlcP;
+ mncc_hlc_struct hlc;
+ kal_uint8 rscd_P; /*RSCD present*/
+} mncc_modify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 response;
+ mncc_bc_struct bc;
+ kal_uint8 llcP;
+ mncc_llc_struct llc;
+ kal_uint8 hlcP;
+ mncc_hlc_struct hlc;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+ kal_uint8 rscd_P;
+} mncc_modify_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+} mncc_hold_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+} mncc_retrieve_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_user2user_struct uui;
+ kal_uint8 more_dataP;
+ mncc_more_data_struct more_data;
+} mncc_user_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 bc_repeat_indP;
+ mncc_repeat_ind_struct bc_repeat_ind;
+ kal_uint8 bc1P;
+ mncc_bc_struct bc1;
+ kal_uint8 bc2P;
+ mncc_bc_struct bc2;
+ kal_uint8 llc_repeat_indP;
+ mncc_repeat_ind_struct llc_repeat_ind;
+ kal_uint8 llc1P;
+ mncc_llc_struct llc1;
+ kal_uint8 llc2P;
+ mncc_llc_struct llc2;
+ kal_uint8 hlc_repeat_indP;
+ mncc_repeat_ind_struct hlc_repeat_ind;
+ kal_uint8 hlc1P;
+ mncc_hlc_struct hlc1;
+ kal_uint8 hlc2P;
+ mncc_hlc_struct hlc2;
+ kal_uint8 causeP;
+ mncc_cause_struct cause;
+ kal_uint8 supported_codecP;
+ mncc_supported_codec_struct supported_codec;//[MAUI_00740014], __REL4__
+} mncc_ccbs_est_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+} mncc_ccbs_setup_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mncc_cause_struct cause;
+} mncc_ccbs_rej_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 acmmax;
+ kal_uint32 acm;
+} mncc_acm_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+} mncc_abort_call_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 num_of_call;
+ mncc_srvcc_call_cntxt_struct call_tbl[L4C_MAX_CALL_LIST_LEN];
+}mncc_srvcc_transfer_req_struct;
+
+//if mncc_srvcc_transer_cnf_struct.num_of_call = 0, means fail.
+typedef mncc_srvcc_transfer_req_struct mncc_srvcc_transfer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn_id;
+}mncc_plmn_info_ind_struct;
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/mnss_struct.h b/mcu/protocol/interface/l4/mnss_struct.h
new file mode 100644
index 0000000..5df3071
--- /dev/null
+++ b/mcu/protocol/interface/l4/mnss_struct.h
@@ -0,0 +1,185 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mnss_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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 : mnss_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _MNSS_STRUCT_H
+#define _MNSS_STRUCT_H
+
+#include "kal_general_types.h"
+#include "mcd_ss_tcapmessages.h"
+#include "kal_public_defs.h"
+
+/* Maximum Number of Components allowed in CISS per single
+ * Transaction */
+#define CISS_MAX_NUM_OF_COMPONENTS_ALLOWED 1
+
+typedef struct {
+ kal_uint8 num_of_components;
+// Component component[1]; CISS_MAX_NUM_OF_COMPONENTS_ALLOWED
+ Component *component[CISS_MAX_NUM_OF_COMPONENTS_ALLOWED];
+} mnss_facility_struct;
+
+typedef struct {
+ kal_uint16 cause_value;
+ kal_uint8 diagnostics_length;
+ kal_uint8 diagnostics[28];
+} mnss_cause_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} mnss_dummy_local_para_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ mnss_facility_struct facility;
+ kal_uint8 rat_info;//let ciss know whether to communicate with MM(0) or EVAL(1)
+} mnss_begin_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mnss_facility_struct facility;
+} mnss_fac_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 causeP;
+ mnss_cause_struct cause;
+ kal_uint8 facilityP;
+ mnss_facility_struct facility;
+} mnss_end_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ti;
+ mnss_facility_struct facility;
+ kal_uint8 rat_info;//let csmss know the working RAT is 2/3G(rat_info=0) or 4G(rat_info=1)
+} mnss_begin_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ mnss_facility_struct facility;
+} mnss_fac_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ti;
+ kal_uint8 causeP;
+ mnss_cause_struct cause;
+ kal_uint8 facilityP;
+ mnss_facility_struct facility;
+} mnss_end_ind_struct;
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/nas_sv_css_struct.h b/mcu/protocol/interface/l4/nas_sv_css_struct.h
new file mode 100644
index 0000000..ccc2587
--- /dev/null
+++ b/mcu/protocol/interface/l4/nas_sv_css_struct.h
@@ -0,0 +1,150 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+* ---------
+* nas_sv_css_struct.h
+*
+* Project:
+* --------
+* UMOLYE
+*
+* Description:
+* ------------
+*
+* Author:
+* -------
+ * -------
+******************************************************************************/
+
+#ifndef _NAS_SV_CSS_STRUCT_H_
+#define _NAS_SV_CSS_STRUCT_H_
+#include "nas_sv_struct.h"
+#include "c2k_irat_msg_struct.h"
+
+typedef struct
+{
+ /** ILM specific header. */
+ LOCAL_PARA_HDR
+
+ /** notify CSS deactivate cause */
+ css_deactivate_cause_enum css_deactive_cause;
+
+ /** notify CSS if to deactivate C2K CS service */
+ kal_bool is_to_deactivate_c2k_cs_service;
+
+}nas_sv_css_deactivate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ mmss_search_type_enum mmss_search_type;
+ irat_priority_class_enum prio_class;
+ mmss_3gpp2_list_struct mmss_list;
+ kal_bool is_for_silent_redial;
+ cs_reg_cause_enum cause;
+ gmss_search_type_enum gmss_search_type;
+} nwsel_nas_sv_css_cs_reg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ kal_bool result;
+ css_cause_code_enum css_cause;
+ irat_priority_class_enum prio_class;
+} nwsel_nas_sv_css_cs_reg_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ irat_system_type_enum sys_type;
+ irat_priority_class_enum prio_class;
+ mmss_search_type_enum mmss_search_type;
+ mmss_3gpp2_list_struct mmss_list;
+ irat_priority_class_enum c2k_1x_to_evdo_prio_class;
+ kal_uint8 mspl_search_cycle_id;
+ gmss_search_type_enum gmss_search_type;
+} nwsel_nas_sv_css_ps_reg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ kal_bool result;
+ css_cause_code_enum css_cause;
+ irat_ps_type_enum ps_type;
+ irat_priority_class_enum prio_class;
+} nwsel_nas_sv_css_ps_reg_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ irat_system_type_enum sys_type;
+ kal_bool enter_active_rat_for_evdo;
+ kal_bool is_quick_search;
+ kal_bool is_stored_search;
+ kal_bool is_LTE_only_mode;
+} nwsel_nas_sv_css_mcc_search_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ /* trx_id between GMSS and MD3*/ kal_uint8 trx_id;
+ /** result of MCC search */ kal_bool result;
+ /** cause of failure */ css_cause_code_enum css_cause;
+ /** MCC value, avaiable only when result is KAL_TRUE */ kal_uint8 mcc1;
+ /** MCC value, avaiable only when result is KAL_TRUE */ kal_uint8 mcc2;
+ /** MCC value, avaiable only when result is KAL_TRUE */ kal_uint8 mcc3;
+} nwsel_nas_sv_css_mcc_search_cnf_struct;
+
+typedef nwsel_nas_sv_css_cs_reg_req_struct nas_sv_css_cs_reg_req_struct;
+
+typedef nwsel_nas_sv_css_cs_reg_cnf_struct nas_sv_css_cs_reg_cnf_struct;
+
+typedef nwsel_nas_sv_css_ps_reg_req_struct nas_sv_css_ps_reg_req_struct;
+
+typedef nwsel_nas_sv_css_ps_reg_cnf_struct nas_sv_css_ps_reg_cnf_struct;
+
+typedef nwsel_nas_sv_css_mcc_search_req_struct nas_sv_css_mcc_search_req_struct;
+
+typedef nwsel_nas_sv_css_mcc_search_cnf_struct nas_sv_css_mcc_search_cnf_struct;
+
+
+typedef nas_sv_any_check_active_rat_cnf_struct nas_sv_css_check_active_rat_cnf_struct;
+
+typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_css_set_active_rat_cnf_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/nas_sv_errc_struct.h b/mcu/protocol/interface/l4/nas_sv_errc_struct.h
new file mode 100644
index 0000000..87991ee
--- /dev/null
+++ b/mcu/protocol/interface/l4/nas_sv_errc_struct.h
@@ -0,0 +1,148 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+* ---------
+* nas_sv_errc_struct.h
+*
+* Project:
+* --------
+* UMOLYE
+*
+* Description:
+* ------------
+*
+* Author:
+* -------
+ * -------
+******************************************************************************/
+
+#ifndef _NAS_SV_ERRC_STRUCT_H_
+#define _NAS_SV_ERRC_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "mm_mmi_enums.h"
+#include "kal_public_defs.h"
+#include "sim_public_enum.h"
+#include "irat_common_enums.h"
+#include "irat_common_struct.h"
+#include "nas_sv_struct.h"
+#include "l4c_eval_struct.h"
+#include "rac_nas_sv_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ void* as_info_ptr;
+ ho_from_lte_type_enum ir_ho_type;
+ kal_uint8 nas_security_param_from_eutra;
+ gas_cipher_algo_enum gas_cipher_algo;
+ kal_bool csfb_ind;
+ irat_container_errc_to_emm_struct irat_container;
+} nas_sv_errc_rat_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_result_enum irat_result;
+ void* as_info_ptr;
+} nas_sv_errc_rat_change_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ void* as_info_ptr;
+ irat_container_emm_info_struct emm_info;
+} nas_sv_errc_rat_change_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_result_enum irat_result;
+ void* as_info_ptr;
+ kal_bool is_csfb_fast_return;
+ enasas_add_epsbearer_list_struct add_list;
+} nas_sv_errc_rat_change_cnf_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ ue_capability_struct capability;
+} nas_sv_errc_cap_update_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool is_successful; /* Indicates whether enabling or disabling capability is successful. */
+} nas_sv_errc_cap_update_cnf_struct;
+
+typedef nwsel_nas_sv_power_scan_cnf_struct nas_sv_errc_power_scan_cnf_struct;
+
+typedef nwsel_nas_sv_plmn_band_ind_struct nas_sv_errc_plmn_band_ind_struct;
+
+typedef nas_sv_any_check_active_rat_cnf_struct nas_sv_errc_check_active_rat_cnf_struct;
+
+typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_errc_set_active_rat_cnf_struct;
+
+typedef nwsel_nas_sv_sniffer_start_req_struct nas_sv_errc_sniffer_start_req_struct;
+
+typedef nwsel_nas_sv_signal_appear_ind_struct nas_sv_errc_signal_appear_ind_struct;
+
+typedef l4c_eval_srvcc_status_update_ind_struct nas_sv_errc_srvcc_status_update_ind_struct;
+
+typedef rac_nas_sv_nr_normal_service_loss_update_req_struct nas_sv_errc_nr_normal_service_loss_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 num_of_band;
+ kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE];
+} nas_sv_errc_background_band_learning_req_struct;
+
+typedef nas_sv_any_search_status_update_req_struct nas_sv_errc_any_search_status_update_req_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/nas_sv_struct.h b/mcu/protocol/interface/l4/nas_sv_struct.h
new file mode 100644
index 0000000..b3d1d2e
--- /dev/null
+++ b/mcu/protocol/interface/l4/nas_sv_struct.h
@@ -0,0 +1,1813 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+* ---------
+* nas_sv_struct.h
+*
+* Project:
+* --------
+* UMOLYE
+*
+* Description:
+* ------------
+*
+* Author:
+* -------
+ * -------
+******************************************************************************/
+
+#ifndef _NAS_SV_STRUCT_H_
+#define _NAS_SV_STRUCT_H_
+
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+
+
+
+#include "l3_inc_local.h"
+
+#include "gmss_public.h"
+#include "mm_mmi_enums.h"
+#include "mmi2mm_struct.h"
+
+#include "kal_public_defs.h"
+#include "sim_public_enum.h"
+#include "global_type.h"
+#include "irat_common_struct.h"
+//#include "c2k_irat_msg_struct.h"
+#include "l3_inc_enums_public.h"
+#include "ims_interface_md.h"
+#include "ps_public_struct.h"
+
+
+#define MAX_SEARCH_BAND_LIST_SIZE 32
+#define NAS_MAX_PS_RESULT_LIST 128
+#define NAS_MIN_PS_RSSI_VALUE -360
+#define MAX_NWSEL_MCC_POOL 6
+#define LEN_OF_ALL_ALLOWED_NSSAI 144
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum attach_type;
+ kal_uint8 ready_timer_p;
+ gmmreg_timer_struct ready_timer_value;
+ kal_uint8 att_id;
+ mm_user_search_type_enum search_type;
+ kal_bool is_follow_on_request;
+ mm_user_search_cause_enum search_cause; //used for GSMA SIM block feature
+} nas_sv_any_attach_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum detach_type;
+ kal_bool power_off;
+ kal_uint8 att_id;
+ l4c_rac_detach_cause_enum detach_cause;
+ kal_bool is_user_ps_reattach;
+} nas_sv_any_detach_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat_mode; /* RATCM_RAT_ENUM*/
+ rat_enum reported_rat;
+ irat_system_type_enum c2k_mode;
+ kal_bool is_rf_on;
+ vg_option_enum vg_option_map;
+} nas_sv_gmss_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status;
+ mm_cause_enum cause;
+} nas_sv_gmss_set_rat_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_deact_cs;
+ kal_bool is_deact_ps;
+} nas_sv_gmss_c2k_deactivate_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nas_sv_any_event_update_req_enum event;
+} nas_sv_any_event_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nas_sv_any_event_update_ind_enum event;
+ rat_enum rat;
+} nas_sv_any_event_update_ind_struct;
+
+typedef nas_sv_any_event_update_ind_struct nas_sv_vgmm_event_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ erac_rat_enum rat_mode;
+ erac_rat_enum reported_rat;
+ rat_mode_change_cause_enum rat_mode_change_cause;
+ irat_system_type_enum c2k_mode;
+} nas_sv_emm_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status;
+} nas_sv_emm_set_rat_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ ho_from_lte_type_enum ir_ho_type;
+} nas_sv_any_rat_change_start_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ irat_result_enum irat_result;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ ho_from_lte_type_enum ir_ho_type;
+ // NAS_SV only updates for 23G. For other RATs, set it to Unknown
+ // This filed is requested by MOD_SMIC
+ nas_sv_camped_on_cell_type_enum camped_on_cell_type;
+} nas_sv_any_rat_change_finish_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+} nas_sv_emm_plmn_search_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ rat_enum rat;
+} nas_sv_mm_plmn_search_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ active_nas_enum init_nas;
+
+} nas_sv_smic_boot_up_init_nas_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ rat_enum rat;
+ plmn_search_result_enum result;
+ kal_bool is_as_plmn_list_present;
+ as_plmn_list_struct as_plmn_list;
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_selected_plmn[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
+ scan_type_enum scan_type;
+ kal_bool is_stored_list_exist; // only for stored search not for fullband + fullband and stored
+ fullband_result_enum is_fullband_finished;
+ kal_bool is_ps_conn_releasing;
+ kal_bool is_quick_search;
+ kal_bool no_search_candidate;
+} nwsel_nas_sv_plmn_search_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ plmn_search_result_enum result;
+ plmn_search_cant_proc_reason_enum cant_proc_reason;
+ kal_bool is_as_plmn_list_present;
+ as_plmn_list_struct as_plmn_list;
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_selected_plmn[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
+ scan_type_enum scan_type;
+ kal_bool is_stored_list_exist; // only for stored search not for fullband + fullband and stored
+ fullband_result_enum is_fullband_finished;
+ kal_bool is_quick_search;
+ kal_bool no_search_candidate;
+} nas_sv_emm_plmn_search_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 gibi_tag;
+ kal_uint8 ta_code[2];
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
+ kal_uint8 multi_ta_code[MAX_NUM_MULTI_PLMN][2]; // 36.331 R14 CR2912 EUTRAN sharing enhancement
+ kal_uint32 multi_cell_id[MAX_NUM_MULTI_PLMN]; // 36.331 R14 CR2912 EUTRAN sharing enhancement
+ csg_access_mode_enum csg_access_mode[MAX_NUM_MULTI_PLMN];
+ csg_info_struct csg_info[MAX_NUM_MULTI_PLMN];
+ lte_duplex_type_enum lte_type;
+ kal_bool ims_emergency_support;
+#ifdef __NG_ECALL_SUPPORT__
+ kal_bool ecall_over_ims_support;
+#endif /* __NG_ECALL_SUPPORT__ */
+ kal_bool is_c2k_as_irat;
+ kal_uint16 band;
+ kal_bool is_3G_sib_scheduled;
+ kal_bool is_2G_sib_scheduled;
+ kal_bool is_C2K_sib_scheduled;
+ enasas_ssac_ac_barringfactor_enum ssac_voice_ac_barring_factor;
+ kal_bool match_op_cfg;
+
+ //--- Debug Only ---//
+ endc_sib_status_enum endc_sib_status; /* "endc_sib_status" will be set to "ENDC_SIB_STATUS_SUPPORT" if the corresponding
+ * bit of selected PLMN in PLMN-InfoList-r15 from SIB2 is TRUE.
+ */
+ kal_bool endc_available; /* "endc_available" wil be set to TRUE if any bit in PLMN-InfoList-r15 from SIB2 is TRUE */
+} nas_sv_emm_sys_info_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ ho_from_lte_type_enum ir_ho_type;
+ kal_uint8 nas_security_param_from_eutra;
+ gas_cipher_algo_enum gas_cipher_algo;
+ kal_bool csfb_ind;
+} nas_sv_emm_nas_ctxt_transfer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ irat_result_enum irat_result;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+} nas_sv_emm_rat_change_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_container_errc_to_emm_struct irat_container;
+} nas_sv_emm_as_param_notify_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat_mode; /* RATCM_RAT_ENUM*/
+ domain_id_enum detach_domain; //for UEMODE:PS_MODE_x, CS domain should be detached first in RAT_MODE which contains RAT_LTE
+ rat_enum reported_rat;
+ rat_mode_change_cause_enum rat_mode_change_cause;
+} nas_sv_mm_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status; /* proc_status_enum */
+ mm_cause_enum cause; /* mm_cause_enum */
+} nas_sv_mm_set_rat_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
+} nas_sv_mm_nas_ctxt_transfer_req_struct,nas_sv_mm_rat_change_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ irat_result_enum irat_result;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_reject_cause_enum irat_reject_cause;
+} nas_sv_mm_rat_change_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ rat_enum reported_rat;
+} nas_sv_ratcm_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+ mm_cause_enum cause;
+} nas_sv_ratcm_set_rat_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ void* as_info_ptr;
+ kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
+ //NAS security parameter (Only valid for IRHO from UAS)
+ //Byte1 ~ 4: NouceMME
+ //Byte5: Selected Algorithm (Ciphering/Integrity)
+ //Byte6: eKSI (including type of security context)
+} nas_sv_ratcm_rat_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_result_enum irat_result;
+ irat_reject_cause_enum irat_reject_cause;
+ void* as_info_ptr;
+} nas_sv_ratcm_rat_change_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ void* as_info_ptr;
+ ratcm_gas_security_mode_req_struct gas_security;
+ uas_security_context_struct uas_security[2];
+ csfb_indicator_enum csfb_indicator;
+ loopback_mode_status_enum loopback_mode_status;
+ kal_bool is_lai_valid;
+ lai_struct lai;
+ kal_bool is_srvcc;
+ kal_bool is_mapped_rai_valid;
+ rai_struct mapped_rai;
+} nas_sv_ratcm_rat_change_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_result_enum irat_result;
+ void* as_info_ptr;
+ domain_id_enum connection_domain;
+ kal_bool is_gibi_tag_valid;
+ kal_uint16 gibi_tag;
+} nas_sv_ratcm_rat_change_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 gibi_tag;
+ rat_enum rat;
+ kal_bool is_data_pending;
+ kal_bool is_sys_info_present;
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
+ plmn_id_struct plmn_id;
+ kal_uint8 la_code[2];
+ kal_uint8 ra_code;
+ kal_uint32 cell_id;
+ kal_bool cell_support_cs;
+ kal_bool cell_support_ps; /* if FALSE, nmo and ra_code should not refer. */
+ kal_bool is_acc_class_present;
+ kal_uint16 acc_class;
+ kal_uint8 extra_info_bitmask; /* for DSAC/data_speed_support update in connected mode*/
+ kal_uint8 dsac_plmn_bitmask;
+ kal_uint16 cs_dsac[MAX_NUM_MULTI_PLMN];
+ kal_uint16 ps_dsac[MAX_NUM_MULTI_PLMN];
+ kal_uint8 t3212_timer_val;
+ network_mode_enum nmo;
+ as_cell_type_enum cell_type;
+ att_flag_enum att_flag;
+ kal_bool mscr;
+ rr_mm_sgsnr_flag_enum sgsnr;
+ data_speed_support_enum cell_data_speed_support; /* MAUI_02361221: for egprs and hspa */
+ kal_uint8 ppacr_plmn_bitmask;
+ ppacr_info_struct ppacr_info_plmn_list[MAX_NUM_MULTI_PLMN];
+ csg_access_mode_enum csg_access_mode;
+ csg_info_struct csg_info;
+ kal_bool is_gprs_info_in_si13_deferred;
+ kal_uint8 band;
+} nas_sv_ratcm_sys_info_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+ plmn_search_result_enum result;
+ rat_enum rat;
+ plmn_id_struct selected_plmn;
+ kal_bool is_as_plmn_list_present;
+ as_plmn_list_struct as_plmn_list;
+ as_cell_type_enum selected_cell_type;
+ kal_bool is_ps_conn_releasing;
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_selected_plmn[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
+ scan_type_enum scan_type;
+ kal_bool is_stored_list_exist; // only for stored search not for fullband + fullband and stored
+ fullband_result_enum is_fullband_finished;
+ kal_bool is_quick_search;
+} nas_sv_mm_plmn_search_cnf_struct;
+
+/* workaround need to remove */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 gibi_tag;
+ kal_uint8 plmn_id_num;
+ plmn_id_struct plmn_id[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
+ kal_uint8 ta_code[MAX_NUM_MULTI_PLMN][3];
+ kal_uint8 cell_id[MAX_NUM_MULTI_PLMN][5];
+ nrrc_ac1_selection_assistance_info_enum
+ ac1_selection_assistance_info[MAX_NUM_MULTI_PLMN];
+ kal_bool ims_emergency_support;
+ kal_uint16 band;
+ duplex_type_enum duplex_type;
+} nas_sv_nrrc_sys_info_update_ind_struct;
+/* workaround need to remove */
+
+
+typedef union
+{
+ nas_sv_ratcm_sys_info_update_ind_struct mm_sys_info;
+ nas_sv_emm_sys_info_update_ind_struct emm_sys_info;
+ nas_sv_nrrc_sys_info_update_ind_struct nrrc_sys_info;
+} nwsel_nas_sv_sys_info_update_ind_union;
+
+typedef union
+{
+ kal_uint8 nr_cell_id[MAX_NUM_MULTI_PLMN][5];
+ kal_uint32 lte_cell_id[MAX_NUM_MULTI_PLMN];
+ kal_uint32 umts_cell_id;
+ kal_uint16 gsm_cell_id;
+} cell_id_union;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ nwsel_nas_sv_sys_info_update_ind_union sys_info;
+} nwsel_nas_sv_sys_info_update_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 eq_plmn_count;
+ plmn_id_struct eq_plmn_id[MAX_NUM_EQ_PLMN];
+} nwsel_nas_sv_nrrc_eq_plmn_list_update_req_struct;
+
+
+typedef struct
+{
+ kal_bool is_ecc_triggered;
+ /* filled by MM */
+ kal_bool is_csfb_ongoing;
+ kal_uint16 factory_mode_arfcn;
+} gsm_search_param_container_struct;
+
+typedef struct
+{
+ kal_bool is_manual_csg_sel; // identify if the csg_id below is valid
+ kal_uint32 csg_id;
+ kal_bool is_ecc_triggered;
+ /* filled by MM */
+ kal_bool is_csfb_ongoing;
+ kal_uint16 factory_mode_arfcn;
+} umts_search_param_container_struct;
+
+typedef struct
+{
+ lte_duplex_type_enum lte_type;
+ /* NWSEL search ANY and this flag set to True, ERRC will only find LTE with IMS support.Otherwise, ERRC report Not_Found */
+ kal_bool force_ims_ecc_cell;
+#ifdef __NG_ECALL_SUPPORT__
+ /* Indicate whether this search needs to prefer IMS ecc cell. If one of search preference and prefer_ims_ecc_cell is false, not prefer ims ecc cell.
+ * Check this field only when force_ims_ecc_cell is set to FALSE. */
+ kal_bool prefer_ims_ecc_cell;
+ /* Use in eCall only mode, force 4G AS to search cells with ecall_over_ims_support*/
+ kal_bool force_ecall_cell;
+#endif /* __NG_ECALL_SUPPORT__ */
+
+ /* OOS scenario, NWSEL need to search again Not-Found entry. AS should not apply U2D filter when this flag on */
+ kal_bool force_stored_search;
+ endc_search_enum endc_search; /* Search ENDC cell or not for LTE cell. */
+ kal_bool is_manual_csg_sel; // identify if the csg_id below is valid
+ kal_uint32 csg_id;
+ kal_bool is_mpsr_trigger; //for VzW MPSR expired based improvement
+ kal_uint32 factory_mode_arfcn;
+ /* OOS interleave source */
+ kal_uint8 additional_stored_freq_plmn_num;
+ plmn_id_struct additional_stored_freq_plmn[MAX_NUM_SEARCH_PLMN];
+} lte_search_param_container_struct;
+
+typedef struct
+{
+ NRARFCN factory_mode_arfcn;
+ /* NWSEL search ANY and this flag set to True, ERRC will only find LTE with IMS support.Otherwise, ERRC report Not_Found */
+ kal_bool force_ecc_cell;
+ /* OOS scenario, NWSEL need to search again Not-Found entry. AS should not apply U2D filter when this flag on */
+ kal_bool force_stored_search;
+ /* OOS interleave source */
+ kal_uint8 additional_stored_freq_plmn_num;
+ plmn_id_struct additional_stored_freq_plmn[MAX_NUM_SEARCH_PLMN];
+} nr_search_param_container_struct;
+
+
+typedef union
+{
+ gsm_search_param_container_struct gsm;
+ umts_search_param_container_struct umts;
+ lte_search_param_container_struct lte;
+ nr_search_param_container_struct nr;
+} search_rat_specific_param_container_union;
+
+typedef struct
+{
+ kal_bool is_power_on; //for CMCC case 5.1.1: is first search after power on
+ kal_bool is_manual_sel; // if search is manual selection
+ kal_bool trigger_by_signal_appear;
+ kal_bool is_higher_plmn_search;
+ kal_uint32 factory_mode_arfcn; //0xFFFFFFFF means invalid arfcn - do normal search. For fast camp on test machine
+
+ scan_type_enum scan_type;
+ search_period_enum search_period; // only a suggestion value for RAT switch.
+ /* number of valid items in the band list. */
+ kal_uint32 num_of_band;
+ /*band list for OP/MCC band and MRU/RAL */
+ kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE];
+ kal_bool is_band_list_sorted;
+ kal_bool is_quick_search;
+ kal_bool is_all_stored;
+ found_mcc_info_struct found_mcc_info;
+ kal_bool is_predict_search;
+} search_param_container_struct;
+
+
+typedef struct
+{
+ kal_bool force_to_release;
+ kal_bool is_clear_abnormal_state;
+ kal_bool is_srlte;
+ kal_bool is_to_deactivate_c2k_cs_service;
+} nas_control_param_container_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint8 trx_id;
+ plmn_search_type_enum plmn_search_type;
+ kal_uint8 plmn_id_count;
+ plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
+ nas_control_param_container_struct nas_ctrl_container;
+ search_param_container_struct as_param_container;
+ search_rat_specific_param_container_union as_specific_container;
+} nwsel_nas_sv_plmn_search_req_struct;
+
+typedef nwsel_nas_sv_plmn_search_req_struct nas_sv_emm_plmn_search_req_struct;
+typedef nwsel_nas_sv_plmn_search_req_struct nas_sv_mm_plmn_search_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_manual_sel;
+} nwsel_nas_sv_manual_mode_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_manual_list;
+ rat_enum rat;
+ lte_duplex_type_enum lte_type; // phase out
+ kal_uint8 plmn_id_count;
+ plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
+ scan_type_enum scan_type;
+ kal_bool is_mpsr_trigger; //for VzW MPSR expired based improvement
+ kal_bool is_elevator_mode;
+ found_mcc_info_struct found_mcc_info;
+ kal_bool is_higher_plmn_search;
+ kal_bool list_endc_info; /* LIST ENDC info or not for LTE cell. ERRC will collect SIB2 for PLMN_LIST. */
+ /** number of valid items in the band list. */
+ kal_uint32 num_of_band;
+ /** band list for MCC Band for PLMN List Optimization */
+ kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE];
+ user_list_type_enum user_list_type;
+ kal_uint8 given_number_of_plmn; // When xAS found the given number of plmn, xAS return PLMN_LIST_CNF. When value is 0 means xAS do complete list, no need care it.
+ network_scan_input_struct network_scan_input;
+} nwsel_nas_sv_plmn_list_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_user_plmn_list_ongoing;
+} nwsel_nas_sv_plmn_list_status_update_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ as_plmn_list_struct as_plmn_list;
+ scan_type_enum scan_type;
+ plmn_list_result_enum cause;
+ kal_bool is_complete; // If list not complete, the available list is not complete too.
+ kal_bool is_plmn_list_aborted; //indicate if the PLMN List is aborted by PLMN_LIST_ABORT_REQ
+} nwsel_nas_sv_plmn_list_cnf_struct;
+
+typedef nwsel_nas_sv_plmn_list_cnf_struct nas_sv_mm_plmn_list_cnf_struct;
+typedef nwsel_nas_sv_plmn_list_cnf_struct nas_sv_emm_plmn_list_cnf_struct;
+
+typedef nwsel_nas_sv_plmn_list_req_struct nas_sv_mm_plmn_list_req_struct;
+typedef nwsel_nas_sv_plmn_list_req_struct nas_sv_emm_plmn_list_req_struct;
+typedef nwsel_nas_sv_plmn_list_status_update_req_struct nas_sv_vgmm_plmn_list_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ network_scan_5g_output_struct nw_scan_5g_output;
+} nwsel_nas_sv_plmn_scan_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ lte_duplex_type_enum lte_type; // phase out
+ kal_uint8 plmn_id_count;
+ plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
+} nwsel_nas_sv_csg_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ as_csg_list_struct as_csg_list;
+} nwsel_nas_sv_csg_list_cnf_struct;
+
+typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_mm_csg_list_cnf_struct;
+typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_emm_csg_list_cnf_struct;
+typedef nwsel_nas_sv_csg_list_cnf_struct nas_sv_nrrc_csg_list_cnf_struct;
+
+
+typedef nwsel_nas_sv_csg_list_req_struct nas_sv_mm_csg_list_req_struct;
+typedef nwsel_nas_sv_csg_list_req_struct nas_sv_emm_csg_list_req_struct;
+typedef nwsel_nas_sv_csg_list_req_struct nas_sv_nrrc_csg_list_req_struct;
+
+/* MSG_ID_NWSEL_NAS_SV_NRRC_PLMN_SEARCH_PREFERENCE_UPDATE_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool prefer_ims_emergency;
+} nwsel_nas_sv_nrrc_plmn_search_preference_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_received;
+ kal_bool is_security_check;
+ kal_uint8 sor_header;
+ kal_uint16 oplmn_data_size;
+ kal_uint8 *oplmn_data;
+} nwsel_nas_sv_sor_oplmn_list_update_ind_struct;
+
+typedef nwsel_nas_sv_sor_oplmn_list_update_ind_struct nas_sv_vgmm_sor_oplmn_list_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool abort_reg_needed;
+} nwsel_nas_sv_sor_oplmn_list_update_rsp_struct;
+
+typedef nwsel_nas_sv_sor_oplmn_list_update_rsp_struct nas_sv_vgmm_sor_oplmn_list_update_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 size_of_addr;
+ kal_uint8 addr[MAX_SIM_ADDR_LEN];
+} nwsel_nas_sv_sor_secure_packet_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+ kal_uint16 size_of_sim_ack_data;
+ kal_uint8 sim_ack_data[256];
+ kal_uint8 cause;
+} nwsel_nas_sv_sor_secure_packet_rsp_struct;
+
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} nwsel_nas_sv_plmn_search_ind_struct;
+
+/*Check Active RAT Req*/
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum check_rat;
+}nwsel_nas_sv_check_active_rat_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat; /*For RATCM only*/
+}nas_sv_ratcm_check_active_rat_req_struct;
+
+/*Set Active RAT Req*/
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat; /*For RATCM only*/
+}nas_sv_ratcm_set_active_rat_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat; /*For RATCM only*/
+}nas_sv_ratcm_sniffer_stop_req_struct;
+
+
+/*Check Active RAT Cnf*/
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat; /*For RATCM only*/
+ kal_bool is_active_rat;
+}nas_sv_any_check_active_rat_cnf_struct;
+
+typedef nas_sv_any_check_active_rat_cnf_struct nas_sv_ratcm_check_active_rat_cnf_struct;
+
+/*Set Active RAT Cnf*/
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat; /*For RATCM only*/
+ kal_bool is_success;
+}nas_sv_any_set_active_rat_cnf_struct;
+
+typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_ratcm_set_active_rat_cnf_struct;
+typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_emm_set_active_rat_cnf_struct;
+typedef nas_sv_any_set_active_rat_cnf_struct nas_sv_vgmm_set_active_rat_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ // sniff RPLMN
+ // only valid when the conditions hold
+ // plmn_search_status == PLMN_SEARCH_UNRELATED
+ // mm_proc_status == (MS_IN_NO_SERVICE || MS_IN_LIMITED_SERVICE)
+ as_sniffer_req_service_enum sniffer_service_type;
+ as_sniffer_plmn_list_operate_type_enum plmn_list_operate_type;
+ kal_uint8 plmn_id_count;
+ plmn_id_struct plmn_id[MAX_NUM_SNIFFER_PLMN];
+
+}nwsel_nas_sv_sniffer_start_req_struct;
+
+typedef nwsel_nas_sv_sniffer_start_req_struct nas_sv_ratcm_sniffer_start_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat; /*stop rat*/
+}nwsel_nas_sv_sniffer_stop_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint8 plmn_id_count;
+ plmn_id_struct plmn_id[MAX_NUM_SIGNAL_APPEAR_PLMN];
+ kal_uint32 num_of_detected_band;
+ kal_uint16 detected_band_list[MAX_SEARCH_BAND_LIST_SIZE];
+}nwsel_nas_sv_signal_appear_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint32 num_of_detected_band;
+ kal_uint16 detected_band_list[MAX_SEARCH_BAND_LIST_SIZE];
+}nas_sv_ratcm_signal_appear_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nwsel_status_enum nwsel_search_status;
+} nwsel_nas_sv_display_search_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint8 plmn_band_count;
+ plmn_band_struct plmn_band[MAX_PLMN_BAND_NUM];
+} nwsel_nas_sv_plmn_band_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool force_to_release;
+} nas_sv_mm_deactivate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_completed;
+ kal_bool is_ps_conn_releasing;
+} nas_sv_mm_deactivate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool force_to_release;
+} nas_sv_emm_deactivate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_completed;
+} nas_sv_emm_deactivate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ratcm_gas_security_mode_req_struct gas_security;
+ uas_security_context_struct uas_security[2];
+ csfb_indicator_enum csfb_indicator;
+ loopback_mode_status_enum loopback_mode_status;
+ kal_bool is_lai_valid;
+ lai_struct lai;
+ kal_bool is_srvcc;
+ kal_bool is_mapped_rai_valid;
+ rai_struct mapped_rai;
+} nas_sv_mm_nas_ctxt_transfer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_csfb_fast_return;
+} nas_sv_emm_as_param_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 kasme[KASME_NUM];
+} nas_sv_emm_nas_ctxt_transfer_cnf_struct, nas_sv_emm_as_param_update_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum connection_domain;
+ kal_bool is_gibi_tag_valid;
+ kal_uint16 gibi_tag;
+} nas_sv_mm_as_param_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ no_action_cause_enum cause;
+ kal_uint8 trx_id;
+} nas_sv_emm_no_action_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trx_id;
+} nas_sv_mm_no_action_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ no_action_cause_enum cause;
+} nwsel_nas_sv_no_action_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ enasas_add_epsbearer_list_struct add_list;
+} nas_sv_esm_as_param_update_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ domain_id_enum attach_type;
+ mm_cause_enum cause; /* failure cause*/
+ kal_uint8 att_id; /* Johnny: 3G RAC, for attach_req and detach_req using */
+ mm_cause_enum abnormal_lu_cause; /* MAUI_01650679 */
+ cell_info_and_rat_struct cell_info; /* registered cell info*/
+} nas_sv_mm_attach_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 att_id;
+ domain_id_enum attach_type;
+ cell_info_and_rat_struct cell_info;
+ additional_update_result_enum additional_update_result;
+ kal_bool is_lai_valid;
+ lai_struct lai;
+} nas_sv_emm_attach_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 att_id;
+ vgmm_cause_enum cause; /* failure cause*/
+ cell_info_and_rat_struct cell_info; /* registered cell info*/
+ kal_uint8 allowed_nssai_length; /* Number of bytes in allowed NSSAI */
+ kal_uint8 allowed_nssai[LEN_OF_ALL_ALLOWED_NSSAI]; /* Allowed NSSAI */
+} nas_sv_vgmm_attach_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 att_id;
+ vgmm_cause_enum cause;
+ cell_info_and_rat_struct cell_info;
+ kal_bool is_reged; /* 5GMM registration status */
+ kal_bool is_reattach;
+ sat_loc_send_type_enum sat_send_type;
+} nas_sv_vgmm_detach_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ emm_nw_feature_support_struct eps_nw_feature;
+} nas_sv_emm_nw_feature_support_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum detach_type;
+ mm_cause_enum cause;
+ //kal_bool issearching;
+ kal_bool is_reged;
+ kal_uint8 att_id;
+ cell_info_and_rat_struct cell_info;
+ integ_protect_status_enum is_integ_protected;
+ kal_uint8 invalid_cs_sim_counter;
+ kal_uint8 invalid_ps_sim_counter;
+ sat_loc_send_type_enum sat_send_type;
+ kal_bool is_reattach;
+} nas_sv_mm_detach_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 att_id;
+ domain_id_enum detach_type;
+ emm_cause_enum emm_cause;
+ emm_cause_source_enum emm_cause_source;
+ esm_cause_enum esm_cause;
+ kal_bool is_reged;
+ cell_info_and_rat_struct cell_info;
+ kal_bool is_reattach;
+ sat_loc_send_type_enum sat_send_type;
+ dos_enhance_info_struct dos_enhance_info;
+ kal_bool is_auth_reject_during_attach;
+} nas_sv_emm_detach_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ umts_duplex_mode_type source_umts_duplex_mode;
+ umts_duplex_mode_type target_umts_duplex_mode;
+ lte_duplex_mode_type source_lte_duplex_mode;
+ lte_duplex_mode_type target_lte_duplex_mode;
+ mode_switch_cause_enum cause;
+} nas_sv_any_duplex_mode_change_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+} nas_sv_any_duplex_mode_change_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rfoff_cause_enum rfoff_cause;
+} nas_sv_any_rfoff_req_struct;
+
+typedef nas_sv_any_rfoff_req_struct nas_sv_pam_rfoff_ntf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} nas_sv_ratcm_cell_change_finish_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
+ /* Only for LTE */
+ kal_uint8 multi_ta_code[MAX_NUM_MULTI_PLMN][2]; // 36.331 R14 CR2912 EUTRAN sharing enhancement
+ rat_enum rat;
+ ue_capability_struct acting_capability;
+ kal_bool is_nw_endc_disabled;
+ nas_sv_capability_update_procedure_type_enum query_proc;
+ domain_id_enum capability_query_attach_type;
+ mm_user_search_type_enum capability_query_search_type;
+} nwsel_nas_sv_capability_query_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ue_capability_struct capability;
+ kal_bool is_nw_endc_disabled;
+ kal_bool will_trigger_search; // if nwsel trigger search, can update by next sys_info.
+ nas_sv_local_release_cause_enum local_rel_cause;
+} nwsel_nas_sv_capability_query_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ue_capability_struct capability;
+ kal_bool is_nw_endc_disabled;
+ nas_sv_local_release_cause_enum local_rel_cause;
+} nwsel_nas_sv_capability_update_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ nas_sv_capability_rat_enum target_rat;
+ ue_capability_struct capability;
+} nas_sv_ratcm_cap_update_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ nas_sv_capability_rat_enum target_rat;
+ kal_bool is_successful; /* Indicates whether enabling or disabling capability is successful. */
+} nas_sv_ratcm_cap_update_cnf_struct;
+
+typedef struct {
+ kal_uint32 begin;
+ kal_uint32 end;
+} nas_freq_range_struct;
+
+typedef struct {
+ nas_freq_range_struct freq_range;
+ kal_int16 rssi;
+ kal_uint16 band;
+} nas_ps_result_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum power_scan_rat; // could be multi-rat
+ kal_uint32 nr_num_of_band;
+ kal_uint16 nr_band_list[MAX_SEARCH_BAND_LIST_SIZE];
+ kal_uint32 lte_num_of_band;
+ kal_uint16 lte_band_list[MAX_SEARCH_BAND_LIST_SIZE];
+} nwsel_nas_sv_power_scan_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 power_scan_result_list_num;
+ nas_ps_result_struct power_scan_result_list[NAS_MAX_PS_RESULT_LIST];
+} nwsel_nas_sv_power_scan_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 power_scan_result_list_num;
+ nas_ps_result_struct power_scan_result_list[NAS_MAX_PS_RESULT_LIST];
+} nwsel_nas_sv_power_scan_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ps_cause_enum cause;
+} nas_sv_esm_eps_attach_needed_rej_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ plmn_id_struct current_plmn_id;
+
+} nas_sv_esm_eps_attach_needed_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool force_emc_attach;
+} nas_sv_esm_emc_attach_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ srvcc_status_enum status;
+} nas_sv_any_srvcc_status_update_ind_struct;
+
+typedef struct
+{
+ kal_bool forbidden_plmn_update_not_allowed; /*MM may change NW reject cause, and no need to add forbidden PLMN */
+ kal_bool is_back_to_abnormal_la;
+ kal_bool is_rau_performed;
+ mm_check_ecall_status_enum ecall_status;
+ kal_bool is_mobility_rau; /*To check whether update_type is periodic rau or mobility rau */
+ integ_protect_status_enum is_integ_protected;
+ kal_uint8 invalid_cs_sim_counter;
+ kal_uint8 invalid_ps_sim_counter;
+
+ /* todo remove, NWSEL shall not know those status*/
+ kal_bool stored_lai_valid;
+ kal_bool stored_rai_valid;
+ gsm_state_enum gsm_attach_state;
+ gprs_state_enum gprs_attach_state;
+ gsm_update_status_enum gsm_update_status;
+ gprs_update_status_enum gprs_update_status;
+
+ /* todo use seperate interface to update */
+ plmn_id_struct rplmn; //from stored lai. Valid when LR_ACCEPT & LR_ACCEPT_PS_ONLY
+ kal_bool is_update_eq_plmn_needed; /* always check; indicate if NWSEL need to update EPLMN */
+ kal_uint8 eq_plmn_byte_count;
+ kal_uint8 eq_plmn_id[MAX_NUM_EQ_PLMN*3]; /* the EPLMN list from NW; 3 is NWSEL_PLMN_LEN */
+
+}mm_rat_specific_param_container_struct;
+
+#include "nwsel_eval_enums.h"
+
+typedef struct
+{
+ kal_bool stored_lai_valid;
+ kal_bool stored_guti_valid;
+ gsm_state_enum gsm_attach_state;
+ eps_state_enum lte_attach_state;
+ gsm_update_status_enum gsm_update_status;
+ eps_update_status_enum lte_update_status;
+#ifdef __NG_ECALL_SUPPORT__
+ mm_check_ecall_status_enum ecall_status;
+#endif /* __NG_ECALL_SUPPORT__ */
+} update_param_struct;
+
+typedef struct
+{
+ esm_cause_enum esm_cause;
+ mm_cause_enum airlr_cause; // If above lr_cause is replaced, EMM will bring real 'air cause' by this parameter. If it is none, just use lr_cause.
+ kal_bool is_esm_attempt_max_times;
+ additional_update_result_enum additional_update_result;
+ eps_attach_update_result_enum eps_attach_update_result;
+ kal_bool is_ims_vops_support;
+ lte_duplex_type_enum lte_type;
+ //CR1917: REL12 feature, use REL11 temporarily
+ /* is_eutran_not_allowed should be checked only when Reject#15. Disable E-UTRAN if #15 and this field is True. */
+ kal_bool is_eutran_not_allowed;
+ kal_bool is_ps_reattach;
+ kal_bool is_service_request_max_times;
+ kal_bool is_t3402_valid;
+ kal_uint16 t3402;
+ kal_bool is_rach_fail_max_times;
+ integ_protect_status_enum is_integ_protected;
+ kal_uint8 invalid_cs_sim_counter;
+ kal_uint8 invalid_ps_sim_counter;
+ /* use to identify the TA is change or not when TAU/Combined TAU */
+ kal_bool is_mobility_tau;
+ kal_bool is_persistent_EPS_bearer_exist;
+ kal_bool is_emc_bs_support;
+ restrict_dcnr_enum restrict_dcnr_ind;
+ kal_bool is_tau_before_search;
+ update_param_struct update_param;
+ /* [TMO] notify NAS_SV not to Disable S1 under real network */
+ kal_bool is_t3402_not_start;
+}emm_rat_specific_param_container_struct;
+
+typedef struct
+{
+ mm_cause_enum airlr_cause;
+ vg_ims_3gpp_ind_enum ims_vops_supported_indicator;
+ vg_emergency_service_ind_enum emc_supported_indicator;
+ vg_emergency_fallback_ind_enum emc_fallback_supported_indicator;
+ vgmm_5g_update_status_enum vg_update_status;
+}vgmm_rat_specific_param_container_struct;
+
+typedef union
+{
+ mm_rat_specific_param_container_struct mm;
+ emm_rat_specific_param_container_struct emm;
+ vgmm_rat_specific_param_container_struct vgmm;
+} nas_rat_specific_param_container_union;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ nas_proc_enum nas_proc;
+ lr_result_enum lr_result;
+ mm_cause_enum lr_cause; // This value may be replaced by customized cause.
+ kal_uint8 attempt_counter;
+ nas_rat_specific_param_container_union nas_specific_container;
+} nas_sv_any_regn_result_ind_struct;
+
+typedef nas_sv_any_regn_result_ind_struct nwsel_nas_sv_regn_result_ind_struct;
+
+typedef nwsel_nas_sv_plmn_band_ind_struct nas_sv_ratcm_plmn_band_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ plmn_search_status_enum plmn_search_status;
+ plmn_search_type_enum plmn_search_type; /* new plmn search type */
+} nwsel_nas_sv_nrrc_regn_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool normal_oos_recovery_round_present;
+ kal_uint8 normal_oos_recovery_round; // default value = 5
+ kal_bool inactive_fullband_period_present;
+ kal_uint16 inactive_fullband_period; // default = 200s
+ kal_bool inactive_sniffer_period_present;
+ kal_uint8 inactive_sniffer_period; // default = 30s
+ kal_bool is_inactive_mode_present;
+ kal_bool is_inactive_mode; // True: enter inactive mode, False: leave inactive mode
+} nwsel_nas_sv_nrrc_inactive_mode_configuration_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_over_inactive_mode_threshold;
+} nwsel_nas_sv_nrrc_service_recovery_round_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ regn_proc_status_enum mm_proc_status;
+}nwsel_nas_sv_vgmm_regn_status_update_req_struct;
+
+
+/* NRRC related NAS interface */
+
+/* shall sync nas_sv_nrrc_plmn_loss_ind_struct */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_as_plmn_list_present;
+ as_plmn_list_struct as_plmn_list;
+} nwsel_nas_sv_nr_plmn_loss_ind_struct;
+
+/* common */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_cell_type[MAX_NUM_MULTI_PLMN];
+ /// source from cell reselection or search
+ found_ind_source_enum source;
+ rat_enum rat;
+ cell_id_union cell_id;
+} nas_sv_any_plmn_found_ind_struct;
+
+typedef nas_sv_any_plmn_found_ind_struct nwsel_nas_sv_plmn_found_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum anchor_rat;
+ plmn_search_status_enum plmn_search_status;
+ as_cell_type_enum cell_type;
+ plmn_search_type_enum plmn_search_type; /* Only for EMM/PLMNSEL to know if needed to check Forbidden TA list */
+} nas_sv_any_search_status_update_req_struct;
+
+typedef nas_sv_any_search_status_update_req_struct nwsel_nas_sv_search_status_update_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum disable_rat;
+} nas_sv_any_rat_disable_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_user_plmn_list_ongoing;
+} nas_sv_any_plmn_list_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 plmn_id_count;
+ plmn_id_struct plmn_id[MD1_MAX_NUM_HPLMN];
+ kal_uint8 home_country_mcc[3];
+} nas_sv_any_hplmn_info_update_req_struct;
+
+typedef nas_sv_any_hplmn_info_update_req_struct nwsel_nas_sv_hplmn_info_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ update_eplmn_struct eplmn_info;
+} nas_sv_any_eplmn_update_ind_struct;
+
+typedef nas_sv_any_eplmn_update_ind_struct nwsel_nas_sv_eplmn_update_ind_struct;
+
+/* eval refactor */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ update_param_struct update_param;
+} nas_sv_emm_update_param_ind_struct;
+
+typedef nas_sv_emm_update_param_ind_struct nwsel_nas_sv_emm_update_param_ind_struct;
+
+/***** message structure definition *****/
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_plmn_search_2G3G_ongoing;
+ as_cell_type_enum cell_type; // 2G/3G camped on cell type
+ plmn_search_type_enum plmn_search_type; /* Only for EMM/PLMNSEL to know if needed to check Forbidden TA list */
+
+} nas_sv_emm_search_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool prefer_ims_emergency;
+} nas_sv_emm_search_preference_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ regn_proc_status_enum mm_proc_status; // indicate if MS is in limited or no service
+ plmn_search_status_enum plmn_search_status;
+ plmn_search_type_enum plmn_search_type;
+ // sniff RPLMN
+ // only valid when the conditions hold
+ // plmn_search_status == PLMN_SEARCH_UNRELATED
+ // mm_proc_status == (MS_IN_NO_SERVICE || MS_IN_LIMITED_SERVICE)
+ kal_uint8 plmn_id_count;
+ plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
+ kal_bool is_send_to_as;
+ kal_bool other_rat_found_notify_4G;
+} nas_sv_emm_regn_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ domain_id_enum conn_domain;
+ kal_bool is_waiting_cell; //RRC connection release, no cell case, need to wiat ERRC to report a new cell
+} nas_sv_emm_out_of_service_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ as_plmn_list_struct eas_plmn_list;
+ kal_bool full_band_searched_4g;
+ plmn_loss_reason_enum plmn_loss_reason;
+} nas_sv_emm_plmn_loss_ind_struct;
+
+//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 emc_fplmn_count;
+ plmn_id_struct emc_fplmn_list[MAX_NUM_EMC_FPLMN];
+ // band 0 => all band disabled, bar this PLMN
+ kal_uint16 emc_fplmn_band[MAX_NUM_EMC_FPLMN];
+} nas_sv_emm_emc_fplmn_list_update_req_struct;
+//#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ voice_domain_preference_enum eutran_voice_domain_preference;
+ ue_mode_enum ue_mode;
+ kal_bool sms_only;
+ voice_domain_preference_enum utran_voice_domain_preference;
+} nas_sv_emm_uemode_param_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 t3402_value; // t3402 value in seconds
+} nas_sv_emm_t3402_change_ind_struct; // __REL10__: t3402
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ plmn_id_struct current_plmn_id;
+ timer_status_enum status;
+} rac_nas_sv_t3402_stop_ind_struct;
+
+typedef rac_nas_sv_t3402_stop_ind_struct nas_sv_emm_t3402_stop_ind_struct;
+
+//#if defined( __VOLTE_SUPPORT__) || defined (UNIT_TEST)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool prefer_ims_emergency;
+} nas_sv_emm_plmn_search_preference_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ emc_status_enum emc_status;
+ emc_pdn_status_enum emc_pdn_status;
+} nas_sv_emm_emergency_status_update_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint32 num_of_band;
+ kal_uint16 band_list[MAX_SEARCH_BAND_LIST_SIZE];
+} nwsel_nas_sv_background_band_learning_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} nwsel_nas_sv_background_band_learning_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} nwsel_nas_sv_background_band_learning_stop_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} nwsel_nas_sv_background_band_learning_stop_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 local_rel_cause;
+} nas_sv_check_cap_update_ind_struct;
+
+//#endif // __VOLTE_SUPPORT__
+#if defined(__LTE_RAT__) && (defined(__GSM_RAT__) || defined(__UMTS_RAT__))
+
+typedef errc_sim_protect_req_struct nas_sv_emm_power_on_protection_req_struct;
+
+#endif
+
+#ifdef __FIVEG_NAS__
+
+typedef struct
+{
+ /* VGMM Definitions */
+ vgmm_bcast_regn_update_enum vgmm_regn_update_type;
+
+ kal_bool vgmm_msg_type_present;
+ vgmm_msg_type_enum vgmm_msg_type;
+
+ kal_bool vgmm_reg_type_present;
+ vgmm_reg_type_enum vgmm_reg_type;
+
+ kal_bool vgmm_detach_type_present;
+ vgmm_detach_type_enum vgmm_detach_type;
+
+ kal_bool vgmm_cause_present;
+ vgmm_cause_enum vgmm_cause;
+
+ kal_bool vgmm_attempt_cnt_present;
+ kal_uint8 vgmm_attempt_cnt;
+
+ kal_bool vgmm_ims_voice_over_ps_ind_present;
+ ims_ind_enum vgmm_ims_voice_over_ps_ind;
+ /* End of VGMM Definitions */
+}nas_sv_vgmm_broadcast_regn_result_struct;
+#endif //__FIVEG_NAS__
+
+typedef struct
+{
+ /* EMM Definitions */
+ emm_msg_type_enum emm_msg_type;
+
+ kal_bool emm_cause_present;
+ emm_cause_enum emm_cause;
+
+ /* Whether the UE is registered or not according to state and current executing procedure in EMM view
+ used for EMM/VGMM un-sync state checking for any_xmm_broadcast_regn_result handling */
+ emm_bcast_regn_update_enum emm_regn_update_type;
+ /* End of EMM Definitions */
+}nas_sv_emm_broadcast_regn_result_struct;
+
+typedef struct
+{
+ /* MM Definitions */
+ mm_msg_type_enum mm_msg_type;
+
+ kal_bool is_mm_rej_cause_present;
+ mm_cause_enum mm_rej_cause;
+
+ kal_bool is_mm_attempt_cnt_present;
+ kal_uint8 mm_attempt_cnt;
+ /* End of MM Definitions */
+}nas_sv_mm_broadcast_regn_result_struct;
+
+typedef struct
+{
+ /* GMM Definitions */
+ gmm_msg_type_enum gmm_msg_type;
+
+ kal_bool is_gmm_proc_direction_present;
+ gmm_proc_direction_enum gmm_proc_direction;
+
+ kal_bool is_gmm_attach_type_present;
+ gmm_attach_type_enum gmm_attach_type;
+
+ kal_bool is_gmm_update_type_present;
+ gmm_update_type_enum gmm_update_type;
+
+ kal_bool is_gmm_detach_type_present;
+ gmm_detach_type_enum gmm_detach_type;
+
+ kal_bool is_gmm_attach_result_present;
+ gmm_attach_result_enum gmm_attach_result;
+
+ kal_bool is_gmm_update_result_present;
+ gmm_update_result_enum gmm_update_result;
+
+ kal_bool is_gmm_cause_present;
+ mm_cause_enum gmm_cause;
+
+ kal_bool is_gmm_attempt_cnt_present;
+ kal_uint8 gmm_attempt_cnt;
+ /* End of GMM Definitions */
+}nas_sv_gmm_broadcast_regn_result_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ /* XMM Common Definitions */
+ rat_type_enum source_rat;
+ integ_protect_status_enum is_integ_protected;
+ domain_id_enum cn_domain;
+ /* End of XMM Common Definitions */
+
+ union
+ {
+ #ifdef __FIVEG_NAS__
+ /* VGMM Definitions */
+ nas_sv_vgmm_broadcast_regn_result_struct vgmm_info;
+ #endif //__FIVEG_NAS__
+
+ /* EMM Definitions */
+ nas_sv_emm_broadcast_regn_result_struct emm_info;
+
+ /* MM Definitions */
+ nas_sv_mm_broadcast_regn_result_struct mm_info;
+
+ /* GMM Definitions */
+ nas_sv_gmm_broadcast_regn_result_struct gmm_info;
+ }info;
+
+} nas_sv_xmm_broadcast_regn_result_struct;
+
+typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_vgmm_broadcast_regn_result_ind_struct;
+typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_emm_broadcast_regn_result_ind_struct;
+typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_mm_broadcast_regn_result_ind_struct;
+typedef nas_sv_xmm_broadcast_regn_result_struct nas_sv_any_broadcast_regn_result_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+
+ xmm_common_timer_id_enum xmm_common_timer_id;
+ kal_bool status; /**< KAL_FALSE:Stop, KAL_TRUE:start*/
+ plmn_id_struct backoff_timer_plmn;
+ kal_bool is_backoff_timer_plmn_in_eq_plmn_list;
+
+#ifdef __SUPPORT_CLIB_TIME__ /**< Target & MoDIS */
+ kal_int64 expire_time; /**< unit is seconds */
+#else /**< UESIM */
+ kal_uint16 remaining_time; /**< unit is seconds */
+#endif
+} nas_sv_xmm_broadcast_timer_status_struct;
+
+typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_vgmm_broadcast_timer_status_ind_struct;
+typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_emm_broadcast_timer_status_ind_struct;
+typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_mm_broadcast_timer_status_ind_struct;
+typedef nas_sv_xmm_broadcast_timer_status_struct nas_sv_any_broadcast_timer_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ /* XMM Common Definitions */
+ rat_type_enum source_rat;
+
+} nas_sv_xmm_broadcast_detach_required_struct;
+
+typedef nas_sv_xmm_broadcast_detach_required_struct nas_sv_emm_broadcast_detach_required_ind_struct;
+typedef nas_sv_xmm_broadcast_detach_required_struct nas_sv_any_broadcast_detach_required_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_allow;
+} nas_sv_any_operation_allow_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nas_sv_any_operation_enum operation_to_be_allowed;
+} nas_sv_any_operation_allow_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nas_sv_manipulate_connection_enum operation_to_be_exe;
+ kal_bool is_local_release_later;
+} nas_sv_any_manipulate_connection_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_triggered_by_sys_info;
+ ue_capability_struct capability;
+} nas_sv_any_mm_cap_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vg_option_enum vg_option_bitmap;
+ kal_bool is_need_local_release;
+ kal_bool is_trigger_nr_search; //used for option 2 is turned on and search SA
+} rac_nas_sv_vg_option_update_req_struct;
+
+typedef rac_nas_sv_vg_option_update_req_struct nas_sv_any_vg_option_update_req_struct;
+
+typedef l4c_general_modem_configure_set_req_struct nas_sv_any_general_modem_configure_set_req_struct;
+typedef l4c_general_modem_configure_set_cnf_struct nas_sv_any_general_modem_configure_set_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ mode_switch_cause_enum cause;
+} nwsel_nas_sv_vgmm_global_mode_change_start_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_persistent_pdu_session_exist;
+} nas_sv_vgsm_persistent_pdu_session_ind_struct;
+
+typedef nas_sv_vgsm_persistent_pdu_session_ind_struct nwsel_nas_sv_vgsm_persistent_pdu_session_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_roaming;
+ nwsel_capability_disabled_reason_enum disabled_reason;
+} nwsel_nas_sv_disable_info_update_ntf_struct;
+
+typedef nwsel_nas_sv_disable_info_update_ntf_struct nas_sv_any_disable_info_update_ntf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_searching;
+} nwsel_nas_sv_as_plmn_search_report_ind_struct;
+
+#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 !*/
+/* 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 !*/
+/* 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 !*/
+/* 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 !*/
+/* 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 !*/
+/* 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 !*/
+/* 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 !*/
+/* 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 !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/pam2tcm_struct.h b/mcu/protocol/interface/l4/pam2tcm_struct.h
new file mode 100644
index 0000000..fda8053
--- /dev/null
+++ b/mcu/protocol/interface/l4/pam2tcm_struct.h
@@ -0,0 +1,235 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * PAM2TCM_STRUCT.H
+ *
+ * Project:
+ * --------
+ *
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _PAM2TCM_STRUCT_H
+#define _PAM2TCM_STRUCT_H
+
+/* struct */
+#include "kal_public_defs.h"
+#include "l3_inc_local.h"
+
+/* enum */
+#include "l3_inc_enums.h"
+
+
+#define MAX_VZW_APNNI_LEN MAX_APN_LEN
+#define MAX_NUM_OF_VZW_APN_TABLE 20
+
+#define MAX_VZW_APN_PDP_TYPE_LEN 10
+#define MAX_VZW_APN_BEARER_LEN 10
+#define MAX_VZW_APN_IS_ENABLED_LEN 15
+
+typedef struct usm_bearer_info_struct {
+ bcm_enum bcm_info;
+ etft_enum etft_info;
+} usm_bearer_info_struct ;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} tcm_pam_start_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 nsapi;
+ usm_bearer_info_struct bearer_info;
+} tcm_usm_context_update_ind_struct;
+
+typedef struct
+{
+ kal_uint8 wapn;
+ kal_uint8 apn_class;
+ kal_uint32 apnni_len;
+ kal_uint8 apnni[MAX_VZW_APNNI_LEN];
+ pdus_s_nssai_struct s_nssai; /* only valid when rat == RAT_NR */
+ pdp_addr_type_enum pdp_type;
+ rat_enum rat; /* This field shall be RAT_NR when upper layer wants to configure s_nssai ; and when upper layer sets 4G Entry, shall be filled as RAT_LTE */
+ kal_bool is_enable;
+ kal_uint32 apn_timer_value_in_minute;
+} vzw_apn_table_struct;
+
+typedef struct
+{
+ kal_uint8 wapn;
+ kal_uint32 max_conn_count;
+ kal_uint32 max_conn_timer_value_in_sec; //seconds
+ kal_uint32 wait_time_value_in_sec; //seconds
+ kal_uint32 throttle_time_value_in_sec;
+} vzw_params_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool clear_all_vzw_apn_table;
+ vzw_apn_table_struct apn_info;
+} tcm_pam_set_vzw_apn_table_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ ps_cause_enum error_cause;
+} tcm_pam_set_vzw_apn_table_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} tcm_pam_get_vzw_apn_table_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 num_of_apn_info;
+ vzw_apn_table_struct apn_info[MAX_NUM_OF_VZW_APN_TABLE];
+} tcm_pam_get_vzw_apn_table_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vzw_params_struct params;
+} tcm_pam_set_vzw_params_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ ps_cause_enum error_cause;
+} tcm_pam_set_vzw_params_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} tcm_pam_get_vzw_params_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 num_of_params;
+ vzw_params_struct params[MAX_NUM_OF_VZW_APN_TABLE];
+} tcm_pam_get_vzw_params_cnf_struct;
+
+#define PAM_BLOCKING_TIMER_LENGTH_NOT_BLOCKING 0
+#define PAM_BLOCKING_TIMER_LENGTH_BLOCKING_FOREVER 0xFFFFFFFF
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 apnni_len;
+ kal_uint8 apnni[MAX_VZW_APNNI_LEN];
+
+} tcm_pam_get_apn_blocking_timer_length_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 apnni_len;
+ kal_uint8 apnni[MAX_VZW_APNNI_LEN];
+ // 0: not blocking, 0xFFFFFFFF: blocking forever
+ kal_uint32 timer_value_in_second; //seconds
+} tcm_pam_get_apn_blocking_timer_length_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 apnni_len;
+ kal_uint8 apnni[MAX_VZW_APNNI_LEN];
+} tcm_pam_cancel_apn_blocking_timer_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ pam_event_notify_enum event;
+} tcm_pam_event_notify_req_struct;
+
+typedef ladn_info_update_ind_struct tcm_pam_ladn_info_update_ind_struct;
+
+#endif /* _PAM2TCM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/ps2sat.h b/mcu/protocol/interface/l4/ps2sat.h
new file mode 100644
index 0000000..30a3141
--- /dev/null
+++ b/mcu/protocol/interface/l4/ps2sat.h
@@ -0,0 +1,109 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps2Sat.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+
+#ifndef _PS2SAT_H_
+#define _PS2SAT_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef TEST_TOOL
+#include "tt_defs.h"
+#else
+#include "kal_public_api.h"
+#endif
+
+
+
+#include "ps2sat_struct.h"
+#include "ps2sat_pun.h"
+
+#ifdef TOOL
+#include "set_ps2sat.h"
+#include "get_ps2sat.h"
+#endif
+#ifdef __cplusplus
+}
+
+#endif
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/ps2sat_peer.h b/mcu/protocol/interface/l4/ps2sat_peer.h
new file mode 100644
index 0000000..83b9832
--- /dev/null
+++ b/mcu/protocol/interface/l4/ps2sat_peer.h
@@ -0,0 +1,110 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps2Sat.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+
+#ifndef _PS2SAT_H_
+#define _PS2SAT_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef TEST_TOOL
+#include "tt_defs.h"
+#else
+#include "kal_public_api.h"
+#endif
+
+
+
+#include "ps2sat_peer_struct.h"
+#include "ps2sat_peer_pun.h"
+
+
+#ifdef TOOL
+#include "set_ps2sat_peer.h"
+#include "get_ps2sat_peer.h"
+#endif
+#ifdef __cplusplus
+}
+
+#endif
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/psdm2l4c_enum.h b/mcu/protocol/interface/l4/psdm2l4c_enum.h
new file mode 100644
index 0000000..3ce8e30
--- /dev/null
+++ b/mcu/protocol/interface/l4/psdm2l4c_enum.h
@@ -0,0 +1,125 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * psdm2l4c_enum.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * PSDM<->L4C related enums
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef PSDM_NWSEL_ENUM_H
+#define PSDM_NWSEL_ENUM_H
+
+#endif /* PSDM2L4C_ENUM_H */
+
diff --git a/mcu/protocol/interface/l4/psdm2l4c_struct.h b/mcu/protocol/interface/l4/psdm2l4c_struct.h
new file mode 100644
index 0000000..7a59932
--- /dev/null
+++ b/mcu/protocol/interface/l4/psdm2l4c_struct.h
@@ -0,0 +1,134 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * psdm2l4c_struct.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * PSDM<->L4C related structures
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef PSDM2L4C_STRUCT_H
+#define PSDM2L4C_STRUCT_H
+
+
+#endif /* PSDM2L4C_STRUCT_H */
+
diff --git a/mcu/protocol/interface/l4/rac2l4c_struct.h b/mcu/protocol/interface/l4/rac2l4c_struct.h
new file mode 100644
index 0000000..91846be
--- /dev/null
+++ b/mcu/protocol/interface/l4/rac2l4c_struct.h
@@ -0,0 +1,896 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * rac2l4c_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between RAC and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* 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 : rac2l4c_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _RAC2L4C_STRUCT_H
+#define _RAC2L4C_STRUCT_H
+
+//#include "kal_non_specific_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "kal_general_types.h"
+#include "l4c_common_enum.h"
+#include "l4crac_enums.h"
+#include "l3_inc_enums.h"
+#include "ps_public_struct.h"
+#include "gmss_public.h"
+#include "rac_gmss_struct.h"
+#include "l4c2rac_struct.h"
+#include "c2k_irat_msg_struct.h"
+#include "rac_nas_sv_struct.h"
+#include "rac_vgmm_struct.h"
+#include "global_type.h"
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+#include "l5_l4c_enums.h"
+#endif
+
+typedef struct {
+ plmn_id_struct plmn_id;
+ kal_uint8 status;
+} plmn_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ l4c_rac_response_enum response; /* OK*/
+} l4crac_act_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ plmn_selection_mode_enum plmn_sel_mode; /* AUTO/MANUAL*/
+ l4c_rac_response_enum gsm_status; /* OK/No Cell/Limited service*/
+ l4c_rac_gprs_status_enum gprs_status; /* l4c_rac_gprs_status_enum */
+// kal_uint8 acq_service; /* acquired service: CS/PS/CS_PS*/
+ cell_info_and_rat_struct cell_info;
+ /* MAUI_01650679, __NW_REGISTRATION_CAUSE__ */
+ mm_cause_enum cause; /* registration result */
+} l4crac_reg_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ l4c_rac_gprs_status_enum gprs_status; /* l4c_rac_gprs_status_enum */
+ data_speed_support_enum cell_data_speed_support;
+} l4crac_ps_reg_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ //kal_uint8 service; /* CS/PS/CS_PS*/
+ //kal_uint8 status; /* l4c_rac_dereg_cnf_status_enum */
+ data_speed_support_enum cell_data_speed_support;
+} l4crac_dereg_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ l4c_rac_response_enum response; /* OK or ERROR */
+ mm_cause_enum cause;
+ kal_uint8 num_of_hplmn;
+ rac_plmn_list_struct plmn_list;
+ data_speed_support_enum cell_data_speed_support;
+ user_list_type_enum user_list_type;
+} l4crac_plmn_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rac_plmn_list_struct plmn_list;
+ list_ind_source_enum source;
+} l4crac_plmn_list_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ reg_state_ind_struct reg_state_ind;
+} l4crac_reg_state_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum domain; /* domain_id_enum */
+ mm_cause_enum cause; /* mm_cause_enum */
+} l4crac_reg_cause_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 scell_number_ul;
+ kal_uint8 scell_number_dl;
+ data_speed_support_enum cell_data_speed_support;
+} l4crac_ps_bearer_info_ind_struct;
+
+#if 0 //rx_level, mtk02285, remove old interface
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif /* 0 */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool full_nw_nameP;
+ kal_uint8 full_nw_name_len;
+ kal_uint8 full_nw_name[MAX_NW_NAME_LENGTH];
+ kal_bool short_nw_nameP;
+ kal_uint8 short_nw_name_len;
+ kal_uint8 short_nw_name[MAX_NW_NAME_LENGTH];
+ kal_bool nw_time_zoneP;
+ kal_uint8 nw_time_zone;
+ kal_bool nw_time_zone_timeP;
+ nw_time_zone_time_struct nw_time_zone_time;
+ kal_bool lsa_idP;
+ kal_uint8 lsa_id_len;
+ kal_uint8 lsa_id[3];
+ kal_bool nw_day_light_saving_timeP;
+ kal_uint8 nw_day_light_saving_time;
+ /* MAUI_01664028, mtk02118: added for MMI to exactly know which PLMN the NITZ comes from */
+ plmn_id_struct plmn_id;
+ kal_uint8 domain; /* 0: CS domain, 1: PS domain */
+} l4crac_nw_info_ind_struct; /* Struct shall be the same as gmmreg_nw_info_ind_struct. */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ l4c_rac_response_enum gsm_status; /* OK/No Cell/Limited service*/
+ l4c_rac_gprs_status_enum gprs_status; /* l4c_rac_gprs_status_enum */
+} l4crac_class_change_cnf_struct;
+
+#if 0 // MOLY00083802 remove band related codes in RAC
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_gsm_conn_exist;
+ gmmreg_cipher_ind_enum gsm_cipher_cond;
+ gmmreg_cipher_ind_enum gprs_cipher_cond;
+} l4crac_cipher_ind_struct; /* Must same as gmmreg_cipher_ind_struct */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ cell_info_and_rat_struct cell_info;
+ l4c_rac_response_enum gsm_status; /* l4c_rac_response_enum */
+} l4crac_hz_cell_info_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_dedicated_mode;
+} l4crac_hz_dedicated_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_pkt_transfer_mode;
+} l4crac_hz_pkt_transfer_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ mmi_event_enum event_id; //mmi_event_enum
+} l4crac_ps_event_report_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_roaming_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ l4c_rac_response_enum gsm_status; /* l4c_rac_response_enum */
+ l4c_rac_gprs_status_enum gprs_status; /* l4c_rac_gprs_status_enum */
+ mm_cause_enum cause;
+ cell_info_and_rat_struct cell_info;
+ data_speed_support_enum cell_data_speed_support;
+} l4crac_plmn_search_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+ mm_cause_enum cause;
+} l4crac_set_rat_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4crac_plmn_list_stop_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_prefer_rat_cnf_struct;
+
+
+//#ifdef __GEMINI__
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_rac_mmrr_service_status_enum service_status;
+} l4crac_mmrr_service_status_ind_struct; //GEMINI, 20080217
+//#endif
+
+//#ifdef __REL5__
+typedef struct {
+ kal_uint8 category;
+ l4_addr_bcd_struct tel_number;
+} rac_ecc_number_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 no_ecc; //number of ECC list
+ rac_ecc_number_struct ecc_list[MAX_NW_ECC_NUM]; //ECC list
+} l4crac_nw_ecc_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_ecc_changed;
+ kal_uint8 no_ecc; //number of ECC list
+ rac_ecc_number_struct ecc_list[MAX_NW_ECC_NUM]; //ECC list
+ kal_bool is_eenl_changed; // tell L4 if eenl changed
+ plmn_id_struct eenl_plmn;
+} l4crac_nw_ecc_eenl_ind_struct;
+
+
+//#endif
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 susp_id;
+ susp_resu_source_enum target;
+} l4crac_suspend_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ end_session_result_enum result;
+} l4crac_end_ps_data_session_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ susp_resu_result_enum result;
+ susp_resu_source_enum target;
+} l4crac_susp_resu_update_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id; /* source id*/
+ l4c_rac_response_enum response; /* OK or ERROR */
+ mm_cause_enum cause;
+ rac_csg_list_struct csg_list;
+} l4crac_csg_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4crac_csg_list_stop_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum active_rat;
+} l4crac_active_rat_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_sms_preference_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_rac_sms_preference_enum sms_preference;
+} l4crac_update_sms_preference_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_voice_domain_preference_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_ims_reg_status_update_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_ue_usage_setting_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_ue_mode_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4crac_set_ims_voice_availability_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4crac_set_ims_sms_availability_cnf_struct;
+
+#ifdef __VOLTE_SUPPORT__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ voice_domain_preference_enum eutran_voice_domain_preference;
+ ue_usage_setting_enum ue_usage_setting;
+ ue_mode_enum ue_mode;
+} l4crac_uemode_param_update_ind_struct;
+#endif /* __VOLTE_SUPPORT__ */
+
+typedef struct l4crac_nw_feature_ind_struct
+{
+ LOCAL_PARA_HDR
+ rat_enum active_rat;
+ union
+ {
+ vgmm_nw_feature_support_struct nr;
+ emm_nw_feature_support_struct eps;
+ gmm_nw_feature_support_struct ug;
+ } nw_feature;
+} l4crac_nw_feature_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_update_is_searching;
+ kal_bool is_searching;
+
+} l4crac_plmn_status_ind_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ irat_result_enum result;
+ emm_cause_enum emm_cause;
+ esm_cause_enum esm_cause;
+ kal_bool is_attach_needed;
+}l4crac_attach_result_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ nwsel_ims_service_enum service_type;
+ kal_bool is_t311_expire; /* RRC connection release due to RRC T311 timer expire */
+} l4crac_ims_service_ind_struct;
+
+#ifdef __VOLTE_SUPPORT__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_mm_ims_voice_termination_cnf_struct;
+#endif /* __VOLTE_SUPPORT__ */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_disable_eutran_cnf_struct;
+
+typedef rac_gmss_rat_select_ind_struct l4crac_rat_select_ind_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+typedef rac_gmss_duplex_mode_change_ind_struct l4crac_duplex_mode_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_duplex_mode_change_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_mode_changed;
+ kal_bool utran_fdd;
+ kal_bool utran_tdd_lcr;
+ kal_bool eutran_fdd;
+ kal_bool eutran_tdd;
+ mode_switch_cause_enum cause;
+}l4crac_duplex_mode_required_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ } l4crac_clear_mru_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ set_mru_result_enum result;
+} l4crac_set_mru_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ set_aux_plmn_result_enum result;
+} l4crac_set_aux_plmn_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ esm_cause_enum esm_cause;
+ emm_cause_enum emm_cause;
+ mm_cause_enum mm_cause;
+ emm_cause_source_enum emm_cause_source;
+ reg_state_enum gsm_state; /* reg_state_enum */
+ reg_state_enum gprs_state; /* reg_state_enum */
+ domain_id_enum domain;
+ rat_enum rat;
+ kal_bool is_auth_reject_during_attach;
+ integ_protect_status_enum is_integ_protected;
+ mm_cause_enum abnormal_lu_cause;
+}l4crac_reg_combined_cause_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool enable;
+} l4crac_update_sms_over_sgs_cfg_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_set_sms_over_sgs_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint8 event_type; // 0: successful completion of RAU procedure
+ // 1: successful completion of TAU procedure
+}l4crac_nw_reg_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ rat_enum rat_mode; //User's setting, could be RAT_GSM or RAT_UMTS or RAT_LTE or RAT_GSM_UMTS_LTE
+ kal_bool is_pgcheck_on;
+}l4crac_set_pgcheck_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ rat_enum rat_mode; //User's setting, could be RAT_GSM or RAT_UMTS or RAT_LTE or RAT_GSM_UMTS_LTE
+ kal_bool is_pgcheck_on;
+ kal_uint8 causes; // causes to be ignored.
+} l4crac_set_pgcheckext_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ omadm_cmd_type_enum cmd;
+ kal_bool result; // TRUE=>pass, FALSE=>error
+ omadm_node_type_enum node_type; // OMADM node
+ kal_uint32 node_value;
+} l4crac_omadm_update_cnf_struct;
+
+#define VZWMRU_UPDATE_RESULT_NUM_MAX 10
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ mru_cmd_type_enum cmd;
+ kal_bool result; //TRUE=>pass, FALSE=>error
+ mmss_list_type_enum list_type; // RAL or MRU
+ kal_uint32 entry_num; //used only when cmd=QUERY
+ vzwmru_entry_struct entries[SYS_MAX_MMSS_REC_NUM]; //used only when cmd=QUERY
+} l4crac_vzwmru_update_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4crac_set_hvolte_mode_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_1x_service_available;
+} l4crac_c2k_service_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ irat_ps_type_enum access_type;
+ kal_uint16 sid;
+ kal_uint16 nid;
+ kal_uint8 pzid;
+ kal_uint16 base_id;
+ kal_uint32 sector_id[4];
+ kal_uint8 subnet_length;
+ kal_uint8 carrier_id[7];
+} l4crac_c2k_cell_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_cs_conn_start;
+} l4crac_1x_conn_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum availabel_rat;
+ kal_uint8 cause;
+ kal_uint8 trans_id;
+} l4crac_emc_service_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum new_reported_rat;
+ kal_bool is_home;
+} l4crac_reported_rat_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ custom_plmn_type_enum type;
+ kal_uint16 no_plmn_entry;
+ kal_uint8 *plmn_data;
+}l4crac_get_custom_plmn_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ prefer_rat_type_enum type;
+ rat_enum prefer_rat;
+ kal_uint32 rat_num;
+ rat_enum rat_order[MAX_SUPPORTED_RAT];
+}l4crac_get_prefer_rat_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ rat_duplex_type_enum duplex_type;
+ plmn_id_struct plmn_id;
+ kal_uint8 la_code[2];
+ kal_uint8 ta_code[3];
+ kal_uint64 cell_id; /* CELL ID*/
+} l4crac_camped_cell_info_ind_struct;
+//Korea - KT UI display (Add Cell bandwidth of LTE cell)
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 bandwidth;
+}l4crac_lte_bandwidth_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn_id;
+}l4crac_plmn_found_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ RATCM_RRC_ReleaseCause rrc_rel_cause;
+}l4crac_rrc_conn_rel_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+} l4crac_ims_scm_cnf_struct;
+
+#ifdef __GEMINI__ //__REMOTE_SIM__
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+}l4crac_rsim_auth_abort_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_virtual_connected;
+}l4crac_virtual_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rsim_auth_finish_result_enum result;
+}l4crac_auth_finish_ind_struct;
+
+#endif
+
+typedef rac_gmss_ims_call_end_status_ind_struct l4crac_ims_call_end_status_ind_struct;
+typedef rac_gmss_c2k_csfb_start_ind_struct l4crac_c2k_csfb_start_ind_struct;
+typedef rac_gmss_hvolte_mode_change_ind_struct l4crac_hvolte_mode_change_ind_struct;
+typedef rac_gmss_suspend_egreg_update_ind_struct l4crac_suspend_egreg_update_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ca_info_enum ca_info;
+ kal_uint8 scell_bmp_dl;
+ kal_uint8 scell_bmp_ul;
+ kal_uint8 pcell_bw;
+ kal_uint8 scell_bw[4];
+ kal_uint16 pcell_band;
+ kal_uint16 scell_band[4];
+ EARFCN pcell_earfcn;
+ kal_uint16 scell_dl_band[4];
+ EARFCN scell_dl_earfcn[4];
+} l4crac_ca_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_bool result;
+} l4crac_reset_ota_ctxt_cnf_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ l4crac_rat_select_ind_struct last_rat_select_ind;
+} l4crac_get_last_rat_select_ind_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nas_proc_enum nas_proc;
+ mm_cause_enum nas_rej_cause;
+ kal_uint8 attempt_counter;
+ rat_enum rat;
+ esm_cause_enum esm_cause;
+ lr_result_enum lr_result;
+}l4crac_nw_reg_rej_ind_struct; //MOLY00293006
+
+typedef l4crac_plmn_found_ind_struct l4c_peer_plmn_found_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 n3en_indicator; /* Non-3GPP NW emergency number indicator */
+} l4crac_non_3gpp_nw_policies_ind_struct; /* Non-3GPP NW provided policies IE */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_struct current_plmn_id;
+} l4crac_eps_attach_needed_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_invalid;
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+ kal_uint8 carrier_id[6];
+}l4crac_illegal_me_ind_struct;
+
+typedef rac_nas_sv_rat_change_start_ind_struct l4crac_rat_change_start_ind_struct;
+typedef rac_nas_sv_rat_change_finish_ind_struct l4crac_rat_change_finish_ind_struct;
+
+//should be the same as mm_emm_csfb_page_ind_struct
+typedef struct {
+ LOCAL_PARA_HDR
+ mm_emm_csfb_paging_id_enum csfb_paging_id; //Paging identity used in CS SERVICE NOTIFICATION
+ kal_bool is_cli_present; //Whether CLI (Calling Line Identification) IE exists or not
+ kal_uint8 cli_len; //Length of CLI
+ kal_uint8 cli[12]; //CLI value Refer to TS 24.008 subclause 10.5.4.9 Calling party BCD number for decoding.
+ kal_bool is_ss_code_present; //Whether SS code IE exists or not
+ kal_uint8 ss_code; //SS code value Refer to TS 29.002 subclause 17.7.5 for decoding.
+ kal_bool is_lcs_ind_present; //Whether LCS indicator IE exists or not
+ kal_uint8 lcs_indicatior; //LCS indicator value; 0x01: MT-LR, Other values: Normal, unspecified in this version of the protocol
+ kal_bool is_lcs_client_id_present; //Whether LCS client identity IE exists or not
+ kal_uint8 lcs_client_id_len; //Length of LCS client identity
+ kal_uint8 lcs_client_id[255]; //LCS client identity value, Refer to TS 29.002 subclause 17.7.13 for decoding.
+}l4crac_csfb_page_ind_struct;
+
+//should be the same as mm_emm_csfb_result_ind_struct
+typedef struct {
+ LOCAL_PARA_HDR
+ mm_emm_csfb_result_enum mt_ccsfb_status;
+}l4crac_csfb_result_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool reg_state;
+ rat_enum rat;
+ cell_info_union cell_info;
+ plmn_id_struct plmn_id;
+ restrict_dcnr_enum dcnr_restricted;
+}l4crac_camp_ui_ind_struct;
+
+typedef rac_nas_sv_nrrc_state_ind_struct l4crac_nrrc_state_ind_struct;
+typedef rac_vgmm_ims_uac_cnf_struct l4crac_uac_param_check_cnf_struct;
+typedef rac_vgmm_ims_uac_alleviation_ind_struct l4crac_uac_alleviation_ind_struct;
+
+typedef rac_gmss_try_switch_rat_result_ind_struct l4crac_try_switch_rat_result_ind_struct;
+
+typedef rac_vgmm_emergency_service_ind_struct l4crac_emergency_service_ind_struct;
+typedef rac_vgmm_emergency_service_cnf_struct l4crac_emergency_service_cnf_struct;
+typedef rac_vgmm_emergency_service_fallback_cnf_struct l4crac_emergency_service_fallback_cnf_struct;
+
+typedef rac_vgmm_set_nssai_req_struct l4crac_set_nssai_req_struct;
+typedef rac_vgmm_set_nssai_cnf_struct l4crac_set_nssai_cnf_struct;
+typedef rac_vgmm_get_nssai_req_struct l4crac_get_nssai_req_struct;
+typedef rac_vgmm_get_nssai_cnf_struct l4crac_get_nssai_cnf_struct;
+typedef rac_vgmm_set_pref_nssai_req_struct l4crac_set_pref_nssai_req_struct;
+typedef rac_vgmm_set_pref_nssai_cnf_struct l4crac_set_pref_nssai_cnf_struct;
+typedef rac_vgmm_nw_params_ind_struct l4crac_vgmm_nw_params_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum active_rat;
+ kal_bool is_ps_sim_valid;
+ kal_bool is_cs_sim_valid;
+//for MM
+ kal_uint16 event;
+ kal_uint16 original_cause;
+ kal_uint16 converted_cause;
+
+} l4crac_cause_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat; /*to indicate which RAT's indication*/
+
+ network_scan_rat_union_type nw_scan_rat_output;
+ nwsel_plmn_list_status_enum status;
+} l4crac_plmn_scan_ind_struct;
+
+typedef rac_nas_sv_cap_update_ind_struct l4crac_cap_update_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ gprs_traffic_channel_status_enum traffic_channel_status;
+} l4crac_gprs_traffic_channel_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_source_id_enum src_id;
+ kal_uint8 result;
+ } l4crac_set_save_rac_preference_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_searching;
+} l4crac_as_plmn_search_report_ind_struct;
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+typedef struct {
+ LOCAL_PARA_HDR
+ nw_black_list_operator_result_enum result;
+} l4crac_fplmn_action_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool black_list_lock_state;
+ kal_bool is_init;
+ kal_uint16 no_plmn_entry;
+ kal_uint8 *plmn_data;
+} l4crac_nw_black_list_state_ind_struct;
+#endif
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result; /* 1 : success, 0: failure */
+} l4crac_set_ecall_registration_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ecall_registration_state_enum ecall_reg_state;
+} l4crac_set_ecall_registration_state_ind_struct;
+#endif /* (__ECALL_SUPPORT__) || (__NG_ECALL_SUPPORT__) */
+
+#endif /* _RAC2L4C_STRUCT_H */
+
diff --git a/mcu/protocol/interface/l4/rac_em_struct.h b/mcu/protocol/interface/l4/rac_em_struct.h
new file mode 100644
index 0000000..3b54e7f
--- /dev/null
+++ b/mcu/protocol/interface/l4/rac_em_struct.h
@@ -0,0 +1,107 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * rac_em_struct.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition for EM log of RAC
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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 : rac_em_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef __RAC_EM_STRUCT_H__
+#define __RAC_EM_STRUCT_H__
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums.h"
+#include "rac_defs.h"
+
+#endif /* __RAC_EM_STRUCT_H__ */
+
+
diff --git a/mcu/protocol/interface/l4/rac_gmss_struct.h b/mcu/protocol/interface/l4/rac_gmss_struct.h
new file mode 100644
index 0000000..059a906
--- /dev/null
+++ b/mcu/protocol/interface/l4/rac_gmss_struct.h
@@ -0,0 +1,936 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * rac_gmss_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for struct definition between NWSEL and MMI/L4.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+#ifndef _RAC_GMSS_STRUCT_H
+#define _RAC_GMSS_STRUCT_H
+
+#include "kal_general_types.h"
+#include "l3_inc_enums_public.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "ps_public_enum.h"
+#include "l3_inc_local.h"
+#include "mm_mmi_enums.h"
+#include "gmss_public.h"
+#include "l4c_common_enum.h"
+
+#ifdef __LTE_RAT__
+#include "nvram_data_items.h"
+#endif
+
+#include "nvram_editor_data_item.h"
+#include "nas_nvram_editor.h"
+#include "erac_nvram_editor.h"
+#include "c2k_irat_msg_struct.h"
+#include "nwsel_eval_struct.h"
+#include "sim_public_enum.h"
+#ifdef __IMS_SUPPORT__
+#include "ims_common_def.h"
+#include "ims_interface_md.h"
+#endif
+#include "vgnas_nvram_def.h"
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+#include "l5_l4c_enums.h"
+#endif
+
+/* RAC -> GMSS */
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_selection_mode_enum plmn_sel_mode;
+ rat_enum rplmn_rat;
+ kal_uint8 num_of_eq_plmn;
+ plmn_id_struct eq_plmn[MAX_NUM_EQ_PLMN];
+ kal_uint8 nvram_locigprs[14];
+ rat_enum prefered_rat;
+#ifdef __TC02_SECURITY_REQUIREMENT__
+ kal_uint8 nvram_imsi_loci_gloci[MAX_LEN_OF_IMSI_LOCI_GLOCI]; //mtk02475: for man-in-middle-attack prevention
+#endif
+ kal_bool is_supporting_roaming;
+
+#ifdef __LTE_RAT__
+ kal_uint8 nvram_epsloci[NVRAM_EPSLOCI_SIZE];
+#endif
+ plmn_id_rat_struct csg_previous_rplmn;
+ kal_uint32 csg_id;
+ kal_bool disable_international_roaming_support;
+ kal_bool disable_national_roaming_support;
+ kal_bool disable_hhplmn_search_support;
+ kal_bool enable_roaming_broker_support;
+#ifdef __LTE_ROAMING_SUPPORT__
+ kal_bool disable_lte_data_roaming;
+#endif
+ kal_uint32 recovery_timer[MAX_RECOVERY_TIMER_NUM ];
+ kal_bool sms_only;
+ voice_domain_preference_enum eutran_voice_domain_preference;
+ voice_domain_preference_enum utran_voice_domain_preference;
+ ue_mode_enum ue_mode;
+ kal_uint64 last_t3245_end_time;
+
+//__APPLMN_LIST__
+ kal_uint16 no_static_applmn_data;
+ kal_uint8 *static_applmn_data;
+ kal_uint16 no_dynamic_applmn_data;
+ kal_uint8 *dynamic_applmn_data;
+
+//__AUX_PLMN__
+ plmn_id_struct aux_plmn_id;
+ rat_enum aux_plmn_rat;
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+ /*__BlackList_PLMN__*/
+ kal_uint16 no_blacklist_plmn_data;
+ kal_uint8 *blacklist_plmn_data;
+#endif
+
+ nvram_ef_failure_list_struct failure_list;
+ nvram_histoy_table_struct history_table;
+ nvram_nwsel_data_struct nwsel_data;
+ nvram_gmss_data_struct gmss_data;
+ init_cause_enum init_cause;
+ kal_uint8 vzw_lte_scan_idle_interval;
+ kal_uint8 vzw_lte_scan_idle_max;
+ plmn_id_struct stored_rplmn;
+ kal_bool is_init;
+ plmn_id_struct manual_selected_plmn;
+ //Add for aral 2.0
+ aral_update_req_struct aral_update_req[NWSEL_ALAL_NUM];
+ kal_uint8 nvram_ef_5gs3gpploci[LEN_OF_5GS3GPPLOCI];
+ nvram_last_campui_reg_state_struct last_campui_reg_state[NVRAM_MAX_SUPPORTED_RAT];
+ kal_uint32 prefer_rat_num;
+ rat_enum prefer_rat_list[NVRAM_MAX_SUPPORTED_RAT];
+#ifdef __FIVEG_NAS__
+ nvram_ef_vgnas_5gmm_failure_list_struct vgnas_5gmm_failure_list;
+#endif
+ nvram_allowed_mcc_struct allowed_mcc_data;
+} rac_gmss_init_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_selection_mode_enum plmn_sel_mode;
+} rac_gmss_sel_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum attach_type; /* CS-only, PS-only or both CS/PS*/
+ kal_uint8 att_id; /* Johnny: 3G RAC, for attach_req and detach_req using */
+ mm_user_search_type_enum search_type; //mm_user_search_type_enum
+} rac_gmss_attach_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum detach_type; /* CS-only, PS-only or both CS/PS */
+ kal_bool power_off; /* mobile shut down or not */
+ kal_uint8 att_id; /* Johnny: 3G RAC, for attach_req and detach_req using */
+ l4c_rac_detach_cause_enum detach_cause;
+} rac_gmss_detach_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rfoff_cause_enum rfoff_cause;
+} rac_gmss_rfoff_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_reselection_enum plmn_search_mode; /* plmn_reselection_enum */
+ plmn_id_rat_struct selected_plmn; /* Selected PLMN */
+ kal_bool is_manual_csg_sel;
+ kal_uint32 csg_id;
+ rat_enum prefer_rat; // 0:default , 1:GSM , 2:UMTS
+ kal_bool from_l4c;
+ kal_uint32 factory_mode_arfcn; //0xFFFF means invalid arfcn, /* 20081110 mtk00714, for fast camp on test machine */
+ endc_search_enum endc_search; /* Search ENDC cell or not for LTE cell. */
+} rac_gmss_plmn_search_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_rat_struct plmn_id_rat;
+} rac_gmss_csg_list_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ user_list_type_enum user_list_type;
+ rat_enum list_rat; /* For informing frequency of which RATs are valid*/
+ kal_bool list_endc_info; /* LIST ENDC info or not for LTE cell. ERRC will collect SIB2 for PLMN_LIST. */
+ kal_uint8 given_number_of_plmn; // used for the USER_LIST_TYPE_GIVEN_TIMER_NUMBER. When xAS found the given number of plmn, xAS return plmn list cnf (with signal power value). If the number is 255, means feature OFF.
+ network_scan_input_struct network_scan_input; //IPC_NET_NETWORK_SCAN
+} rac_gmss_plmn_list_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_user_plmn_list_ongoing;
+} rac_gmss_plmn_list_status_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat_mode; /* RATCM_RAT_ENUM*/
+ rat_enum reported_rat;
+ irat_system_type_enum c2k_mode;
+ kal_bool is_rf_on;
+} rac_gmss_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_supporting_roaming;
+ kal_bool disable_international_roaming_support;
+ kal_bool disable_national_roaming_support;
+ kal_bool disable_hhplmn_search_support;
+} rac_gmss_set_roaming_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ prefer_rat_type_enum type;
+ rat_enum prefer_rat;
+ kal_uint32 rat_num;
+ rat_enum rat_order[MAX_SUPPORTED_RAT];
+}rac_gmss_set_prefer_rat_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ prefer_rat_type_enum type;
+}rac_gmss_get_prefer_rat_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ prefer_rat_type_enum type;
+ kal_uint32 rat_num;
+ rat_enum rat_order[MAX_SUPPORTED_RAT];
+}rac_gmss_get_prefer_rat_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn;
+ rat_enum rat;
+ kal_uint8 ara_start[2];
+ kal_uint8 ara_end[2];
+}rac_gmss_aral_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_eutran_vdp_or_ue_usage_changed;
+ voice_domain_preference_enum eutran_voice_domain_preference;
+ kal_bool is_evdp_changed_by_ims_on_off;
+ ue_usage_setting_enum ue_usage_setting;
+ ue_mode_enum ue_mode;
+ ue_mode_enum ue_mode_exclude_18;
+ ims_reg_status_enum ims_reg_status;
+ kal_bool sms_only;
+ kal_bool is_ims_support;
+ kal_bool is_ims_ecc_support;
+#ifdef __IMS_SUPPORT__
+ ims_dereg_cause_enum ims_dereg_cause;
+ ims_cap_rat_enum ims_rat_cap;
+#endif /* __IMS_SUPPORT__ */
+ kal_bool is_ims_retry;
+
+ /* EMC specific config*/
+ kal_bool is_emc_param_valid;
+ voice_domain_preference_enum emc_voice_domain_preference;
+ ue_usage_setting_enum emc_ue_usage_setting;
+ kal_bool emc_fallback;
+} rac_gmss_uemode_param_update_req_struct;
+
+/* MSG_ID_RAC_GMSS_LOCATION_INFO_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mm_status;
+ kal_uint8 location_info[SAT_MAX_LOC_INFO_LEN];
+ kal_uint8 rat;
+
+ sat_loc_send_type_enum send_type; // whether notify the sat the location info when updated
+
+} rac_gmss_location_info_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+ kal_uint16 arfcn;
+ kal_uint8 requested_band;
+} rac_gmss_set_mru_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+} rac_gmss_set_aux_plmn_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_main_ps; /* GEMINI : data preferred SIM e.g. internet data*/
+} rac_gmss_data_allow_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_rude_wakeup;
+}rac_gmss_screen_on_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool normal_oos_recovery_round_present;
+ kal_uint8 normal_oos_recovery_round; /* default value =5, range [2,10] */
+ kal_bool inactive_fullband_period_present;
+ kal_uint16 inactive_fullband_period; /* default value =200s, range [90,360] */
+ kal_bool inactive_sniffer_period_present;
+ kal_uint8 inactive_sniffer_period; /* default value =30s, range [10,60] */
+ kal_bool is_inactive_mode_present;
+ kal_bool is_inactive_mode; /* TRUE: Enter inactive mode, FALSE: Leave inactive mode*/
+ kal_bool inactive_scan_time_present;
+ kal_uint32 inactive_scan_time;
+ kal_bool inactive_sleep_time_present;
+ kal_uint32 inactive_sleep_time;
+} rac_gmss_inactive_mode_configuration_req_struct;
+
+/* NWSEL -> RAC*/
+
+typedef nwsel_eval_c2k_csfb_start_ind_struct rac_gmss_c2k_csfb_start_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status; /* proc_status_enum */
+ mm_cause_enum cause; /* mm_cause_enum */
+ kal_bool is_on_hplmn;
+ cell_info_and_rat_struct cell_info;
+} rac_gmss_plmn_search_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status; /* proc_status_enum */
+ mm_cause_enum cause; /* mm_cause_enum */
+ kal_uint8 num_of_hplmn;
+ rac_plmn_list_struct plmn_list;
+ list_ind_source_enum source;
+} rac_gmss_plmn_list_cnf_struct;
+
+typedef rac_gmss_plmn_list_cnf_struct rac_gmss_plmn_list_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 susp_id;
+ susp_resu_source_enum target;
+} rac_gmss_suspend_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status;
+ mm_cause_enum cause;
+ rac_csg_list_struct csg_list;
+} rac_gmss_csg_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status; /* proc_status_enum */
+ mm_cause_enum cause; /* mm_cause_enum */
+} rac_gmss_set_rat_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ //kal_uint8 att_id; /* for detach_req mapping */
+ gmss_rat_enum detached_ps_rat; /* indicate the detached RAT */
+} rac_gmss_c2k_detach_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_1x_service_available; /** indicate if service_domain is available */
+} rac_gmss_c2k_service_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_cs_conn_start; /* indicate if C2K cs connection start */
+} rac_gmss_1x_conn_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* source channel from AP or middleman, L4 utilize this field to respond to the correct channel */
+ hvolte_mode_enum mode; /** indicate LTE-Only or SRLTE */ // enum defined in ims_common_def.h
+ kal_bool is_for_silent_redial; /** indicate the mode change due to VoLTE call fail then silent redial 1xRTT */
+ set_hvolte_mode_cause_enum cause;
+} rac_gmss_set_hvolte_mode_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* the value shall be the same as src_id in rac_gmss_set_hvolte_mode_req_struct */
+}rac_gmss_set_hvolte_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_not_suspend; /* indicate if is_searching = TRUE is due to Gemini suspend */
+ kal_bool is_update_is_searching; /* if TRUE, RAC can check is_searching flag */
+ kal_bool is_searching;
+ kal_bool is_camp_on_cell; /* if is_searching = FALSE && is_camp_on_cell = FALSE, then RAC update to L4C;
+ else, ignore the is_searching flag. */
+ kal_bool is_on_hplmn;
+ kal_bool is_update_active_rat;
+ rat_enum active_rat;
+ plmn_id_struct rplmn; /* Get RPLMN */
+} rac_gmss_plmn_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nwsel_ims_service_enum service_type;
+ kal_bool is_t311_expire; /* RRC connection release due to RRC T311 timer expire */
+} rac_gmss_ims_service_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ ho_from_lte_type_enum ir_ho_type;
+} rac_gmss_rat_change_start_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ irat_result_enum irat_result;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ c2k_irat_result_enum err_code;
+} rac_gmss_rat_change_finish_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool enter_cause18_plmn;
+} rac_gmss_cs_domain_availability_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ susp_resu_result_enum result;
+ susp_resu_source_enum target;
+} rac_gmss_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;
+} rac_gmss_susp_resu_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
+} rac_gmss_set_recovery_search_timer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 timer_interval[MAX_RECOVERY_TIMER_NUM];
+} rac_gmss_get_recovery_search_timer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+} rac_gmss_set_recovery_search_timer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ custom_plmn_type_enum type;
+ kal_bool is_update_needed;
+ kal_uint8 plmn_ver[2];
+ kal_uint16 no_plmn_entry;
+ kal_uint8 *plmn_data;
+} rac_gmss_custom_plmn_list_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool voice_over_ims_ongoing;
+} rac_gmss_ims_call_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ voice_domain_preference_enum utran_voice_domain_preference;
+} rac_gmss_set_utran_voice_domain_preference_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_data_service_present;
+ kal_bool is_data_service_on;
+ kal_bool is_data_roaming_service_present;
+ kal_bool is_data_roaming_service_on;
+} rac_gmss_data_service_status_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum new_reported_rat;
+ kal_bool is_home;
+ rat_mode_change_cause_enum cause;
+} rac_gmss_reported_rat_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ emdstatus_md_config_enum md_config;
+ emdstatus_sim_config_enum sim_config;
+} rac_gmss_md_sim_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ elevator_mode_enum elevator_mode;
+} rac_gmss_elevator_mode_config_req_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 */
+ rat_enum curr_reported_rat; /* current reported rat */
+ kal_bool is_home_country; /* is_home_country */
+ kal_bool is_srlte; /* SRLTE or not. AP use it with RAT to decide phone type (CDMALTE or CSFB) */
+ irat_handoff_cause_enum irat_type;
+} rac_gmss_rat_select_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ act_sim_enum active_sim;
+} rac_gmss_active_sim_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_attach_needed;
+} rac_gmss_rat_change_success_notify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ umts_duplex_mode_type umts_duplex_mode;
+ lte_duplex_mode_type lte_duplex_mode;
+ mode_switch_cause_enum cause;
+} rac_gmss_duplex_mode_change_req_struct, rac_gmss_duplex_mode_change_ind_struct;
+
+//todo
+typedef struct {
+ LOCAL_PARA_HDR
+ ct_mode_enum ct_mode;
+} rac_gmss_set_ct_mode_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn_id;
+} rac_gmss_disable_eutran_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool data_enabled_setting;
+ kal_bool data_roaming_setting;
+} rac_gmss_roaming_data_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ set_mru_result_enum result;
+} rac_gmss_set_mru_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ set_aux_plmn_result_enum result;
+} rac_gmss_set_aux_plmn_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ wm_policy_enum wm_policy;
+} rac_gmss_set_wm_policy_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum avaliable_rat;
+ kal_uint8 cause;
+ kal_uint8 trans_id;
+} rac_gmss_emc_service_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_mode_changed;
+ kal_bool utran_fdd;
+ kal_bool utran_tdd_lcr;
+ kal_bool eutran_fdd;
+ kal_bool eutran_tdd;
+ mode_switch_cause_enum cause;
+} rac_gmss_duplex_mode_required_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ call_status_enum call_status;
+ call_type_indication_enum call_type;
+ kal_bool is_flight_mode_on_ecc;
+ rat_enum call_current_rat; // the call start/stop current rat
+} rac_gmss_call_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} rac_gmss_set_first_camp_on_prefer_rat_req_struct;
+
+#define VZWMRU_UPDATE_RESULT_NUM_MAX 10
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ irat_ps_type_enum access_type;
+ kal_uint16 sid;
+ kal_uint16 nid;
+ kal_uint8 pzid;
+ kal_uint16 base_id;
+ kal_uint32 sector_id[4];
+ kal_uint8 subnet_length;
+ kal_uint8 carrier_id[6];
+} rac_gmss_c2k_cell_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint8 event_type; // 0: successful completion of RAU procedure
+ // 1: successful completion of TAU procedure
+}rac_gmss_reg_status_ind_struct;
+
+#define VZWMRU_UPDATE_RESULT_NUM_MAX 10
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mru_cmd_type_enum cmd;
+ mmss_list_type_enum list_type; // RAL or MRU
+ vzwmru_entry_struct entry; // used only cmd=EDIT
+} rac_gmss_vzwmru_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mru_cmd_type_enum cmd;
+ kal_bool result; //TRUE=>pass, FALSE=>error
+ mmss_list_type_enum list_type; // RAL or MRU
+ kal_uint32 entry_num; //used only when cmd=QUERY
+ vzwmru_entry_struct entries[VZWMRU_UPDATE_RESULT_NUM_MAX]; //used only when cmd=QUERY
+} rac_gmss_vzwmru_update_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ omadm_cmd_type_enum cmd;
+ omadm_node_type_enum node_type;
+ kal_uint32 node_value;
+} rac_gmss_omadm_update_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ omadm_cmd_type_enum cmd;
+ kal_bool result; // TRUE=>pass, FALSE=>error
+ omadm_node_type_enum node_type; // OMADM node
+ kal_uint32 node_value;
+} rac_gmss_omadm_update_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ custom_plmn_type_enum type;
+} rac_gmss_get_custom_plmn_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ custom_plmn_type_enum type;
+ kal_uint16 no_plmn_entry;
+ kal_uint8 *plmn_data;
+} rac_gmss_get_custom_plmn_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_apn_enable;
+} rac_gmss_vzw_admin_apn_change_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ // TRUE: Request for LTE available 1xRTT cell lists
+ // FALSE: Request for LTE unavailable 1xRTT cell lists
+ kal_bool is_for_LTE_available_list;
+} rac_gmss_1xrtt_cell_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 num; // maximum = GMSS_LTE_UNAVAIL_DB_SIZE (128)
+ // (sid[0],nid[0],bsid[0]) for first cell, (sid[1],nid[1],bsid[1]) for second cell...
+ kal_uint16 sid[GMSS_LTE_UNAVAIL_DB_SIZE];
+ kal_uint16 nid[GMSS_LTE_UNAVAIL_DB_SIZE];
+ kal_uint16 bsid[GMSS_LTE_UNAVAIL_DB_SIZE];
+} rac_gmss_1xrtt_cell_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ vzw_barring_timer_type_enum timer_type;
+ kal_uint32 timer_interval; /* in second */
+} rac_gmss_set_plmn_barring_timer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+} rac_gmss_set_plmn_barring_timer_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ vzw_barring_timer_type_enum timer_type;
+} rac_gmss_get_plmn_barring_timer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint32 timer_interval; /* in second */
+} rac_gmss_get_plmn_barring_timer_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_timer_type_enum timer_type;
+ ims_timer_status_enum timer_status;
+ kal_uint16 timer_length; /* in second */
+} rac_gmss_ims_timer_status_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum active_rat;
+} rac_gmss_active_rat_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_suspend;
+} rac_gmss_suspend_egreg_update_ind_struct,
+ rac_gmss_suspend_egreg_update_cnf_struct;
+
+
+typedef struct{
+ LOCAL_PARA_HDR
+ plmn_id_struct rplmn; /* Get RPLMN */
+} rac_gmss_rplmn_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ gmss_tw_mode_enum tw_mode;
+ kal_uint8 setting;
+} rac_gmss_set_tw_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ recover_cause_enum cause;
+} rac_gmss_invalid_sim_recover_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+} rac_gmss_invalid_sim_recover_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool high_prio_timer_config;
+} rac_gmss_high_prio_search_timer_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_ct_volte_supported;
+} rac_gmss_volte_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_ims_roaming_enable;
+} rac_gmss_set_ims_roaming_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_valid_available_rat;
+ rat_enum available_rat;
+ kal_bool is_valid_prefer_rat;
+ rat_enum prefer_rat;
+ kal_bool is_new_call;
+ kal_uint8 trans_id;
+} rac_gmss_emc_service_scan_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ hvolte_mode_change_cause_enum cause;
+} rac_gmss_hvolte_mode_change_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} rac_gmss_get_last_rat_select_ind_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ rac_gmss_rat_select_ind_struct last_rat_select_ind;
+} rac_gmss_get_last_rat_select_ind_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_special_event_enum ims_event;
+ kal_uint16 sip_cause;
+} rac_gmss_ims_reg_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ enwsel_search_abort_cause_enum cause;
+} rac_gmss_abort_enwsel_search_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_search_triggered;
+} rac_gmss_ims_call_end_status_ind_struct;
+
+/* mtk13782: Regarding to TMO diable 2G */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum disable_rat;
+}rac_gmss_rat_disable_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_invalid;
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+ kal_uint8 carrier_id[6];
+}rac_gmss_illegal_me_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ try_switch_rat_result_enum result;
+} rac_gmss_try_switch_rat_result_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool reg_state;
+ rat_enum rat;
+ cell_info_union cell_info;
+ plmn_id_struct plmn_id;
+ restrict_dcnr_enum dcnr_restricted;
+} rac_gmss_camp_ui_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ network_scan_rat_union_type nw_scan_rat_output;
+ nwsel_plmn_list_status_enum status;
+}rac_gmss_plmn_scan_ind_struct;
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+typedef struct {
+ LOCAL_PARA_HDR
+ nw_black_list_operator_result_enum result;
+} rac_gmss_fplmn_action_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool black_list_lock_state;
+ kal_bool is_init;
+ kal_uint16 no_plmn_entry;
+ kal_uint8 *plmn_data;
+} rac_gmss_nw_black_list_state_ind_struct;
+#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ allowed_mcc_list_action_enum action;
+ kal_uint8 allowed_mcc_number;
+ kal_uint16 allowed_mcc_list[MAX_ALLOWED_MCC_LIST_NUMBER];
+} rac_gmss_set_allowed_mcc_list_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+} rac_gmss_set_allowed_mcc_list_cnf_struct;
+
+#endif
diff --git a/mcu/protocol/interface/l4/rac_nas_sv_struct.h b/mcu/protocol/interface/l4/rac_nas_sv_struct.h
new file mode 100644
index 0000000..d161ac0
--- /dev/null
+++ b/mcu/protocol/interface/l4/rac_nas_sv_struct.h
@@ -0,0 +1,241 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+* ---------
+* rac_nas_sv_struct.h
+*
+* Project:
+* --------
+* UMOLYA
+*
+* Description:
+* ------------
+*
+* Author:
+* -------
+ * -------
+******************************************************************************/
+
+#ifndef _RAC_NAS_SV_STRUCT_H_
+#define _RAC_NAS_SV_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "mm_mmi_enums.h"
+#include "kal_public_defs.h"
+#include "sim_public_enum.h"
+#include "nas_sv_struct.h"
+#include "l4c2rac_struct.h"
+#include "rac_eval_struct.h"
+
+#define RAC_NAS_SV_NR_SERV_CELL_NUM 2
+typedef nas_sv_any_attach_req_struct rac_nas_sv_attach_req_struct;
+typedef nas_sv_any_detach_req_struct rac_nas_sv_detach_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat_mode;
+ rat_enum reported_rat;
+ irat_system_type_enum c2k_mode;
+ kal_bool is_rf_on;
+ rat_mode_change_cause_enum rat_mode_change_cause;
+ domain_id_enum detach_domain;
+ vg_option_enum vg_option_map;
+} rac_nas_sv_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ proc_status_enum status;
+ mm_cause_enum cause;
+} rac_nas_sv_set_rat_mode_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum target_rat;
+ nas_sv_vgmm_attach_cnf_struct attach_cnf_vgmm;
+ nas_sv_emm_attach_cnf_struct attach_cnf_emm;
+ nas_sv_mm_attach_cnf_struct attach_cnf_gmm;
+} rac_nas_sv_attach_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum target_rat;
+ nas_sv_vgmm_detach_ind_struct detach_ind_vgmm;
+ nas_sv_emm_detach_ind_struct detach_ind_emm;
+ nas_sv_mm_detach_ind_struct detach_ind_gmm;
+} rac_nas_sv_detach_ind_struct;
+
+typedef union
+{
+ rac_nas_sv_attach_cnf_struct attach_cnf;
+ rac_nas_sv_detach_ind_struct detach_ind;
+} attach_detach_union;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_in_limited_virtual_idle;
+ domain_id_enum update_domain;
+ kal_uint8 att_id;
+ cell_info_and_rat_struct cell_info;
+ //nwsel_regn_result_ind_struct regn_info; // to sync informaion that no need to display, for PDN/call/... operation
+ nwsel_status_enum nwsel_search_status;
+ nas_sv_attach_detach_result_type_enum cs_result_type;
+ attach_detach_union cs_reg_result;
+ nas_sv_attach_detach_result_type_enum ps_result_type;
+ attach_detach_union ps_reg_result;
+} rac_nas_sv_attach_detach_result_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ umts_duplex_mode_type umts_duplex_mode;
+ lte_duplex_mode_type lte_duplex_mode;
+ nr_duplex_mode_type nr_duplex_mode;
+ mode_switch_cause_enum cause;
+} rac_nas_sv_duplex_mode_change_req_struct,rac_nas_sv_duplex_mode_change_ind_struct ;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+} rac_nas_sv_duplex_mode_change_cnf_struct;
+
+
+typedef nas_sv_any_rfoff_req_struct rac_nas_sv_rfoff_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ ho_from_lte_type_enum ir_ho_type;
+} rac_nas_sv_rat_change_start_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ irat_result_enum irat_result;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ ho_from_lte_type_enum ir_ho_type;
+ #if 0
+/* under construction !*/
+/* under construction !*/
+ #endif
+} rac_nas_sv_rat_change_finish_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum active_rat;
+} rac_nas_sv_update_active_rat_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nas_sv_l4_event_update_ind_enum event;
+} rac_nas_sv_event_update_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ plmn_id_struct current_plmn_id;
+
+} rac_nas_sv_eps_attach_needed_ind_struct;
+
+typedef nas_sv_emm_nw_feature_support_ind_struct rac_nas_sv_emm_nw_feature_support_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_eutran_vdp_or_ue_usage_changed;
+ voice_domain_preference_enum eutran_voice_domain_preference;
+ ue_usage_setting_enum ue_usage_setting;
+ ue_mode_enum ue_mode;
+ ue_mode_enum ue_mode_exclude_18;
+ ims_reg_status_enum ims_reg_status;
+ kal_bool sms_only;
+ kal_bool is_ims_support;
+#ifdef __IMS_SUPPORT__
+ ims_dereg_cause_enum ims_dereg_cause;
+#endif /* __IMS_SUPPORT__ */
+ //ims_reg_event_enum ims_reg_event;
+} rac_nas_sv_uemode_param_update_req_struct;
+
+typedef struct
+{
+ kal_uint16 band; // 1~1024; Specifies frequency band of the serving cell.
+ kal_uint16 bandwidth;
+ kal_uint32 nrarfcn;
+ kal_uint8 cell_group; // 0:MCG, 1:SCG
+} nrrc_serving_cell_info_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ indicated_nrrc_state_enum nrrc_state;
+ indicated_nr_scg_status_enum scg_status;
+ kal_uint8 serving_cell_info_num;
+ nrrc_serving_cell_info_struct serving_cell_info_list[RAC_NAS_SV_NR_SERV_CELL_NUM]; // will be extended to 10 on 98
+} rac_nas_sv_nrrc_state_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_mrs_endc_supported;
+ ue_capability_struct capability;
+} rac_nas_sv_cap_update_ind_struct;
+
+typedef emmreg_ims_reg_status_update_req_struct rac_nas_sv_ims_reg_status_update_req_struct;
+
+typedef l4crac_call_status_req_struct rac_nas_sv_call_status_req_struct;
+
+typedef l4crac_ims_pdn_activation_req_struct rac_nas_sv_ims_pdn_activation_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nr_normal_service_loss_reason_enum reason;
+} rac_nas_sv_nr_normal_service_loss_update_req_struct;
+
+typedef nwsel_nas_sv_as_plmn_search_report_ind_struct rac_nas_sv_as_plmn_search_report_ind_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/rac_nrrc_struct.h b/mcu/protocol/interface/l4/rac_nrrc_struct.h
new file mode 100644
index 0000000..b769958
--- /dev/null
+++ b/mcu/protocol/interface/l4/rac_nrrc_struct.h
@@ -0,0 +1,62 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+ * ---------
+ * rac_nrrc_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ * Messages and common definitions for RAC-NRRC interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+
+#ifndef _RAC_NRRC_STRUCT_H_
+#define _RAC_NRRC_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+
+ #endif /* _RAC_NRRC_STRUCT_H_ */
\ No newline at end of file
diff --git a/mcu/protocol/interface/l4/rac_nwsel_struct.h b/mcu/protocol/interface/l4/rac_nwsel_struct.h
new file mode 100644
index 0000000..b7c5631
--- /dev/null
+++ b/mcu/protocol/interface/l4/rac_nwsel_struct.h
@@ -0,0 +1,213 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * rac_nwsel_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for struct definition between NWSEL and MMI/L4.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+#ifndef _RAC_NWSEL_STRUCT_H
+#define _RAC_NWSEL_STRUCT_H
+#endif
diff --git a/mcu/protocol/interface/l4/rac_vgmm_struct.h b/mcu/protocol/interface/l4/rac_vgmm_struct.h
new file mode 100644
index 0000000..f0cd013
--- /dev/null
+++ b/mcu/protocol/interface/l4/rac_vgmm_struct.h
@@ -0,0 +1,441 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * rac_vgmm_struct.h
+ *
+ * Project:
+ * --------
+ * 6297
+ *
+ * Description:
+ * ------------
+ * This file is intends for struct definition between RAC and VGMM
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+#ifndef _RAC_VGMM_STRUCT_H
+#define _RAC_VGMM_STRUCT_H
+
+#include "sim_ps_enum.h"
+#include "sim_public_enum.h"
+#include "l3_inc_enums.h"
+#include "vgnas_nvram_def.h"
+#include "l3_inc_local.h"
+#include "nas_nvram_editor.h"
+#include "l4c2rac_struct.h"
+#include "rac_eval_struct.h"
+
+/********************************************
+ * MACROS *
+ ********************************************/
+
+#define RAC_VGMM_NW_NAME_MAX_LEN MAX_NW_NAME_LENGTH
+
+/********************************************
+ * TYPE DEFINITIONS & ENUMS *
+ ********************************************/
+
+typedef enum{
+ RAC_VGMM_EMS_ACQUIRE,
+ RAC_VGMM_EMS_RE_ACQUIRE,
+ RAC_VGMM_EMS_RELEASE
+}rac_vgmm_emergency_service_request_type_enum;
+
+typedef enum{
+ RAC_VGMM_EMS_CAUSE_NONE = 0,
+ RAC_VGMM_EMS_CAUSE_EPDU_FAILURE = 1,
+ RAC_VGMM_EMS_CAUSE_NUM
+}rac_vgmm_emergency_service_request_cause_enum;
+
+typedef enum
+{
+ RAC_VGMM_NORMAL_REGISTRATION,
+ RAC_VGMM_EMERGENCY_REGISTRATION
+} rac_vgmm_emergency_service_reg_type_enum;
+
+typedef enum{
+ RAC_VGMM_EMS_IND_CAUSE_NONE = 0,
+
+ //Success CNF response to EMERGENCY_SERVICE_REQ and EMS IND causes
+ //that map to this value.
+ RAC_VGMM_EMS_CNF_SUCCESS = 1,
+ RAC_VGMM_EMS_IND_ACTIVE = 2,
+
+ //Failure CNF response to EMERGENCY_SERVICE_REQ and EMS IND causes
+ //that map to this value.
+ RAC_VGMM_EMS_CNF_FAIL = 100,
+ RAC_VGMM_EMS_IND_BARRED = 101,
+ RAC_VGMM_EMS_IND_NO_CELL = 102,
+ RAC_VGMM_EMS_IND_CURRENT_PLMN = 103,
+ RAC_VGMM_EMS_IND_N1_NOT_ACTIVE = 104,
+ RAC_VGMM_EMS_IND_INACTIVE = 105,
+ RAC_VGMM_EMS_IND_ABNORMAL_TRY_OTHER_IPCAN = 106
+}rac_vgmm_emergency_service_cnf_cause_enum, rac_vgmm_emergency_service_cnf_result_enum;
+
+
+typedef enum{
+ RAC_VGMM_EMSFB_CAUSE_NONE = 0,
+
+ //Success CNF response to EMERGENCY_SERVICE_FALLBACK_REQ
+ RAC_VGMM_EMSFB_CNF_SUCCESS = 1,
+
+ //Failure CNF response to EMERGENCY_SERVICE_REQ
+ RAC_VGMM_EMSFB_CNF_FAIL = 200,
+ RAC_VGMM_EMSFB_BARRED = 201,
+ RAC_VGMM_EMSFB_NO_CELL = 202,
+ RAC_VGMM_EMSFB_CURRENT_PLMN = 203,
+ RAC_VGMM_EMSFB_N1_NOT_ACTIVE = 204,
+ RAC_VGMM_EMSFB_SERVICE_REQ_ABORT = 205, // Service request aborted due various reasons
+ RAC_VGMM_EMSFB_GEMINI_SUSPEND = 206
+}rac_vgmm_emergency_fallback_cnf_result_enum,rac_vgmm_emergency_fallback_cnf_cause_enum;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 pei_imei_spare;
+ kal_uint8 pei_imei_sv[SIZE_OF_IMEISV];
+ kal_uint8 nvram_ef_5gs3gpploci[LEN_OF_5GS3GPPLOCI];
+ kal_uint8 nvram_ef_5gs3gppnsc[LEN_OF_5GS3GPPNSC];
+ nvram_ef_t3346_timer_info_struct t3346_info;
+ init_cause_enum init_cause;
+#ifdef __FIVEG_NAS__
+ nvram_ef_vgnas_5gmm_custom_config_struct vgnas_5gmm_custom_config;
+ nvram_ef_vgnas_5gmm_failure_list_struct vgnas_5gmm_failure_list;
+ kal_uint8 nvram_ef_5gauthkeys[LEN_OF_5GAUTHKEYS];
+#endif
+} rac_vgmm_init_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool full_name_for_nwP;
+ kal_uint8 full_name_for_nw_len;
+ kal_uint8 full_name_for_nw[RAC_VGMM_NW_NAME_MAX_LEN];
+ kal_bool short_name_for_nwP;
+ kal_uint8 short_name_for_nw_len;
+ kal_uint8 short_name_for_nw[RAC_VGMM_NW_NAME_MAX_LEN];
+ kal_bool local_time_zoneP;
+ kal_uint8 local_time_zone;
+ kal_bool uni_time_and_local_time_zoneP;
+ nw_time_zone_time_struct uni_time_and_local_time_zone;
+ kal_bool nw_daylight_saving_timeP;
+ kal_uint8 nw_daylight_saving_time;
+ plmn_id_struct plmn_id;
+} rac_vgmm_nw_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vgmm_nw_feature_support_struct vg_nw_feature_support;
+} rac_vgmm_nw_feature_support_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_ecc_changed; // tell L4 if ecc changed
+ kal_uint8 no_ecc;
+ ecc_number_struct ecc_list[MAX_NW_ECC_NUM];
+ kal_bool is_eenl_changed; // tell L4 if eenl changed
+ plmn_id_struct eenl_plmn;
+} rac_vgmm_nw_ecc_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sat_nw_rej_info_enum op;
+ cell_info_and_rat_struct current_cell;
+ sat_nw_rej_type_enum type;
+ kal_uint8 rej_cause;
+} rac_vgmm_nw_reject_ind_struct;
+
+typedef emmreg_ims_reg_status_update_req_struct rac_vgmm_ims_reg_status_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_service_type_enum type;
+ ims_service_status_enum status;
+
+} rac_vgmm_ims_service_status_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id;
+ ims_service_type_enum type;
+ ims_service_status_enum status;
+ kal_uint8 src_id; //source id of this message (IMS or VDM)
+} rac_vgmm_ims_uac_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id;
+ kal_uint8 src_id; //source id of this message (IMS or VDM)
+} rac_vgmm_ims_uac_abort_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id;
+ ims_service_uac_result_enum result;
+ kal_uint8 src_id; //source id of this message (IMS or VDM)
+} rac_vgmm_ims_uac_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rac_vgmm_emergency_service_request_type_enum requested_ems_type;
+ rac_vgmm_emergency_service_request_cause_enum additional_ems_cause;
+} rac_vgmm_emergency_service_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rac_vgmm_emergency_service_cnf_result_enum cnf_result;
+ rac_vgmm_emergency_service_cnf_cause_enum cnf_result_cause;
+ rac_vgmm_emergency_service_reg_type_enum reg_type;
+ } rac_vgmm_emergency_service_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rac_vgmm_emergency_service_cnf_cause_enum emergency_service_status;
+} rac_vgmm_emergency_service_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} rac_vgmm_emergency_service_fallback_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rac_vgmm_emergency_fallback_cnf_result_enum cnf_result;
+ rac_vgmm_emergency_fallback_cnf_cause_enum cnf_result_cause;
+} rac_vgmm_emergency_service_fallback_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint64 ac_bitmap;
+
+} rac_vgmm_ims_uac_alleviation_ind_struct;
+
+typedef l4crac_data_service_status_update_req_struct rac_vgmm_data_service_status_update_req_struct;
+typedef l4crac_user_selected_main_ps_req_struct rac_vgmm_user_selected_main_ps_req_struct;
+#if defined(__IMS_SUPPORT__)
+typedef l4crac_ims_config_req_struct rac_vgmm_ims_config_ind_struct;
+#endif /* __IMS_SUPPORT__ */
+
+#ifdef __FIVEG_NAS__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ nvram_vgmm_reject_cause_mapping_record_struct mapping_table[NVRAM_VGMM_REJECT_CAUSE_MAPPING_SIZE];
+} rac_vgmm_reject_cause_mapping_req_struct;
+#endif /* __FIVEG_NAS__ */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ data_speed_support_enum cell_data_speed_support;
+ cell_info_and_rat_struct cell_info;
+
+} rac_vgmm_cell_info_update_ind_struct;
+
+typedef struct
+{
+ plmn_id_struct plmn_id; // for indicating the PLMN ID
+ kal_uint8 configured_nssai_length;
+ kal_uint8 configured_nssai[LEN_OF_NSSAI_LIST_LONG];
+ kal_uint8 allowed_nssai_3gpp_length;
+ kal_uint8 allowed_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ kal_uint8 allowed_nssai_non3gpp_length;
+ kal_uint8 allowed_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
+} plmn_specific_nssai_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; // for indicating the channel ID
+ kal_bool clear_nssai;
+ kal_uint8 default_configured_nssai_length;
+ kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG];
+
+} rac_vgmm_set_nssai_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; // for indicating the channel ID
+ kal_bool nssai_set_status;
+
+} rac_vgmm_set_nssai_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; // for indicating the channel ID
+ vgs_nssai_cmd_type_enum cmd_type;// for indicating the triggering AT cmd
+ kal_uint8 nssai_type_bm;
+ kal_bool plmn_id_valid;
+ plmn_id_struct plmn_id;
+
+} rac_vgmm_get_nssai_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; // for indicating the channel ID
+ vgs_nssai_cmd_type_enum cmd_type;// for indicating the triggering AT cmd
+ kal_uint8 default_configured_nssai_length;
+ kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG];
+ kal_uint8 rejected_nssai_3gpp_length;
+ kal_uint8 rejected_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ kal_uint8 rejected_nssai_non3gpp_length;
+ kal_uint8 rejected_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ plmn_specific_nssai_struct plmn_specific_nssai[NUM_NSSAI_PLMN_IDS];
+ kal_uint8 preferred_nssai_3gpp_length;
+ kal_uint8 preferred_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ kal_uint8 preferred_nssai_non3gpp_length;
+ kal_uint8 preferred_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
+
+} rac_vgmm_get_nssai_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; // for indicating the channel ID
+ kal_uint8 clear_preferred_nssai; // Bitfield, see SAP for details
+ kal_uint8 preferred_nssai_3gpp_length;
+ kal_uint8 preferred_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ kal_uint8 preferred_nssai_non3gpp_length;
+ kal_uint8 preferred_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
+
+} rac_vgmm_set_pref_nssai_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; // for indicating the channel ID
+ kal_bool nssai_set_status;
+
+} rac_vgmm_set_pref_nssai_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} rac_vgmm_5gsloci_clear_req_struct;
+
+typedef l4crac_vgmm_proc_failure_ind_struct rac_vgmm_proc_failure_ind_struct;
+
+typedef struct {
+ vgs_ta_list_type_enum list_type;
+ plmn_id_struct plmn_id;
+ kal_uint8 number_of_tac;
+ kal_uint32 tac_list[VGNAS_MAX_TAI_LIST];
+}vgnas_tai_list_single_plmn_struct;
+
+typedef struct {
+ vgs_ta_list_type_enum list_type;
+ vgnas_ta_list_struct tai_list;
+}vgnas_tai_list_multi_plmn_struct;
+
+/**
+ * TAI list structure with list type for MBIM_MS_TAI_LIST_INFO.
+*/
+typedef struct {
+ /* for TA_LIST_TYPE_00 or TA_LIST_TYPE_01 */
+ kal_uint8 number_of_tai_list_single_plmn;
+ vgnas_tai_list_single_plmn_struct tai_list_single_plmn[VGNAS_MAX_TAI_LIST];
+
+ /*for TA_LIST_TYPE_10 */
+ vgnas_tai_list_multi_plmn_struct tai_list_multi_plmn;
+} vgnas_tai_list_with_list_type_struct;
+
+/**
+ * LADN list structure with TAI list for MBIM_MS_TAI_LIST_INFO.
+*/
+typedef struct {
+ apn_struct dnn;
+ vgnas_tai_list_with_list_type_struct tai_list;
+} ladn_info_with_tai_list_type_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 default_configured_nssai_length;
+ kal_uint8 default_configured_nssai[LEN_OF_NSSAI_LIST_LONG];
+ kal_uint8 rejected_nssai_3gpp_length;
+ kal_uint8 rejected_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ kal_uint8 rejected_nssai_non3gpp_length;
+ kal_uint8 rejected_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ kal_uint8 configured_nssai_length;
+ kal_uint8 configured_nssai[LEN_OF_NSSAI_LIST_LONG];
+ kal_uint8 allowed_nssai_3gpp_length;
+ kal_uint8 allowed_nssai_3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ kal_uint8 allowed_nssai_non3gpp_length;
+ kal_uint8 allowed_nssai_non3gpp[LEN_OF_NSSAI_LIST_SHORT];
+ vgnas_tai_list_with_list_type_struct ta_list;
+ kal_uint8 num_of_ladn_info;
+ ladn_info_with_tai_list_type_struct ladn_info[MAX_LADN_INFO];
+} rac_vgmm_nw_params_ind_struct;
+/********************************************
+ * VARIABLES *
+ ********************************************/
+
+
+/********************************************
+* FUNCTION DECLARATIONS *
+********************************************/
+
+#endif /* _RAC_VGMM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/ratcm_csd_interface.h b/mcu/protocol/interface/l4/ratcm_csd_interface.h
new file mode 100644
index 0000000..49afb9c
--- /dev/null
+++ b/mcu/protocol/interface/l4/ratcm_csd_interface.h
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * 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:
+ * ---------
+ * ratcm_csd_interface.h
+ *
+ * Project:
+ * --------
+ * MONZA
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _RATCM_CSD_INTERFACE_H
+#define _RATCM_CSD_INTERFACE_H
+
+/* MAUI_02828210, redundant header removal */
+/***************************
+Include Prefix Header Files
+****************************/
+#include "kal_general_types.h"
+
+/***************************
+Exported Function Prototypes
+****************************/
+
+typedef enum
+{
+ CSD_MODE_NO,
+ CSD_MODE_TRA,
+ CSD_MODE_NT,
+ CSD_MODE_TRA_FAX,
+ CSD_MODE_NT_FAX
+}
+CSD_MODE_ENUM;
+
+typedef enum
+{
+ CSD_USER_RATE_2400,
+ CSD_USER_RATE_4800,
+ CSD_USER_RATE_7200,
+ CSD_USER_RATE_9600,
+ CSD_USER_RATE_12000,
+ CSD_USER_RATE_14400,
+ CSD_USER_RATE_19200,
+ CSD_USER_RATE_28800,
+ CSD_USER_RATE_38400,
+ CSD_USER_RATE_48000,
+ CSD_USER_RATE_56000,
+ CSD_USER_RATE_64000 /* MAUI_02375911 */
+}
+CSD_USER_RATE_ENUM;
+
+
+typedef enum
+{
+ CSD_ON = 0,
+ CSD_OFF
+}
+CSD_STATUS_ENUM;
+
+typedef struct
+{
+ CSD_STATUS_ENUM sa;
+ CSD_STATUS_ENUM sb;
+ CSD_STATUS_ENUM x;
+}
+CSD_V24_STATUS_STRUCT;
+
+typedef enum{
+CSD_TICK_RATE_10MS,
+CSD_TICK_RATE_20MS,
+CSD_TICK_RATE_40MS,
+CSD_TICK_RATE_80MS
+} CSD_TICK_RATE_ENUM;
+
+
+
+#endif /* _RATCM_CSD_INTERFACE_H */
diff --git a/mcu/protocol/interface/l4/sdm_l4c_struct.h b/mcu/protocol/interface/l4/sdm_l4c_struct.h
new file mode 100644
index 0000000..d57d41a
--- /dev/null
+++ b/mcu/protocol/interface/l4/sdm_l4c_struct.h
@@ -0,0 +1,125 @@
+/*****************************************************************************
+* 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_l4c_struct.h
+*
+* Project:
+* ------------
+* MOLY
+*
+* Description:
+* ------------
+* This file is intends for L4C/SDM interface
+*
+* Author:
+* -----------
+ * -------
+*****************************************************************************/
+
+#ifndef _SDM_L4C_STRUCT_H
+#define _SDM_L4C_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "l3_inc_enums_public.h"
+#include "ps_public_enum.h"
+#include "rac_vgmm_struct.h"
+#include "sdm_atp_enums.h"
+
+typedef rac_vgmm_ims_service_status_req_struct sdm_l4c_nr_ims_sms_status_req_struct;
+typedef rac_vgmm_ims_uac_req_struct sdm_l4c_ims_uac_req_struct;
+typedef rac_vgmm_ims_uac_cnf_struct sdm_l4c_ims_uac_cnf_struct;
+typedef sdm_l4c_ims_uac_req_struct sdm_l4c_ims_normal_sms_uac_req_struct;
+typedef sdm_l4c_ims_uac_req_struct sdm_l4c_ims_stk_sms_uac_req_struct;
+typedef sdm_l4c_ims_uac_req_struct sdm_l4c_ims_cmss_sms_uac_req_struct;
+typedef sdm_l4c_ims_uac_req_struct sdm_l4c_ims_c2k_sms_uac_req_struct;
+typedef sdm_l4c_ims_uac_req_struct sdm_l4c_ims_utk_sms_uac_req_struct;
+typedef sdm_l4c_ims_uac_cnf_struct sdm_l4c_ims_normal_sms_uac_cnf_struct;
+typedef sdm_l4c_ims_uac_cnf_struct sdm_l4c_ims_stk_sms_uac_cnf_struct;
+typedef sdm_l4c_ims_uac_cnf_struct sdm_l4c_ims_cmss_sms_uac_cnf_struct;
+typedef sdm_l4c_ims_uac_cnf_struct sdm_l4c_ims_c2k_sms_uac_cnf_struct;
+typedef sdm_l4c_ims_uac_cnf_struct sdm_l4c_ims_utk_sms_uac_cnf_struct;
+typedef rac_vgmm_ims_uac_alleviation_ind_struct sdm_l4c_ims_uac_alleviation_ind_struct;
+
+/* MSG_ID_SDM_L4C_EMERGENCY_SERVICE_REQ */
+typedef rac_vgmm_emergency_service_req_struct sdm_l4c_emergency_service_req_struct;
+/* MSG_ID_SDM_L4C_EMERGENCY_SERVICE_CNF */
+typedef rac_vgmm_emergency_service_cnf_struct sdm_l4c_emergency_service_cnf_struct;
+/* MSG_ID_SDM_L4C_EMERGENCY_SERVICE_IND */
+typedef rac_vgmm_emergency_service_ind_struct sdm_l4c_emergency_service_ind_struct;
+/*MSG_ID_SDM_L4C_EMERGENCY_SERVICE_FALLBACK_REQ*/
+typedef rac_vgmm_emergency_service_fallback_req_struct sdm_l4c_emergency_service_fallback_req_struct;
+/* MSG_ID_SDM_L4C_EMERGENCY_SERVICE_FALLBACK_CNF */
+typedef rac_vgmm_emergency_service_fallback_cnf_struct sdm_l4c_emergency_service_fallback_cnf_struct;
+
+/*MSG_ID_SDM_L4C_PS_ATTACHED_RAT_IND*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sdm_nas_ps_reg_status_enum nas_reg_status;
+} sdm_l4c_ps_attached_rat_ind_struct;
+
+/*MSG_ID_SDM_L4C_CS_ATTACHED_RAT_IND*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sdm_nas_cs_reg_status_enum nas_reg_status;
+} sdm_l4c_cs_attached_rat_ind_struct;
+
+/*MSG_ID_SDM_L4C_NW_FEATURE_IND*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum active_rat;
+ union
+ {
+ vgmm_nw_feature_support_struct nr;
+ emm_nw_feature_support_struct eps;
+ gmm_nw_feature_support_struct ug;
+ } nw_feature;
+} sdm_l4c_nw_feature_ind_struct;
+
+/*MSG_ID_SDM_L4C_EMTS_REQ*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+} sdm_l4c_emts_req_struct;
+
+#endif /* _SDM_L4C_STRUCT_H */
+
diff --git a/mcu/protocol/interface/l4/sm2tcm_func.h b/mcu/protocol/interface/l4/sm2tcm_func.h
new file mode 100644
index 0000000..91e789c
--- /dev/null
+++ b/mcu/protocol/interface/l4/sm2tcm_func.h
@@ -0,0 +1,108 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * SM2TCM_FUNC.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file provides callback function for SM task (be careful, SM and TCM belongs to different tasks and have different task priority)
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+#ifndef _SM2TCM_FUNC_H
+#define _SM2TCM_FUNC_H
+
+#include "kal_general_types.h"
+
+typedef struct {
+ qos_struct qos_requested;
+ qos_struct qos_minimum;
+ kal_uint8 p_comp_algo;
+ kal_uint8 d_comp_algo;
+ kal_uint16 req_n201u;
+} epsb_context_aux_para_struct;
+
+#if defined(__GEMINI__)
+extern void sm_get_current_modem_index(kal_uint8 * modem_index_ptr);
+#endif // ~ #if defined(__GEMINI__)
+
+extern kal_bool sm_tcm_get_epsb_context_aux_parameters(kal_uint8 epsb_id, epsb_context_aux_para_struct * returned_ptr);
+
+#endif // ~ _SM2TCM_FUNC_H
+
+
diff --git a/mcu/protocol/interface/l4/sm2tcm_struct.h b/mcu/protocol/interface/l4/sm2tcm_struct.h
new file mode 100644
index 0000000..f6675b8
--- /dev/null
+++ b/mcu/protocol/interface/l4/sm2tcm_struct.h
@@ -0,0 +1,346 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * SM2TCM_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common enums of TCM and SM.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+#ifndef _SM2TCM_STRUCT_H
+#define _SM2TCM_STRUCT_H
+
+#include "mmi_l3_enums.h"
+#include "mcd_l3_inc_gprs_struct.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "irat_common_struct.h"
+#include "sm_esm_struct.h"
+#include "l3_inc_local.h"
+#include "tftlib_common_struct.h"
+#include "mm2cm_struct.h"
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ qos_struct qos_negotiated; /* QoS negotiated with the NW*/
+ pdp_addr_type_enum pdp_addr_type; /* PDP Address Type, Can be IPV4, IPV6, PPP, IPV4V6*/
+ kal_uint8 pdp_addr_len; /* Length of PDP Address Contents*/
+ // If the pdp_addr_type == IPV4, this field contains IPV4 address,
+ // If the pdp_addr_type == IPV6, this field contains IPV6 address,
+ // If the pdp_addr_type == IPV4v6, this field contains IPV4 address in pdp_addr[0]~pdp_addr[3],
+ // IPV6 address in pdp_addr[4]~pdp_addr[19]
+ kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
+ kal_bool cause_2_present; // if network has cause_2 value in ACTIVATE_PDP_CONTEXT_ACCEPT
+ ps_cause_enum cause_2; // the previous PDP accept cause_2 value, ex: PDP_TYPE_IPV4_ONLY_ALLOWED,
+ // PDP_TYPE_IPV6_ONLY_ALLOWED, SINGLE_ADDR_BEARERS_ONLY_ALLOWED
+ kal_uint8 config_protocol;
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+} smreg_pdp_activate_cnf_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ kal_bool is_rejected_by_nw; // if this PDP is rejected by NW using SM peer msg, KAL_TRUE, else, KAL_FALSE
+ ps_cause_enum cause; // Cause of rejection (also used for cause_2,
+ // if cause_2 violation, reject immediately without trying to send ACTIVATE_PDP_CONTEXT_REQUEST)
+ kal_uint8 config_protocol;
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+ kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
+ kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
+ rat_enum current_rat; /* __MTC_SUPPORT__ */
+ kal_bool is_re_attempt_indicator_present; //R12 CR2171
+ kal_uint8 re_attempt_indicator; //R12 CR2171
+} smreg_pdp_activate_rej_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ pdp_addr_type_enum pdp_addr_type; /* PDP Address Type, Can be IPV4, IPV6, PPP, IPV4V6*/
+ kal_uint8 pdp_addr_len; /* Length of PDP Address Contents*/
+ kal_uint8 token_id; /* NW Initiated Context Identifier*/
+ kal_uint8 apn_len; /* Length of Access Point Name Parameter*/
+ kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
+ // If the pdp_addr_type == IPV4, pdp_addr_len == 4, this field contains IPV4 address,
+ // If the pdp_addr_type == IPV6, pdp_addr_len == 16, this field contains IPV6 address,
+ // If the pdp_addr_type == IPV4v6,
+ // pdp_addr_len == 20, this field contains IPV4 address in pdp_addr[0]~pdp_addr[3], IPV6 address in pdp_addr[4]~pdp_addr[19]
+ // pdp_addr_len == 4, this field contains IPV4 address in pdp_addr[0]~pdp_addr[3]
+ // pdp_addr_len == 16, this field contains IPV6 address in pdp_addr[0]~pdp_addr[15]
+ kal_uint8 access_name[100];
+} smreg_pdp_activate_ind_struct;
+
+typedef struct {
+ //23.060 9.2.2.3 Network Requested Secondary PDP Context Activation Procedure using Gn
+ //The MS sends an Activate Secondary PDP Context Request:
+ //The Linked TI, TI, QoS Requested, and Protocol Configuration Options sent in the Activate secondary PDP Context Request shall be the same as previously received
+ LOCAL_PARA_HDR
+ kal_uint8 token_id; /* NW Initiated Context Identifier*/
+ qos_struct qos_required; /* Mandatory IE, QoS IE in 24.008 Table 9.5.15a REQUEST SECONDARY PDP CONTEXT ACTIVATION */
+ kal_uint8 linked_nsapi; /* Mandatory IE, The nsapi value of the associated primary context*/
+ kal_bool tft_present;
+ tft_info_struct tft; /* Optional IE */
+ kal_uint8 config_protocol; /* Optional IE, TFT IE in 24.008 Table 9.5.15a REQUEST SECONDARY PDP CONTEXT ACTIVATION */
+ kal_uint8 config_option_len;
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+} smreg_pdp_activate_sec_ind_struct;
+
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ qos_struct qos_negotiated; /* QoS Negotaited with the NW*/
+ kal_uint8 config_protocol;
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+} smreg_pdp_activate_sec_cnf_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ ps_cause_enum cause; /* Cause of rejection*/
+ kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
+ kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
+ rat_enum current_rat; /* __MTC_SUPPORT__ */
+ kal_bool is_re_attempt_indicator_present; //R12 CR2171
+ kal_uint8 re_attempt_indicator; //R12 CR2171
+} smreg_pdp_activate_sec_rej_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ps_cause_enum cause[11]; // Cause of Deactivation, if deact_fail == KAL_TRUE, the cause == RAT_TCM_RETRY_NEEDED_AFTER_IRAT
+ kal_uint8 tot_valid_nsapi; /* Total number of nsapi that are valid in the nsapi_list*/
+ kal_uint8 nsapi_list[11];
+ kal_bool deact_fail; // most scenario, deact_fail == KAL_FALSE. but when iRAT success and there is pending deact_req, then the deact_fail == TRUE
+ kal_bool is_T3396_present[11]; /* __MTC_SUPPORT__ */
+ kal_uint32 T3396_value_in_sec[11]; /* __MTC_SUPPORT__ */
+ rat_enum current_rat; /* __MTC_SUPPORT__ */
+} smreg_pdp_deactivate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ps_cause_enum cause[11]; /* Cause of Deactivation*/
+ kal_uint8 tear_ind;
+ kal_uint8 tot_valid_nsapi; /* Total number of nsapi that are valid in the nsapi_list*/
+ kal_uint8 nsapi_list[11];
+ kal_bool is_T3396_present[11]; /* __MTC_SUPPORT__ */
+ kal_uint32 T3396_value_in_sec[11]; /* __MTC_SUPPORT__ */
+ rat_enum current_rat; /* __MTC_SUPPORT__ */
+} smreg_pdp_deactivate_ind_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ kal_bool qos_mod_neg_present; // this is an optional IE in MODIFY PDP CONTEXT ACCEPT (Network to MS direction)
+ qos_struct qos_mod_neg; /* The QoS negotiated with the NW after the modification*/
+ //context_mod_type_enum mod_type; /* Note: TCM should not store this into session_info_block_struct.mod_type. */
+ kal_bool tft_present; // if TCM send MOD_REQ with tft_present==TRUE, SM will send MOD_CNF with tft_present==TRUE
+ kal_bool qos_min_present; // if TCM send MOD_REQ with qos_min_present==TRUE, SM will send MOD_CNF with qos_min_present==TRUE
+ kal_uint8 config_protocol; // new, need to consider BCM mode
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+} smreg_pdp_modify_cnf_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ ps_cause_enum cause; /* Cause of rejection*/
+ kal_bool is_T3396_present; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value present */
+ kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ R12 CR2171: Back-off timer value in sec */
+ rat_enum current_rat; /* __MTC_SUPPORT__ */
+ kal_bool is_re_attempt_indicator_present; //R12 CR2171
+ kal_uint8 re_attempt_indicator; //R12 CR2171
+} smreg_pdp_modify_rej_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ kal_bool qos_negotiated_present; // this is an mandatory IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
+ qos_struct qos_negotiated; // this is an mandatory IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
+ //context_mod_type_enum mod_type; /* Note: TCM should not store this into session_info_block_struct.mod_type. */
+ kal_bool pdp_addr_present; // this is an optional IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
+ kal_uint8 pdp_addr_len; /* Length of PDP Address contents*/
+ kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
+ kal_bool tft_present; // this is an optional IE in MODIFY PDP CONTEXT REQUEST (Network to MS direction)
+ tft_info_struct tft; /* This field gives the TFT parameters*/
+ kal_uint8 config_protocol;
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+} smreg_pdp_modify_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 no_of_nsapis;
+ kal_uint8 nsapi_list[11];
+} smreg_pdp_preserve_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 no_of_nsapis;
+ kal_uint8 nsapi_list[11];
+} smreg_pdp_reestablish_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_result_enum irat_result;
+ //sm_esm_context_status_struct pdp_transfer_result;
+} smreg_rat_change_complete_ind_struct;
+
+
+/** Structure used to indicate dual priority config, used if __MTC_SUPPORT__. */
+typedef struct
+{
+ /** ILM specific header. */
+ LOCAL_PARA_HDR
+
+ /** used to indicate nas priority config, used if __MTC_SUPPORT__ */
+ nas_priority_config_enum nas_priority_config ;
+
+ /** used to indicate eab override, used if __MTC_SUPPORT__ */
+ eab_override_config_enum eab_override_config ;
+} smreg_dual_priority_config_req_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/smic_struct.h b/mcu/protocol/interface/l4/smic_struct.h
new file mode 100644
index 0000000..ff1b51a
--- /dev/null
+++ b/mcu/protocol/interface/l4/smic_struct.h
@@ -0,0 +1,373 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+* ---------
+* smic_struct.h
+*
+* Project:
+* --------
+* VMOLY
+*
+* Description:
+* ------------
+*
+* Author:
+* -------
+ * -------
+******************************************************************************/
+
+#ifndef _SMIC_STRUCT_H_
+#define _SMIC_STRUCT_H_
+
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "nas_sv_struct.h"
+#include "irat_common_enums.h"
+#include "irat_common_struct.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "l3_inc_local.h"
+#include "tcm_eval_struct.h"
+
+/********************************************
+ * MACROS *
+ ********************************************/
+#define SMIC_MAX_NUM_OF_5G_IE_IN_PCO 10
+
+#define SMIC_5G_PCO_IE_S_NSSAI 0x001B
+#define SMIC_5G_PCO_IE_QOS_RULES 0x001C
+#define SMIC_5G_PCO_IE_SESSION_AMBR 0x001D
+#define SMIC_5G_PCO_IE_PDUS_ADDR_LIFETIME 0x001E
+#define SMIC_5G_PCO_IE_QOS_FLOW_DESCRIPTION 0x001F
+#define SMIC_5G_PCO_IE_ETHERNET_FRAME_PAYLOAD_MTU 0x0020
+#define SMIC_5G_PCO_IE_UNSTRUCTURED_LINK_MTU 0x0021
+
+#define SMIC_5G_PCO_IE_2_OCTET_QOS_RULES 0x0023
+#define SMIC_5G_PCO_IE_2_OCTET_QOS_FLOW_DESCRIPTION 0x0024
+
+
+
+/********************************************
+ * TYPE DEFINITIONS & ENUMS *
+ ********************************************/
+
+typedef enum {
+ SMIC_4G_BEARER_TYPE_DEFAULT,
+ SMIC_4G_BEARER_TYPE_DEDICATED,
+} smic_4g_bearer_type_enum;
+
+typedef enum {
+ SMIC_ACTIVE_SM_NONE, /* only exist in boot-up case */
+ SMIC_ACTIVE_SM_23G,
+ SMIC_ACTIVE_SM_4G,
+ SMIC_ACTIVE_SM_5G,
+ SMIC_ACTIVE_SM_MAX,
+} smic_active_sm_enum;
+
+typedef enum {
+ SMIC_CAMP_ON_AS_2G,
+ SMIC_CAMP_ON_AS_3G,
+ SMIC_CAMP_ON_AS_4G,
+ SMIC_CAMP_ON_AS_5G,
+ SMIC_CAMP_ON_AS_MAX,
+} smic_camp_on_as_rat_enum;
+
+typedef enum {
+ SMIC_5G_SET_RESULT_OK,
+ SMIC_5G_SET_RESULT_OK_BUT_NEED_ERR_ACTION,
+ SMIC_5G_SET_RESULT_MAX,
+} smic_5g_set_result_enum;
+
+
+typedef enum {
+ SMIC_4G_SET_RESULT_OK,
+ SMIC_4G_SET_RESULT_ERROR_SEND_CAUSE_TO_NW,
+ SMIC_4G_SET_RESULT_INVALID_INPUT_ARG,
+ SMIC_4G_SET_RESULT_MAX,
+} smic_4g_set_result_enum;
+
+
+typedef enum {
+ SMIC_REQ_ACTION_NONE, /* boot-up case */
+ SMIC_REQ_ACTION_FREE_CONTEXT, /* 3G5, 5G3 */
+ SMIC_REQ_ACTION_DO_CONTEXT_TRANSFER, /* 3G4, 4G3, 4G5 with N26, 5G4 with N26 */
+ SMIC_REQ_ACTION_FREE_CONTEXT_WITH_HANDOVER_CAUSE, /* 4G5 w/o N26, 5G4 w/o N26 */
+ SMIC_REQ_ACTION_MAX,
+} smic_req_action_enum;
+
+typedef struct {
+ kal_uint8 ebi;
+ kal_uint8 linked_ebi;
+ kal_uint8 mapped_psi;
+} smic_esm_active_ebi_info_struct;
+
+typedef struct {
+ kal_uint8 num_of_active_ebi;
+ smic_esm_active_ebi_info_struct active_ebi[MAX_L4_PS_EBI_NUM];
+} smic_esm_peer_msg_precheck_info_struct;
+
+typedef struct {
+ kal_uint8 num_of_to_del_epsb_ebi;
+ kal_uint8 to_del_epsb_ebi[MAX_L4_PS_EBI_NUM];
+ kal_bool need_sync_cause_to_nw;
+ ps_cause_enum cause;
+} smic_return_error_struct;
+
+
+typedef struct {
+ kal_bool is_always_on_pdu_session_req_present;
+ always_on_pdu_session_req_enum always_on_pdu_session_req;
+
+ kal_bool rqos_support;
+ kal_bool mh6_support;
+
+} smic_5g_ue_requested_context_struct;
+
+typedef struct {
+ kal_bool is_pdu_address_present;
+ ip_addr_struct pdu_address;
+ kal_bool is_dnn_present;
+ apn_struct dnn;
+ kal_bool is_emergency;
+ kal_bool is_ims;
+} smic_common_pdn_pdu_info_struct;
+
+typedef struct {
+ pdp_addr_type_enum selected_pdu_session_type;
+
+ kal_bool is_s_nssai_present;
+ pdus_s_nssai_struct s_nssai;
+
+ kal_bool is_session_ambr_present;
+ pdus_session_ambr_struct session_ambr;
+
+ kal_bool is_rq_timer_value_in_sec_present;
+ kal_uint32 rq_timer_value_in_sec;
+
+ kal_bool is_pdu_session_release_time_present;
+ kal_uint32 pdu_session_release_time;
+
+ kal_bool is_always_on_pdu_session_ind_present;
+ always_on_pdu_session_ind_enum always_on_pdu_session_ind;
+
+ pdus_qos_flow_struct qos_flow;
+
+ kal_bool is_capability_updated_to_nw;
+
+} smic_5g_nw_applied_context_struct;
+
+typedef enum {
+ SMIC_PDUS_CTX_STATUS_NOT_EXIST,
+ SMIC_PDUS_CTX_STATUS_EXIST_BY_5G_ASSOCIATED,
+ SMIC_PDUS_CTX_STATUS_EXIST_BY_4G_PROVIDED,
+ SMIC_PDUS_CTX_STATUS_MAX,
+} smic_pdus_ctx_status_enum;
+
+typedef struct {
+ /* maintained by VGSM owner */
+ smic_pdus_ctx_status_enum pdus_ctx_status;
+
+ smic_5g_ue_requested_context_struct ue_requested_info;
+ smic_5g_nw_applied_context_struct nw_applied_info;
+
+} smic_pdus_context_struct;
+
+
+typedef struct {
+ /* maintained by ESM owner */
+
+ //----Meta Data ; Do not directly access these items ; Use methods provided by smic_epsb.c -------------
+ kal_bool is_context_valid; // Whether this EPS Bearer is active. Only when EPS Bearer is active, is it's context valid
+ kal_uint8 ebi; // The index in epsb_context[MAX_L4_PS_EBI_NUM] array.
+ kal_bool is_alloc_by_esm;
+ kal_uint8 ps_idx;
+ // -------------------------
+
+
+
+
+ kal_uint8 psi; // ID of PDU Session where this EPS bearer is established or its context is last modified.
+
+
+ irat_transfer_bearer_type_enum bearer_type;
+
+ // Defined in TS 24.501 Mapped EPS Bearer Context IE
+ kal_bool is_apn_ambr_present;
+ eps_apn_ambr_struct apn_ambr;
+
+ kal_bool is_eps_qos_present;
+ eps_qos_struct eps_qos;
+
+
+
+ struct
+ {
+ // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_ug_qos_present;
+ // negotiated qos parameter used in 23G
+ qos_struct ug_qos;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_llc_sapi_present;
+ kal_uint8 llc_sapi;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_radio_priority_present;
+ kal_uint8 radio_priority;
+
+ // this parameter is critical to 2G. if iRAT is 4G2, SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_pfi_present;
+ kal_uint8 pfi;
+
+ // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_ti_present;
+ irat_ti_struct ti;
+ } legacy_ctxt; // 23G Param.
+
+
+} smic_ebi_context_struct;
+
+/* SM/ESM */
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ ho_from_lte_type_enum ir_ho_type;
+} smic_active_sm_change_start_ind_struct;
+
+/* SM/ESM */
+typedef struct {
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ irat_result_enum irat_result;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ ho_from_lte_type_enum ir_ho_type;
+ smic_req_action_enum action; /* new for with/without N26 */
+} smic_active_sm_change_finish_ind_struct;
+
+/* ESM */
+typedef struct {
+ LOCAL_PARA_HDR
+ enasas_add_epsbearer_list_struct add_list;
+} smic_esm_as_para_update_ntf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_active_rat_4g;
+} smic_esm_active_rat_ind_struct;
+
+/* VGSM/RAT_TCM/RATDM */
+typedef struct {
+ LOCAL_PARA_HDR
+ smic_active_sm_enum source_sm;
+ smic_active_sm_enum target_sm;
+ smic_req_action_enum xsm_action;
+ smic_camp_on_as_rat_enum camp_on_as_rat;
+} smic_active_sm_change_ind_struct;
+
+typedef struct {
+ kal_uint16 protocol_id;
+ kal_uint16 protocol_config_len;
+ kal_uint8 *protocol_config;
+} smic_5g_config_option_struct;
+
+typedef struct {
+ smic_common_pdn_pdu_info_struct common_pdus_info;
+ smic_pdus_context_struct pdus_info;
+} smic_get_vgsm_context_struct;
+
+/* ESM<>SMIC */
+typedef struct {
+ smic_common_pdn_pdu_info_struct common_pdus_info;
+ smic_5g_nw_applied_context_struct pdus_info;
+} smic_vgsm_associated_ctx_struct;
+
+
+typedef struct
+{
+ bearer_ctxt_struct pdp_context; // Common struct to store 5G Mapped EPS Bearer / 4G EPS Bearer / 23G PDP Context
+
+ // Additional Params. used for 4G<>5G
+ kal_uint8 psi;
+ // Only valid when this is a Default EPS Bearer in 4G or 5G
+ kal_bool is_apn_ambr_present;
+ eps_apn_ambr_struct apn_ambr;
+
+ kal_bool is_ims_bearer;
+
+
+} esm_smic_epsb_context_struct;
+
+typedef struct
+{
+
+ // NSAPI / EBI (range is 5~15)
+ kal_uint8 bearer_id;
+
+ // 5G4 default/dedicated bearer would set this field.
+ apn_struct apn;
+
+ // this parameter is critical to 23G. SM can just send MAP FAIL to ESM when this parameter is not present
+ kal_bool is_ug_qos_present;
+ // negotiated qos parameter used in 23G
+ qos_struct ug_qos;
+
+ kal_bool is_eps_qos_present;
+ // When ESM transfer more than GPRS_MAX_PDP_SUPPORT contexts to SM,
+ // SM need to use eps_qos to decide which contexts need to be mapped failed and inform ESM to local release it.
+ eps_qos_struct eps_qos;
+
+ bearer_service_type_enum bearer_service_type;
+
+}esm_smic_precheck_epsb_context_struct;
+
+
+/********************************************
+ * VARIABLES *
+ ********************************************/
+
+/********************************************
+ * FUNCTION DECLARATIONS *
+ ********************************************/
+
+
+#endif /* _SMIC_STRUCT_H_ */
+
+
diff --git a/mcu/protocol/interface/l4/sms2smsal_enum.h b/mcu/protocol/interface/l4/sms2smsal_enum.h
new file mode 100644
index 0000000..8a15e94
--- /dev/null
+++ b/mcu/protocol/interface/l4/sms2smsal_enum.h
@@ -0,0 +1,112 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * sms2smsal_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file contains common enums, defined constants for
+ * interface of SMS and SMSAL.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+#ifndef _SMS2SMSAL_ENUM_H
+#define _SMS2SMSAL_ENUM_H
+
+
+typedef enum
+{
+ SMS_SMMA_REQ,
+ SMS_SMMA_ABORT
+} sms_smma_req_enum;
+
+typedef enum
+{
+ SMS_SUCCESS = 0,
+ SMS_FAIL
+} sms_ret_code_enum;
+
+typedef enum
+{
+ SMS_ERR_TYPE_MS_ERROR,
+ SMS_ERR_TYPE_CP_ERROR,
+ SMS_ERR_TYPE_RP_ERROR,
+ SMS_ERR_TYPE_NW_ERROR
+} sms_error_type_enum;
+
+typedef enum
+{
+ SMS_SERVICE_BIT_MASK_23G_SERVICE = 0x01,
+ SMS_SERVICE_BIT_MASK_NR_SERVICE = 0x02
+} sms_service_bit_mask_enum;
+
+
+
+#endif /* _SMS2SMSAL_ENUM_H */
+
+
diff --git a/mcu/protocol/interface/l4/smsal_nrrc_struct.h b/mcu/protocol/interface/l4/smsal_nrrc_struct.h
new file mode 100644
index 0000000..02fbd58
--- /dev/null
+++ b/mcu/protocol/interface/l4/smsal_nrrc_struct.h
@@ -0,0 +1,75 @@
+/*****************************************************************************
+* 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) 2018
+*
+* 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:
+ * ---------
+ * smsal_nrrc_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ * Messages and common definitions for SMSAL-NRRC interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+
+#ifndef _SMSAL_NRRC_STRUCT_H_
+#define _SMSAL_NRRC_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+
+
+typedef smsal_4g5g_cbch_req_struct smsal_nrrc_cbch_req_struct;
+
+
+typedef smsal_4g5g_cb_update_req_struct smsal_nrrc_cb_update_req_struct;
+
+
+typedef smsal_4g5g_cb_data_ind_struct smsal_nrrc_cb_data_ind_struct;
+
+
+typedef smsal_4g5g_cb_msg_removal_req_struct smsal_nrrc_cb_msg_removal_req_struct;
+
+
+#endif /* _SMSAL_NRRC_STRUCT_H_ */
diff --git a/mcu/protocol/interface/l4/smsal_peer_pun.h b/mcu/protocol/interface/l4/smsal_peer_pun.h
new file mode 100644
index 0000000..0984d5d
--- /dev/null
+++ b/mcu/protocol/interface/l4/smsal_peer_pun.h
@@ -0,0 +1,156 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * smsal_peer_pun.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is for packing and unpacking of SMS-TL peer message.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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 : smsal_peer_pun.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifdef MTK_PEER
+#define IMP __declspec(dllimport)
+#else
+#define IMP
+#endif
+#ifndef _SMSAL_PEER_PUN_H
+#define _SMSAL_PEER_PUN_H
+
+#include "kal_general_types.h"
+
+IMP unsigned int smsal_deliver_report_nack_peer_struct_bits(void *);
+IMP void smsal_deliver_report_nack_peer_struct_alloc(void *);
+IMP void smsal_deliver_report_nack_peer_struct_dealloc(void *);
+IMP unsigned int smsal_deliver_report_nack_peer_struct_pack(kal_uint8 *, void *, unsigned int);
+IMP unsigned int smsal_deliver_report_nack_peer_struct_unpack(void *, kal_uint8 *, unsigned int, unsigned int, void *);
+
+IMP unsigned int smsal_deliver_report_ack_peer_struct_bits(void *);
+IMP void smsal_deliver_report_ack_peer_struct_alloc(void *);
+IMP void smsal_deliver_report_ack_peer_struct_dealloc(void *);
+IMP unsigned int smsal_deliver_report_ack_peer_struct_pack(kal_uint8 *, void *, unsigned int);
+IMP unsigned int smsal_deliver_report_ack_peer_struct_unpack(void *, kal_uint8 *, unsigned int, unsigned int, void *);
+
+IMP unsigned int smsal_submit_peer_struct_bits(void *);
+IMP void smsal_submit_peer_struct_alloc(void *);
+IMP void smsal_submit_peer_struct_dealloc(void *);
+IMP unsigned int smsal_submit_peer_struct_pack(kal_uint8 *, void *, unsigned int);
+IMP unsigned int smsal_submit_peer_struct_unpack(void *, kal_uint8 *, unsigned int, unsigned int, void *);
+
+IMP unsigned int smsal_deliver_peer_struct_bits(void *);
+IMP void smsal_deliver_peer_struct_alloc(void *);
+IMP void smsal_deliver_peer_struct_dealloc(void *);
+IMP unsigned int smsal_deliver_peer_struct_pack(kal_uint8 *, void *, unsigned int);
+IMP unsigned int smsal_deliver_peer_struct_unpack(void *, kal_uint8 *, unsigned int, unsigned int, void *);
+
+IMP unsigned int smsal_submit_report_nack_peer_struct_bits(void *);
+IMP void smsal_submit_report_nack_peer_struct_alloc(void *);
+IMP void smsal_submit_report_nack_peer_struct_dealloc(void *);
+IMP unsigned int smsal_submit_report_nack_peer_struct_pack(kal_uint8 *, void *, unsigned int);
+IMP unsigned int smsal_submit_report_nack_peer_struct_unpack(void *, kal_uint8 *, unsigned int, unsigned int, void *);
+
+IMP unsigned int smsal_submit_report_ack_peer_struct_bits(void *);
+IMP void smsal_submit_report_ack_peer_struct_alloc(void *);
+IMP void smsal_submit_report_ack_peer_struct_dealloc(void *);
+IMP unsigned int smsal_submit_report_ack_peer_struct_pack(kal_uint8 *, void *, unsigned int);
+IMP unsigned int smsal_submit_report_ack_peer_struct_unpack(void *, kal_uint8 *, unsigned int, unsigned int, void *);
+
+IMP unsigned int smsal_status_report_peer_struct_bits(void *);
+IMP void smsal_status_report_peer_struct_alloc(void *);
+IMP void smsal_status_report_peer_struct_dealloc(void *);
+IMP unsigned int smsal_status_report_peer_struct_pack(kal_uint8 *, void *, unsigned int);
+IMP unsigned int smsal_status_report_peer_struct_unpack(void *, kal_uint8 *, unsigned int, unsigned int, void *);
+
+IMP unsigned int smsal_command_peer_struct_bits(void *);
+IMP void smsal_command_peer_struct_alloc(void *);
+IMP void smsal_command_peer_struct_dealloc(void *);
+IMP unsigned int smsal_command_peer_struct_pack(kal_uint8 *, void *, unsigned int);
+IMP unsigned int smsal_command_peer_struct_unpack(void *, kal_uint8 *, unsigned int, unsigned int, void *);
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/smsal_ratcm_struct.h b/mcu/protocol/interface/l4/smsal_ratcm_struct.h
new file mode 100644
index 0000000..54c1782
--- /dev/null
+++ b/mcu/protocol/interface/l4/smsal_ratcm_struct.h
@@ -0,0 +1,108 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * smsal_ratcm_struct.h
+ *
+ * Project:
+ * --------
+ * MONZA
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ******************************************************************************/
+
+#ifndef SMSAL_RATCM_STRUCT_H
+#define SMSAL_RATCM_STRUCT_H
+
+#include "ps_public_enum.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_cbs_required;
+ rat_enum cb_rat_enabled;
+} smsal_ratcm_cbch_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cbmi[CB_MAX_MSG_CBMI_NUM];
+ kal_uint16 cbmid[CB_MAX_MSG_CBMID_NUM];
+ kal_uint16 cbmir[CB_MAX_MSG_CBMIR_NUM];
+ kal_uint16 dcs[CB_MAX_LANG_NUM];
+ kal_bool is_all_language_on;
+ l4c_cb_set_type_enum set_type;
+} smsal_ratcm_cb_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rat;
+ kal_uint16 msgid;
+ kal_uint16 serial_num;
+ kal_uint8 dcs;
+ kal_bool is_mids;
+ kal_uint8 page_no;
+ kal_uint8 total_pages;
+ kal_uint8 page_data[CB_MAX_DATA_NUM_PER_PAGE];
+
+#ifdef __GSM_RAT__
+ kal_uint8 valid_blk_num; /* for last bit */
+#endif
+} smsal_ratcm_cb_data_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 geography_type;
+} smsal_ratcm_cb_gs_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 mid;
+ kal_uint16 sn;
+} smsal_ratcm_cb_msg_removal_req_struct;
+
+typedef smsal_ratcm_cb_msg_removal_req_struct smsal_ratcm_cb_dup_det_timer_stop_ind_struct;
+
+#endif /* SMSAL_RATCM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/ssds_l4c_struct.h b/mcu/protocol/interface/l4/ssds_l4c_struct.h
new file mode 100644
index 0000000..74f6ddf
--- /dev/null
+++ b/mcu/protocol/interface/l4/ssds_l4c_struct.h
@@ -0,0 +1,186 @@
+/*****************************************************************************
+* 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:
+* ------------
+* ssds_l4c_struct.h
+*
+* Project:
+* ------------
+* MOLY
+*
+* Description:
+* ------------
+* This file is intends for L4C/SSDS interface
+*
+* Author:
+* -----------
+ * -------
+*****************************************************************************/
+#ifndef _SSDS_L4C_STRUCT_H
+#define _SSDS_L4C_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "l3_inc_enums_public.h"
+#include "ps_public_enum.h"
+#include "rmmi_common_enum.h"
+#include "l4_vdm_enum.h"
+#include "sim_public_enum.h"
+#include "l4b_vdm_struct.h"
+#include "ims_common_def.h"
+#include "ims_interface_md.h"
+#include "l3_inc_enums.h"
+#include "c2k_irat_msg_struct.h"
+#include "l4c_eval_struct.h"
+
+#define SSDS_L4C_NEED_SIP_MSG_DATA 0
+
+
+/* MSG_ID_SSDS_L4C_FDN_CHECK_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ADDR_LEN];
+} ssds_l4c_fdn_check_req_struct;
+
+/* MSG_ID_SSDS_L4C_FDN_CHECK_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_allowed;
+ phb_errno_enum result; /* phb_errno_enum; Operation result*/
+ kal_uint16 cause;
+} ssds_l4c_fdn_check_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_imsvops_support;
+} ssds_l4c_nw_feature_ind_struct;
+
+
+/*--------------------------------------------------------
+ * STKUSSD
+ *--------------------------------------------------------*/
+// As CSM defined, USSD string max length before unpacking = 160
+// Consider 7-bit coding => ASCII: 182
+#define STK_IMS_USSD_MAX_LEN (182) // Maximum USSI string/response in ASCII
+
+typedef enum
+{
+ SIP_MSG_TYPE_NONE,
+ SIP_MSG_TYPE_INFO,
+ SIP_MSG_TYPE_BYE
+
+}ssds_l4c_sip_msg_type;
+
+/* MSG_ID_SSDS_L4C_STK_IMS_USSD_CONFIG_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_icon_display; // inform L4 if AP shows icon or not (AT+STKUSSD=0 or 4)
+} ssds_l4c_stk_ims_ussd_config_req_struct;
+
+/* MSG_ID_SSDS_L4C_STK_IMS_USSD_CONFIG_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool need_inform_user; // inform SSDS if URC report is needed
+
+ // Peer Buffer: ussd string, ASCII string (no '\0')
+} ssds_l4c_stk_ims_ussd_config_cnf_struct;
+
+/* MSG_ID_SSDS_L4C_STK_IMS_USSD_RES */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+ kal_bool need_retry_cs;
+ #if SSDS_L4C_NEED_SIP_MSG_DATA
+ ssds_l4c_sip_msg_type sip_msg;
+ #endif
+ sat_terminal_res_enum tr_cause;
+ sat_additional_info_for_res_enum additional_cause;
+
+ // Peer Buffer: response string, hex string of ASCII string (with '\0')
+} ssds_l4c_stk_ims_ussd_res_struct;
+
+/* MSG_ID_SSDS_L4C_STK_CS_USSD_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_icon_display; // inform L4 if AP shows icon or not (AT+STKUSSD=0 or 4)
+} ssds_l4c_stk_cs_ussd_req_struct;
+
+
+/*--------------------------------------------------------
+ * STKSS
+ *--------------------------------------------------------*/
+/* MSG_ID_SSDS_L4C_STKSS_CONFIG_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_icon_display; // inform L4 if AP shows icon or not (AT+STKSS=0 or 4)
+} ssds_l4c_stkss_config_req_struct;
+
+/* MSG_ID_SSDS_L4C_STKSS_CONFIG_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ // Peer Buffer: ss number, raw data in binary
+} ssds_l4c_stkss_config_cnf_struct;
+
+/* MSG_ID_SSDS_L4C_STKSS_RES */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+ kal_bool need_retry_cs;
+ sat_terminal_res_enum tr_cause;
+ sat_additional_info_for_res_enum additional_cause;
+
+ // Peer Buffer: response data, raw data in binary(not valid now)
+} ssds_l4c_stkss_res_struct;
+
+/* MSG_ID_SSDS_L4C_STKSS_CS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+} ssds_l4c_stkss_cs_req_struct;
+
+#endif
diff --git a/mcu/protocol/interface/l4/tcm2sm_struct.h b/mcu/protocol/interface/l4/tcm2sm_struct.h
new file mode 100644
index 0000000..a144faa
--- /dev/null
+++ b/mcu/protocol/interface/l4/tcm2sm_struct.h
@@ -0,0 +1,342 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * TCM2SM_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common enums of TCM and SM.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+#ifndef _TCM2SM_STRUCT_H
+#define _TCM2SM_STRUCT_H
+
+#include "mcd_l3_inc_gprs_struct.h"
+#include "l3_inc_local.h"
+#include "mmi_l3_enums.h"
+#include "mmi_sm_enums.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "tftlib_common_struct.h"
+#include "l3_inc_enums.h"
+#include "tcm_api.h"
+
+#include "tcm_context_public.h"
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum {
+ PDN_REQUEST_TYPE_INITIAL_REQUEST = REQUEST_TYPE_INITIAL_REQUEST,
+ PDN_REQUEST_TYPE_HANDOVER = REQUEST_TYPE_HANDOVER,
+ PDN_REQUEST_TYPE_UNUSED = REQUEST_TYPE_UNUSED,
+ PDN_REQUEST_TYPE_EMERGENCY = REQUEST_TYPE_EMERGENCY,
+ PDN_REQUEST_TYPE_HANDOVER_OF_EMERGENCY = REQUEST_TYPE_HANDOVER_OF_EMERGENCY,
+
+ PDN_REQUEST_TYPE_NONE = 0xFF,
+} pdn_request_type_enum ;
+
+typedef enum {
+ xSM_PROCESSING_TIME_UNLIMITED,
+ xSM_PROCESSING_TIME_LIMITED
+} xsm_processing_time_type_enum;
+
+typedef struct
+{
+ xsm_processing_time_type_enum processing_time_type;
+ kal_uint32 processing_time_limit; /* in timestamp */
+ kal_bool is_retry_by_l4;
+} req_processing_info_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ qos_struct qos_requested; /* QoS requested by the Application*/
+ qos_struct qos_minimum; /* Minimum QoS required by the Application*/
+ kal_uint8 token_id; /* This field is used in case the requestis sent for a NW initiated context.*/
+ pdp_addr_type_enum pdp_addr_type; /* It gives the address type whether it is IPV4, IPV6 or PPP*/
+ pdp_addr_len_enum pdp_addr_len; /* Length of the PDP address*/
+ kal_uint8 apn_len; /* Length of Access Point Name Parameter*/
+ kal_uint8 p_comp_algo; /* Algo to be used for Protocol Compression. Used only in case of GPRS*/
+ kal_uint8 d_comp_algo; /* Algo to be used for Data Compression. Used only in case if GPRS*/
+ initiated_enum initiated_by; /* This field will tell that the request has come for a NW initiated context or for MS initiated*/
+ kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN]; // if MT IPv4v6 PDP activation,
+ // NW may carry 20 bytes (IPv4+IPv6) address to UE,
+ // UE need to carry this 20 bytes address in ACTIVATE_PDP_CONTEXT_REQUEST
+ kal_uint8 access_name[100];
+ kal_uint8 config_protocol;
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+ pdp_auxinfo_struct aux_info; //erica 20070112
+ tcm_qos_mode_enum qos_mode ; /* __MEDIATEK_SMART_QOS__ */
+ nas_priority_config_enum nas_priority_config ; /* __MTC_SUPPORT__ */
+ eab_override_config_enum eab_override_config ; /* __MTC_SUPPORT__ */
+ rat_enum rat; /* __MTC_SUPPORT__ */
+ pdn_request_type_enum request_type ;
+ req_processing_info_struct req_processing_info;
+} smreg_pdp_activate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ smreg_pdp_activate_req_struct trace;
+} sm_trace_smreg_pdp_activate_req_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ ps_cause_enum cause; /* Cause of deactivation*/
+ teardown_enum tear_ind; /* This field indicates whether to deactivate all the associated context or only one for which request has come*/
+ #ifdef __LOCAL_DEACTIVATE_PDP_SUPPORT__
+ kal_bool local_deactivate_pdp; /* __LOCAL_DEACTIVATE_PDP_SUPPORT__ */
+ #endif // ~ __LOCAL_DEACTIVATE_PDP_SUPPORT__
+ req_processing_info_struct req_processing_info;
+} smreg_pdp_deactivate_req_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+
+ initiated_enum initiated_by; /* This field will tell that the request has come for a NW initiated context or for MS initiated*/
+ kal_uint8 token_id; /* This field is used in case the requestis sent for a NW initiated context.*/
+
+ qos_struct qos_requested; /* QoS requested by the user*/
+ qos_struct qos_minimum; /* Minimum QoS required by the User*/
+ tft_info_struct tft; /* This field gives the TFT parameters*/
+ kal_uint8 linked_nsapi; /* The nsapi value of the associated primary context*/
+ kal_uint8 p_comp_algo; /* Protocol Compression Algorithm. Used only for GPRS*/
+ kal_uint8 d_comp_algo; /* Data Comprssion Algorithm. Used only for UMTS*/
+ kal_uint8 config_protocol;
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+ pdp_auxinfo_struct aux_info; //erica 20070112
+ tcm_qos_mode_enum qos_mode ; /* __MEDIATEK_SMART_QOS__ */
+
+ nas_priority_config_enum nas_priority_config ; /* __MTC_SUPPORT__ */
+ eab_override_config_enum eab_override_config ; /* __MTC_SUPPORT__ */
+ rat_enum rat; /* __MTC_SUPPORT__ */
+ req_processing_info_struct req_processing_info;
+} smreg_pdp_activate_sec_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ smreg_pdp_activate_sec_req_struct trace;
+} sm_trace_smreg_pdp_activate_sec_req_struct;
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+ kal_bool qos_mod_present; // this is an optional IE in MODIFY PDP CONTEXT REQUEST (MS to Network direction)
+ qos_struct qos_mod; /* New QoS Requested*/
+ kal_bool qos_min_present;
+ qos_struct min_qos; /* minimum QoS */ //__3G_QOS__
+ kal_bool tft_present; // this is an optional IE in MODIFY PDP CONTEXT REQUEST (MS to Network direction)
+ tft_info_struct tft; /* New TFT Parameters*/
+ //context_mod_type_enum mod_type; /* The type od modification initiated by user.*/
+ tcm_qos_mode_enum qos_mode ;
+ kal_uint8 config_protocol; // new, need to consider BCM:MS/NW ?
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ nas_priority_config_enum nas_priority_config ; /* __MTC_SUPPORT__ */
+ eab_override_config_enum eab_override_config ; /* __MTC_SUPPORT__ */
+ rat_enum rat; /* __MTC_SUPPORT__ */
+ req_processing_info_struct req_processing_info;
+} smreg_pdp_modify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ps_cause_enum cause; /* Cause of rejection*/
+ kal_uint8 token_id; /* Context Indentifier*/
+ pdp_addr_type_enum pdp_addr_type; /* PDP Address Type, can be IPV4, IPV6, PPP*/
+ pdp_addr_len_enum pdp_addr_len; /* Length of PDP Address field*/
+ kal_uint8 apn_len; /* Length of Access Point Name Parameter*/
+ kal_uint8 pdp_addr[MAXIMUM_POSSIBLE_ADDR_LEN];
+ kal_uint8 access_name[100];
+} smreg_pdp_activate_rej_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ps_cause_enum cause; /* Cause of rejection*/
+ kal_uint8 token_id; /* Context Indentifier*/
+} smreg_pdp_activate_sec_rej_rsp_struct;
+
+
+typedef struct {
+ NSAPI_STRUCT_HDR // LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+} smreg_allow_dl_packet_ind_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4/tcm_pam_struct.h b/mcu/protocol/interface/l4/tcm_pam_struct.h
new file mode 100644
index 0000000..8f500c2
--- /dev/null
+++ b/mcu/protocol/interface/l4/tcm_pam_struct.h
@@ -0,0 +1,330 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+
+#ifndef TCM_PAM_STRUCT_H
+#define TCM_PAM_STRUCT_H
+
+#include "kal_public_api.h"
+#include "ps_public_enum_public.h"
+#include "l3_inc_local.h"
+#include "tcm2sm_struct.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+#include "vgsm_common_def_public.h"
+#include "tftlib_common_struct.h"
+/********************************************
+ * MACROS *
+ ********************************************/
+
+/********************************************
+ * TYPE DEFINITIONS & ENUMS *
+ ********************************************/
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_EST_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+ kal_bool is_pdu_session_type_present;
+ pdp_addr_type_enum pdu_session_type;
+
+ kal_bool is_ssc_mode_present;
+ kal_uint8 ssc_mode;
+
+ kal_bool is_s_nssai_present;
+ pdus_s_nssai_struct s_nssai;
+
+ kal_bool is_dnn_present;
+ apn_struct dnn;
+
+ pdn_request_type_enum request_type; // @ ESTABLISHMENT REQUEST
+ pdus_access_type_enum access_type;
+ kal_bool rqos_support; // @ ESTABLISHMENT REQUEST (default: N)
+ kal_bool mh6_support; // @ ESTABLISHMENT REQUEST (default: N)
+
+ kal_bool is_always_on_pdu_session_req_present;
+ always_on_pdu_session_req_enum always_on_pdu_session_req;
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ kal_bool is_old_psi_present;
+ kal_uint8 old_psi;
+
+ tcm_im_cn_signalling_enum user_defined_im_cn_signalling_flag;
+ req_processing_info_struct req_processing_info;
+
+ kal_bool is_ladn_dnn;
+} tcm_pam_pdu_session_est_req_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_EST_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+ pdp_addr_type_enum selected_pdu_session_type;
+ kal_uint8 selected_ssc_mode;
+ kal_bool is_dnn_present;
+ apn_struct dnn;
+
+ //tft_info_struct rules_per_qos_flow[VGSM_MAX_QFI_NUM]; // remove after tftlib is ready for 5G
+
+ pdus_session_ambr_struct session_ambr;
+
+ ps_cause_enum cause;
+
+ kal_bool is_pdu_address_present;
+ ip_addr_struct pdu_address;
+
+ /** rq_timer_value_in_sec:
+ * If UE sent RqoS supported in capability IE, but NW did not provide it -> return default value (60s)
+ * If UE sent RqoS not supported in capability IE,
+ * - and NW did not provide it -> return timer deactivated (0xFFFF)
+ * - but NW provided it -> return timer deactivated (0xFFFF)
+ */
+ kal_uint32 rq_timer_value_in_sec;
+
+ kal_bool is_s_nssai_present;
+ pdus_s_nssai_struct s_nssai;
+
+ kal_bool is_always_on_pdu_session_ind_present;
+ always_on_pdu_session_ind_enum always_on_pdu_session_ind;
+
+ // change to a standalone IND?
+ //kal_bool is_mapped_eps_bearer_contexts_present;
+ //pdus_mapped_epsb_context_struct mapped_eps_bearer_contexts;
+
+ kal_bool is_eap_message_present;
+ pdus_eap_message_struct eap_message;
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ pkt_filters_act_list_node_struct *pf_action_list_node;
+
+ kal_uint8 qfi_with_default_rule;
+ qos_params_struct *qos_profiles[VGSM_MAX_QFI_NUM]; /* all qos profiles under PDU session */
+ qos_flow_action_table_struct qf_action_table;
+
+ pdus_access_type_enum access_type;
+} tcm_pam_pdu_session_est_cnf_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_EST_REJ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+ ps_cause_enum cause;
+
+ kal_bool is_backoff_timer_value_present;
+ kal_uint32 backoff_timer_value_in_sec; // 0xFFFF = timer deactivated
+
+ kal_bool is_allowed_ssc_mode_present;
+ kal_uint8 allowed_ssc_mode;
+
+ kal_bool is_eap_message_present;
+ pdus_eap_message_struct eap_message;
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ kal_bool is_re_attempt_indicator_present;
+ kal_uint8 re_attempt_indicator;
+
+ kal_bool is_vgsm_congestion_reattempt_ind_present;
+ vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind;
+} tcm_pam_pdu_session_est_rej_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_MOD_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+
+ // SM capability (currently used in iRAT case)
+ kal_bool rqos_support; /* TCM always brings it to VGSM */
+ kal_bool mh6_support; /* TCM always brings it to VGSM */
+
+ kal_bool is_cause_present; /* used by VGSM */
+ ps_cause_enum cause; /* used by VGSM */
+
+ kal_bool is_always_on_pdu_session_req_present; /* TCM always brings it to VGSM */
+ always_on_pdu_session_req_enum always_on_pdu_session_req;
+
+ kal_bool is_requested_qos_rules_present;
+ qrs_raw_struct requested_qos_rules;
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ /** if operation code of qos_flow_description VGSM decided is "modify existing QoS flow description"
+ * VGSM should set E bit = 1 (parameters list replacement)
+ * and VGSM should bring all parameters to NW (include NW provided previoulsy, and user(upper layer) given)
+ * if operation code of qos_flow_description VGSM decided is "create new qos flow description"
+ * VGSM bring user(upper layer) given parameters to NW
+ */
+ qos_flow_descriptions_struct requested_qf_descriptions;
+
+ req_processing_info_struct req_processing_info;
+
+ /* VGSM use only */
+ kal_bool need_to_update_capability_to_nw;
+ kal_uint16 to_delete_mapped_epsb_ebi_bitmap;
+ kal_uint16 vgsm_init_mod_reason_bitmap;
+} tcm_pam_pdu_session_mod_req_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_MOD_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+ ps_cause_enum cause;
+ pdus_session_ambr_struct session_ambr;
+
+ /** rq_timer_value_in_sec:
+ * If UE sent RqoS supported in capability IE, but NW did not provide it -> return default value (60s)
+ * If UE sent RqoS not supported in capability IE,
+ * - and NW did not provide it -> return timer deactivated (0xFFFF)
+ * - but NW provided it -> return timer deactivated (0xFFFF)
+ */
+ kal_uint32 rq_timer_value_in_sec;
+
+ kal_bool is_always_on_pdu_session_ind_present;
+ always_on_pdu_session_ind_enum always_on_pdu_session_ind;
+
+
+ // change to a standalone IND?
+ //kal_bool is_mapped_eps_bearer_contexts_present;
+ //pdus_mapped_epsb_context_struct mapped_eps_bearer_contexts;
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ pkt_filters_act_list_node_struct *pf_action_list_node;
+
+ kal_uint8 qfi_with_default_rule;
+ qos_params_struct *qos_profiles[VGSM_MAX_QFI_NUM]; /* all qos profiles under PDU session */
+ qos_flow_action_table_struct qf_action_table;
+
+} tcm_pam_pdu_session_mod_ind_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_MOD_CNF */
+typedef tcm_pam_pdu_session_mod_ind_struct tcm_pam_pdu_session_mod_cnf_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_MOD_REJ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+ ps_cause_enum cause;
+
+ kal_bool is_backoff_timer_value_present;
+ kal_uint32 backoff_timer_value_in_sec;
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ kal_bool is_re_attempt_indicator_present;
+ kal_uint8 re_attempt_indicator;
+
+ kal_bool is_vgsm_congestion_reattempt_ind_present;
+ vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind;
+} tcm_pam_pdu_session_mod_rej_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_REL_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+
+ rel_req_behavior_enum rel_behavior;
+
+ kal_bool is_cause_present; /* used by VGSM */
+ ps_cause_enum cause; /* used by VGSM */
+
+ tcm_pdp_deact_reason_enum rel_reason; /* used by PAM for VzW SA DR requirement*/
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ req_processing_info_struct req_processing_info;
+} tcm_pam_pdu_session_rel_req_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_REL_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+ ps_cause_enum cause;
+
+ kal_bool is_backoff_timer_value_present;
+ kal_uint32 backoff_timer_value_in_sec;
+
+ kal_bool is_eap_message_present;
+ pdus_eap_message_struct eap_message;
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+
+ kal_bool is_vgsm_congestion_reattempt_ind_present;
+ vgsm_congestion_reattempt_ind_struct vgsm_congestion_reattempt_ind;
+} tcm_pam_pdu_session_rel_ind_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_REL_CNF */
+typedef tcm_pam_pdu_session_rel_ind_struct tcm_pam_pdu_session_rel_cnf_struct;
+
+/* MSG_ID_TCM_PAM_PDU_SESSION_REL_REJ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 psi;
+ ps_cause_enum cause;
+
+ kal_uint8 epco_num;
+ config_option_struct epco[MAX_NUM_CONFIG_OPTION_PACKETS];
+} tcm_pam_pdu_session_rel_rej_struct;
+
+/* MSG_ID_TCM_PAM_4G5_CONTEXT_TRANSFERRED_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 num_of_pdus_info;
+ context_transfer_pdus_info_struct *pdus_info[MAX_NUM_OF_SUPPORTED_PDUS];
+
+ kal_uint8 num_of_map_info;
+ ebi_map_to_psi_info_struct map_info[MAX_L4_PS_EBI_NUM];
+} tcm_pam_4g5_context_transferred_ind_struct;
+
+
+/********************************************
+ * VARIABLES *
+ ********************************************/
+
+/********************************************
+ * FUNCTION DECLARATIONS *
+ ********************************************/
+
+#endif /* TCM_PAM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/tcm_ratdm_struct.h b/mcu/protocol/interface/l4/tcm_ratdm_struct.h
new file mode 100644
index 0000000..03081f0
--- /dev/null
+++ b/mcu/protocol/interface/l4/tcm_ratdm_struct.h
@@ -0,0 +1,162 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * tcm_ratdm_struct.h
+ *
+ * Project:
+ * --------
+ * MONZA
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * -------
+ * $Log$
+ *
+ * 02 16 2017 nehal.kumar
+ * MOLY00175408 Porting to UMOLYA(MPS -RSIM Interface Porting ) Original CL #2650839 EXCEPT UPCM Changes
+ *
+ * 01 24 2013 poying.chuang
+ * [MOLY00009298] [TCM][UGTCM] Merge from JEFF_CBR to MOLY
+ * TCM: Merge from JEFF_CBR to MOLY (non-TCM files) .
+ *
+ * 12 07 2012 andrew.wu
+ * [MOLY00007098] LOCAL_PARA_HDR/PEER_BUF_HDR modification
+ * LOCAL_PARA_HDR/PEER_BUF_HDR modification
+ *
+ * 08 07 2012 andrew.wu
+ * [MOLY00001588] [MT6575_ADAPT][LTE-BTR-1-7302] Bad audio qualilty in 12.2Kbps Uplink
+ * [uas]URLC TM queue switchable modification
+ *
+ * 05 04 2012 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ * 04 24 2012 wcpuser_integrator
+ * removed!
+ * .
+ *
+ * 04 02 2012 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ * 01 30 2012 poying.chuang
+ * removed!
+ * .
+ *
+ * 01 11 2012 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ * 01 11 2012 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ * 12 24 2010 max.yin
+ * removed!
+ * .
+ *
+ * 12 22 2010 max.yin
+ * removed!
+ * .
+ *
+ * 12 14 2010 max.yin
+ * removed!
+ * .
+ *
+ * 10 18 2010 max.yin
+ * removed!
+ * .
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ ******************************************************************************/
+
+#ifndef TCM_RATDM_STRUCT_H
+#define TCM_RATDM_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ps_public_enum.h"
+
+/* __HSDPA_SUPPORT__ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 no_of_nsapis;
+ kal_uint8 nsapi_list[11];
+ data_speed_activate_enum capability[11];
+} tcm_ratdm_ps_bearer_capability_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_main_ps;
+} tcm_ratdm_data_allow_req_struct;
+
+#endif /* TCM_RATDM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/uem_peer.h b/mcu/protocol/interface/l4/uem_peer.h
new file mode 100644
index 0000000..d0ceb9b
--- /dev/null
+++ b/mcu/protocol/interface/l4/uem_peer.h
@@ -0,0 +1,104 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * uem_peer.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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.
+*
+********************************************************************************/
+
+
+
+#ifndef _UEM_PEER_H_
+#define _UEM_PEER_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef TEST_TOOL
+#include "tt_defs.h"
+#else
+#include "kal_public_api.h" //MSBB change #include "kal_release.h"
+#endif
+
+#include "uem_peer_struct.h"
+#include "uem_peer_pun.h"
+
+#ifdef TOOL
+#include "set_uem_peer.h"
+#include "get_uem_peer.h"
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/mcu/protocol/interface/l4/usm_utility_public.h b/mcu/protocol/interface/l4/usm_utility_public.h
new file mode 100644
index 0000000..f10c709
--- /dev/null
+++ b/mcu/protocol/interface/l4/usm_utility_public.h
@@ -0,0 +1,77 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * USM_UTILITY_PUBLIC.H
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _USM_UTILITY_PUBLIC_H
+#define _USM_UTILITY_PUBLIC_H
+
+/* struct */
+#include "kal_public_defs.h"
+
+kal_bool usm_support_etft(void) ;
+kal_bool usm_support_nrspca(void) ;
+
+void usm_set_support_nrspca(kal_bool turn_on_nrspca);
+
+#endif /* _USM_UTILITY_PUBLIC_H */
diff --git a/mcu/protocol/interface/l4/vdm_l4c_struct.h b/mcu/protocol/interface/l4/vdm_l4c_struct.h
new file mode 100644
index 0000000..9403006
--- /dev/null
+++ b/mcu/protocol/interface/l4/vdm_l4c_struct.h
@@ -0,0 +1,661 @@
+/*****************************************************************************
+* 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:
+* ------------
+* vdm_l4c_struct.h
+*
+* Project:
+* ------------
+* MOLY
+*
+* Description:
+* ------------
+* This file is intends for L4C/VDM interface
+*
+* Author:
+* -----------
+ * -------
+*****************************************************************************/
+
+#ifndef _VDM_L4C_STRUCT_H
+#define _VDM_L4C_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "l3_inc_enums_public.h"
+#include "ps_public_enum.h"
+#include "rmmi_common_enum.h"
+#include "l4_vdm_enum.h"
+#include "sim_public_enum.h"
+#include "l4b_vdm_struct.h"
+#include "ims_common_def.h"
+#include "ims_interface_md.h"
+#include "l3_inc_enums.h"
+#include "c2k_irat_msg_struct.h"
+#include "sim_ps_struct.h"
+#include "vdm_atp_struct.h"
+#include "rac_vgmm_struct.h"
+#include "as_inter_core_enum.h"
+#include "rac2l4c_struct.h"
+
+//copy from l4c_eval_ims_sys_info_ind_struct
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_valid;
+ kal_bool is_emc_attach_supported;
+ kal_bool is_emc_call_barred;
+ kal_uint32 cell_id;
+ kal_uint8 ta_code[2];
+ kal_uint8 barring_factor_voice;/*0~16*/
+ kal_uint8 barring_factor_video;/*0~16*/
+ kal_uint8 barring_time_voice; /*0~8*/
+ plmn_id_struct plmn_id;
+ kal_uint16 band;
+ kal_uint8 barring_time_video; /*0~8*/
+ kal_uint8 barring_factor_mo_data;/*0~16,16 means factor=1*/
+ kal_uint8 barring_time_mo_data; /*0~8, 0 means time=0*/
+ kal_uint8 acbar_special_ac_mo_data;/*LSB 5 Bits =>AC11~AC15*/
+ kal_uint8 barring_factor_mo_signal;/*0~16,16 means factor=1*/
+ kal_uint8 barring_time_mo_signal; /*0~8, 0 means time=0*/
+ kal_uint8 acbar_special_ac_mo_signal;/*LSB 5 Bits =>AC11~AC15*/
+/* bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1
+acbar special ac 0 0 0 AC11 AC12 AC13 AC14 AC15
+*/
+ kal_bool is_acb_skip_for_mmtel_voice;
+ kal_bool is_acb_skip_for_mmtel_video;
+ kal_bool is_acb_skip_for_sms;
+} vdm_l4c_ims_sys_info_ind_struct;
+
+/* Common response from L4C to VDM */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_result_code_enum result;
+ l4_err_id_enum error_cause;
+} vdm_l4c_common_response_struct;
+
+/* MSG_ID_VDM_L4C_FDN_ECC_CHECK_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ADDR_LEN];
+} vdm_l4c_fdn_ecc_check_req_struct;
+
+/* MSG_ID_VDM_L4C_FDN_ECC_CHECK_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_allowed;
+ kal_bool is_emergency;
+ kal_uint16 emergency_service_category;
+} vdm_l4c_fdn_ecc_check_cnf_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_MO_CALL_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ADDR_LEN];
+ kal_uint8 call_id;
+ kal_bool is_emergency_call;
+ kal_bool is_video_call;
+ kal_uint8 ecc_service_category;
+} vdm_l4c_cs_cc_mo_call_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_MO_CALL_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_cs_cc_mo_call_cnf_struct;
+
+/*MSG_ID_VDM_L4C_CS_CC_EMERG_SERV_CAT_REQ*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 emergency_service_category;
+} vdm_l4c_cs_cc_emerg_serv_cat_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_EMERG_SERV_CAT_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_cs_cc_emerg_serv_cat_cnf_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_LIST_CURRENT_CALLS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_clccs;
+}vdm_l4c_cs_cc_list_current_calls_req_struct;
+
+typedef struct {
+ kal_uint8 call_id;
+ l4_call_dir_enum dir;
+ l4_call_state_enum call_state;
+ l4_call_mode_enum call_mode;
+ kal_bool mpty; // FALSE: is NOT conference call, TRUE: is conference call
+ l4_call_type_enum call_type;
+ l4_call_number_type_enum number_type;
+ kal_uint8 number[MAX_SIP_URI_LEN];
+ kal_bool cli_present;
+ kal_uint8 cli_validity;
+} vdm_l4c_call_list_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 total_call;
+ kal_bool is_clccs;
+ vdm_l4c_call_list_struct call_list[L4CC_MAX_CALL_NUM];
+} vdm_l4c_cs_cc_list_current_calls_cnf_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_EXT_ERROR_REPORT_REQ */ // AT+CEER (no struct)
+typedef struct
+{
+ LOCAL_PARA_HDR
+}vdm_l4c_cs_cc_ext_error_report_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_EXT_ERROR_REPORT_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_ext_error_report_enum ceer_cause;
+ l4_result_code_enum result;
+ l4_err_id_enum err_id;
+ kal_uint16 ecc_category;
+} vdm_l4c_cs_cc_ext_error_report_cnf_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_SEND_DIGIT_REQ */ //AT+VTS
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 digit;
+ l4_dtmf_action_enum action;
+} vdm_l4c_cs_cc_send_digit_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_SEND_DIGIT_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_result_code_enum result;
+ l4_err_id_enum error_cause;
+ l4_dtmf_action_enum action;
+} vdm_l4c_cs_cc_send_digit_cnf_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_HANGUP_ALL_REQ */ // ATH (no struct)
+typedef struct
+{
+ LOCAL_PARA_HDR
+}vdm_l4c_cs_cc_hangup_all_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_HANGUP_ALL_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_cs_cc_hangup_all_cnf_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_FORCE_HANGUP_REQ */ // AT+ECHUP
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+} vdm_l4c_cs_cc_force_hangup_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_FORCE_HANGUP_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_cs_cc_force_hangup_cnf_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_MT_CALL_PRESENT_RSP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 seq_no;
+ l4_cc_eaic_result_enum eaic_result;
+ kal_uint16 reject_cause;
+} vdm_l4c_cs_cc_mt_call_present_rsp_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_MT_CALL_ACCEPT_REQ_STRUCT */
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_l4c_cs_cc_mt_call_accept_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_MT_CALL_ACCEPT_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_cs_cc_mt_call_accept_cnf_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_CALL_RELATED_SS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ l4_call_related_ss_type_enum opcode;
+} vdm_l4c_cs_cc_call_related_ss_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_CALL_RELATED_SS_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_cs_cc_call_related_ss_cnf_struct;
+
+typedef struct {
+ kal_uint8 number[MAX_CC_ADDR_LEN];
+ l4_call_type_enum call_type;
+ l4_call_mode_enum call_mode;
+ kal_uint8 redirect_num[MAX_CC_ADDR_LEN];
+} l4c_cc_eaic_info_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_MT_CALL_PRESENT_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ l4c_cc_eaic_info_struct eaic_info;
+ kal_uint8 seq_no;
+} vdm_l4c_cs_cc_mt_call_present_ind_struct;
+
+typedef struct
+{
+ /* +ECPI:<call_id>,<msg_type>,<is_ibt>,<is_tch>,<dir>,
+ * <call_mode>,[<number>,<type>],[<disc_cause>],[<pau>]
+ */
+ kal_bool is_ibt;
+ kal_bool is_tch;
+ l4_call_dir_enum call_dir;
+ l4_call_mode_enum call_mode;
+ kal_bool is_number_call_type_present;
+ kal_uint8 number[MAX_CC_ADDR_LEN];
+ l4_call_type_enum call_type;
+ kal_bool is_disc_cause_present;
+ kal_uint16 disc_cause;
+} l4c_ecpi_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ecpi_type;
+ l4c_ecpi_info_struct ecpi_info;
+} vdm_l4c_common_cs_cc_ecpi_ind_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_ECPI_TRANSLATE_IND */
+typedef vdm_l4c_common_cs_cc_ecpi_ind_struct vdm_l4c_cs_cc_ecpi_translate_ind_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_MT_CALL_SETUP_IND */
+typedef vdm_l4c_common_cs_cc_ecpi_ind_struct vdm_l4c_cs_cc_mt_call_setup_ind_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_CALL_DISCONNECT_IND */
+typedef vdm_l4c_common_cs_cc_ecpi_ind_struct vdm_l4c_cs_cc_call_disconnect_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ sat_terminal_res_enum terminal_res;
+ kal_uint8 additional_res;
+} vdm_l4c_cs_cc_stk_tr_info_ind_struct;
+
+typedef struct
+{
+ kal_uint8 sat_call_type;
+ kal_uint8 no_addr;
+ kal_uint8 addr[MAX_CC_ADDR_BCD_LEN];
+ kal_uint8 no_sub_addr;
+ kal_uint8 sub_addr[MAX_CC_SUB_ADDR_BCD_LEN];
+ kal_uint8 no_ccp;
+ kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+ kal_uint8 type_of_modification;
+} vdm_l4c_sat_call_setup_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_STK_CALL_REQ*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_bool l4c_retry;
+ sat_terminal_res_enum tr;
+ vdm_l4c_sat_call_setup_req_struct sat_setup_call_req;
+} vdm_l4c_cs_cc_stk_call_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_STK_CALL_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_cs_cc_stk_call_cnf_struct;
+
+/* MSG_ID_VDM_L4C_SAT_SETUP_CALL_IND */
+typedef sat_setup_call_ind_struct vdm_l4c_sat_setup_call_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 bfvoice;
+ kal_uint8 bfvideo;
+ kal_uint8 btvoice;
+ kal_uint8 btvideo;
+} vdm_l4c_get_ssac_param_cnf_struct;
+
+typedef struct
+{
+ kal_uint8 call_id; /* call_id_ims = call_id_ap */
+ ims_srvcc_call_mode_enum call_mode;
+ ims_srvcc_call_direction_enum call_direction;
+ ims_srvcc_call_state_enum call_state;
+ ims_srvcc_call_ecc_category_enum call_ecc_category;
+ ims_srvcc_call_number_format_enum call_number_format;
+ kal_uint8 call_number[IMC_MAX_URI_LENGTH];
+#if defined(__TC01_IMS_SUPPORT__) || defined(__IPC_ADAPTER__)
+ //these two parameter is defined by L4 but seems not used by IMS CC, so we wrap it with compile option
+ kal_uint8 call_alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
+ kal_uint8 cli;
+ //just for TK compatible, not sure how to use this in TC01 project
+ kal_uint8 num_of_conf_parts;
+#endif
+} vdm_l4c_srvcc_call_ctxt_to_cs_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 num_call;
+ vdm_l4c_srvcc_call_ctxt_to_cs_struct srvcc_call_ctxt_to_cs_domain[L4CC_MAX_CALL_NUM];
+} vdm_l4c_srvcc_context_transfer_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 num_of_call_instances;
+ kal_uint32 call_id_table[L4CC_MAX_CALL_NUM];
+} vdm_l4c_srvcc_context_transfer_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum active_rat;
+ union
+ {
+ vgmm_nw_feature_support_struct nr;
+ emm_nw_feature_support_struct eps;
+ gmm_nw_feature_support_struct ug;
+ } nw_feature;
+} vdm_l4c_nw_feature_ind_struct;
+
+/******************************************************************************
+ * +CIREPH: <srvcch>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ srvcc_status_enum status;
+} vdm_l4c_srvcc_status_update_ind_struct;
+
+/******************************************************************************
+ * +ENW: <is_searching>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_searching;
+} vdm_l4c_nw_search_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ue_mode_enum ue_mode;
+ l4_voice_domain_preference_enum eutran_vdp;
+} vdm_l4c_uemode_param_update_ind_struct;
+
+/******************************************************************************
+ * +EC2KREG: <domain>,<state>,<service>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ domain_id_enum domain;
+ kal_bool state;
+ irat_ps_type_enum service;
+} vdm_l4c_c2k_service_state_ind_struct;
+
+/******************************************************************************
+ * +EIMSPS: rat,type[,cause]
+ * indication for silent redial event from AP to MD
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint8 type;// bitmask, 0x01 for Voice , 0x02 for SMS
+ hvolte_mode_change_cause_enum cause;
+} vdm_l4c_ims_domain_preference_ind_struct;
+
+/******************************************************************************
+ * +ERAT: <rat>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+} vdm_l4c_rat_mode_ind_struct;
+
+/******************************************************************************
+ * +EIRAT: <rat>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_irat_status_enum irat_status;
+ kal_bool irat_result;
+} vdm_l4c_inter_rat_status_ind_struct;
+
+/******************************************************************************
+ * +ERLQ:<Event>, <Band>
+ * Event: 4G radio link monitor event type
+ * 0 - LTE weak signal
+ * 1 - LTE OOS searching
+ * Band: current 4G band
+ * 0 - Invalid band value (used for LTE OOS search)
+ * 1-256: possible LTE band value range
+ * only care about Event
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 event_type;
+} vdm_l4c_radio_link_quality_ind_struct;
+
+/******************************************************************************
+ * +ERPRAT: 9,<new_reported_rat>,<is_home>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum new_reported_rat;
+ kal_bool is_home;
+} vdm_l4c_reported_rat_change_ind_struct;
+
+/*
+ **AT+EVVS**
+ call_status_enum vdm_voice_status;
+ kal_bool is_emergency;
+
+ **AT+EVIVS**
+ vdm_ims_voice_status_enum vdm_ims_voice_status;
+ ims_access_rat_enum rat;
+
+ **AT+EIMSCI**
+ kal_bool voice_over_ims_ongoing;
+ kal_bool is_emergency;
+ ims_access_rat_enum ims_access_rat;
+
+ ***AT+CSCM**
+ ims_scm_info_type_enum application;
+ ims_scm_info_action_enum indication;
+*/
+
+/*MSG_ID_VDM_L4C_IMS_CALL_SCM_REQ*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_scm_info_type_enum application;
+ ims_scm_info_action_enum indication;
+} vdm_l4c_ims_call_scm_req_struct;
+
+/*MSG_ID_VDM_L4C_NR_IMS_CALL_STATUS_REQ*/
+typedef rac_vgmm_ims_service_status_req_struct vdm_l4c_nr_ims_call_status_req_struct;
+
+/*MSG_ID_VDM_L4C_UAC_PARAM_CHECK_ABORT_REQ*/
+typedef rac_vgmm_ims_uac_abort_req_struct vdm_l4c_uac_param_check_abort_req_struct;
+/*MSG_ID_VDM_L4C_UAC_PARAM_CHECK_REQ*/
+typedef rac_vgmm_ims_uac_req_struct vdm_l4c_uac_param_check_req_struct;
+/* MSG_ID_VDM_L4C_UAC_PARAM_CHECK_CNF */
+typedef rac_vgmm_ims_uac_cnf_struct vdm_l4c_uac_param_check_cnf_struct;
+/* MSG_ID_VDM_L4C_UAC_ALLEVIATION_IND */
+typedef rac_vgmm_ims_uac_alleviation_ind_struct vdm_l4c_uac_alleviation_ind_struct;
+
+/*MSG_ID_VDM_L4C_EMERGENCY_SERVICE_REQ*/
+typedef rac_vgmm_emergency_service_req_struct vdm_l4c_emergency_service_req_struct;
+/* MSG_ID_VDM_L4C_EMERGENCY_SERVICE_CNF */
+typedef rac_vgmm_emergency_service_cnf_struct vdm_l4c_emergency_service_cnf_struct;
+/* MSG_ID_VDM_L4C_EMERGENCY_SERVICE_IND */
+typedef rac_vgmm_emergency_service_ind_struct vdm_l4c_emergency_service_ind_struct;
+/*MSG_ID_VDM_L4C_EMERGENCY_SERVICE_FALLBACK_REQ*/
+typedef rac_vgmm_emergency_service_fallback_req_struct vdm_l4c_emergency_service_fallback_req_struct;
+/* MSG_ID_VDM_L4C_EMERGENCY_SERVICE_FALLBACK_CNF */
+typedef rac_vgmm_emergency_service_fallback_cnf_struct vdm_l4c_emergency_service_fallback_cnf_struct;
+
+/*MSG_ID_VDM_L4C_REG_COMBINED_CAUSE_IND*/
+typedef l4crac_reg_combined_cause_ind_struct vdm_l4c_reg_combined_cause_ind_struct;
+
+/*MSG_ID_VDM_L4C_ECBM_MODE_IND*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_ecbm_on;
+ rat_enum ecbm_rat;
+} vdm_l4c_ecbm_mode_ind_struct;
+
+/*MSG_ID_VDM_L4C_IMS_CALL_PROGRESS_REQ*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ ims_cc_eaic_info_struct eaic_info;
+ ims_call_dir_enum dir;
+ csmcc_cpi_msg_type_enum msg_type;
+ kal_bool is_far_end;
+ ims_disc_cause_enum disc_cause;
+} vdm_l4c_ims_call_progress_req_struct;
+
+/*MSG_ID_VDM_L4C_GMSS_SET_HVOLTE_MODE_REQ*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ hvolte_mode_enum mode;
+ kal_uint8 submode;
+} vdm_l4c_gmss_set_hvolte_mode_req_struct;
+
+/* MSG_ID_VDM_L4C_GMSS_SET_HVOLTE_MODE_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_gmss_set_hvolte_mode_cnf_struct;
+
+/*MSG_ID_VDM_L4C_EMCS_REQ*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 ims_reg_state;
+ kal_bool is_airplane_mode_ecc;
+} vdm_l4c_emcs_req_struct;
+
+/*MSG_ID_VDM_L4C_ATTACHED_RAT_IND*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ nas_reg_status_enum nas_reg_status;
+ kal_bool is_for_ps_domain;
+ mm_cause_enum nas_reg_cause;
+} vdm_l4c_attached_rat_ind_struct;
+
+#if defined(__NG_ECALL_SUPPORT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ecall_type_enum ecall_type;
+} vdm_l4c_ecall_test_call_attach_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_result_code_enum result;
+ l4_err_id_enum err_id;
+} vdm_l4c_ecall_test_call_attach_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ecall_abort_attach_reason_enum reason;
+} vdm_l4c_ecall_abort_test_call_attach_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4_result_code_enum result;
+ l4_err_id_enum err_id;
+} vdm_l4c_ecall_abort_test_call_attach_cnf_struct;
+#endif
+
+/* MSG_ID_VDM_L4C_ERRC_CELL_REJ_IND */
+typedef struct
+{
+ kal_bool is_bar_pcell;
+ cell_rej_cause_enum cause; /* Rejected cause */
+ kal_uint16 timer_val; /* Period of timer for rejection unit:second */
+ kal_uint32 earfcn; /* earfcn/pci used to identify cell when is_bar_pcell is FALSE */
+ kal_uint16 pci;
+ kal_uint32 cell_id; /* cell_id used to identify cell when is_bar_pcell is TRUE */
+} vdm_l4c_errc_mob_cell_rej_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ vdm_l4c_errc_mob_cell_rej_info_struct rej_info;
+} vdm_l4c_errc_cell_rej_ind_struct;
+
+/*MSG_ID_VDM_L4C_IMS_CC_CALL_PROGRESS_IND*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 msg_type;
+ l4c_ecpi_info_struct ecpi_info;
+} vdm_l4c_ims_cc_call_progress_ind_struct;
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+/* MSG_ID_VDM_L4C_CS_CC_CECALL_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ ecall_type_enum ecall_type;
+ ecall_format_enum ecall_format;
+ kal_uint8 msd_data_len;
+ kal_uint8 msd_data[MAX_MSD_LENGTH];
+} vdm_l4c_cs_cc_cecall_req_struct;
+
+/* MSG_ID_VDM_L4C_CS_CC_CECALL_CNF */
+typedef vdm_l4c_common_response_struct vdm_l4c_cs_cc_cecall_cnf_struct;
+#endif
+#endif /* _VDM_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4/vdm_rac_struct.h b/mcu/protocol/interface/l4/vdm_rac_struct.h
new file mode 100644
index 0000000..2368f59
--- /dev/null
+++ b/mcu/protocol/interface/l4/vdm_rac_struct.h
@@ -0,0 +1,75 @@
+/*****************************************************************************
+* 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:
+* ------------
+* vdm_rac_struct.h
+*
+* Project:
+* ------------
+* MOLY
+*
+* Description:
+* ------------
+* This file is intends for RAC/VDM interface
+*
+* Author:
+* -----------
+ * -------
+*****************************************************************************/
+
+#ifndef _VDM_RAC_STRUCT_H
+#define _VDM_RAC_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+//#include "l3_inc_enums_public.h"
+#include "ps_public_enum.h"
+
+//MAG_ID_VDM_RAC_NW_FEATURE_IND
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool nr_vops_support_updated;
+ kal_bool nr_vops_support;
+
+ kal_bool emb_s1_support_updated;
+ kal_bool emb_s1_support;
+
+} vdm_rac_nw_feature_ind_struct;
+
+#endif /* _VDM_RAC_STRUCT_H */
+