[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/general/abm2l4c_struct.h b/mcu/interface/protocol/general/abm2l4c_struct.h
new file mode 100644
index 0000000..e27d30d
--- /dev/null
+++ b/mcu/interface/protocol/general/abm2l4c_struct.h
@@ -0,0 +1,357 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ABM2L4C_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of ABM and L4C.
+ *
+ * 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!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+#ifndef _ABM2L4C_STRUCT_H
+#define _ABM2L4C_STRUCT_H
+//#include "ps2sat_struct.h"
+#include "l4c2abm_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "custom_mmi_default_value.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "tcm_api.h"
+#include "ps_public_enum.h"
+
+#ifdef __SATCE__
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint8 msg_len;
+ 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;
+} abml4c_sate_set_gprs_account_info_req_struct;
+#endif /* __SATCE__ */
+
+// Packet filter content which is necessary for GGSN to enable packet classification and policing for downlink data transfer.
+typedef struct {
+ kal_uint8 pfi; // Packet filter identifier
+ kal_uint8 epi; // Packet filter evaluation precedence
+ kal_uint8 src_addr_sb_net_mask_len;
+ kal_uint8 src_addr_sb_net_mask[8]; // IPv4 address and subnet mask
+ kal_bool prot_number_present;
+ kal_uint8 prot_number_next_hdr; // Protocol identifier
+ kal_uint8 dst_port_len;
+ kal_uint16 dst_port_range[2]; // Destination port range
+ kal_uint8 src_port_len;
+ kal_uint16 src_port_range[2]; // Source port range
+ kal_bool ipsec_spi_present;
+ kal_uint32 ipsec_spi; // IPSec security parameter index
+ kal_uint8 tos_len;
+ kal_uint8 tos_traffic_class_mask[2]; // Type of Service and mask
+ kal_bool flow_label_present;
+ kal_uint32 flow_label; // IPv6 Flow label
+} l4c_gprs_pf_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 profile_id;
+ kal_uint8 profile_type;
+ l4c_gprs_account_info_struct gprs_account_info;
+ tcm_ps_qos_profile_struct qos_info; //mtk02285, 20110916
+#ifdef __SATCE__
+ abml4c_sate_set_gprs_account_info_req_struct sate_account_info;
+#endif /* __SATCE__ */
+ /* following are for __APP_SECONDARY_PDP_SUPPORT__ */
+ kal_uint8 qos_id; // QoS Profile ID
+ kal_uint8 gprs_pf_num; // Number of gprs_pf_info
+ l4c_gprs_pf_struct gprs_pf_info[8]; // Packet filter content
+} l4c_ps_abm_setup_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 profile_id;
+ /* following are for __APP_SECONDARY_PDP_SUPPORT__ */
+ kal_uint8 qos_id; // QoS Profile ID
+ kal_uint8 context_id;
+ kal_uint8 profile_type;
+} l4c_ps_abm_disc_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 context_id;
+ kal_bool is_qos_present; // indicates if QoS modification
+ nvram_editor_qos_struct modify_qos; // modifying QoS value
+ kal_uint8 tft_opcode; // tft_opcode_enum: the operation of TFT modification
+ kal_uint8 gprs_pf_num; // number of gprs_pf_info
+ l4c_gprs_pf_struct gprs_pf_info[8];// packet filter content
+} l4c_ps_abm_qos_tft_modify_req_struct;
+
+//MAUI_02395134
+typedef struct {
+ kal_uint8 authentication_type;
+ kal_uint8 user_name[32];
+ kal_uint8 password[32];
+ kal_uint8 dns[4];
+ kal_uint8 sec_dns[4];
+ kal_uint8 addr_str[41+1]; //MAX_CC_ADDR_LEN +1
+ kal_uint8 csd_ur;
+ kal_uint8 csd_type;
+ kal_uint8 csd_module;
+} l4c_csd_account_info_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 profile_type;
+ kal_uint8 csd_profile_id;
+ l4c_csd_account_info_struct csd_account_info;
+} l4c_cc_abm_setup_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 csd_profile_id;
+ kal_uint8 profile_type;
+} l4c_cc_abm_disc_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ kal_uint8 result;
+ kal_uint8 error_cause;
+} l4cabm_start_cnf_struct;
+
+typedef l4cabm_start_cnf_struct l4cabm_set_gprs_account_info_cnf_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ kal_uint8 result;
+ kal_uint8 error_cause;
+ l4c_gprs_account_info_struct gprs_account_info;
+} l4cabm_get_gprs_account_info_cnf_struct;
+
+#ifdef __UCM_SUPPORT__
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 prof_id;
+ kal_uint8 sim_info;
+} abm_l4c_get_csd_call_num_req_struct;
+#endif /* __UCM_SUPPORT__ */
+
+// Karen
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 profile_id;
+ kal_uint8 qos_id;
+ kal_uint8 context_id;
+} l4c_ps_abm_reactivate_req_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 connect_type;
+ kal_uint8 call_id;
+ kal_uint8 context_id;
+}l4c_abm_dialup_disc_req_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 serial_num;
+ kal_uint8 total_context_id;
+ kal_uint8 context_id[MAX_GPRS_DIALUP_NUM];
+}l4c_ps_abm_get_dialup_info_req_struct;
+
+typedef struct {
+ kal_uint8 context_id;
+ kal_bool reset_tx;
+ kal_bool reset_rx;
+} l4c_ps_dialup_info_reset_cmd_struct;
+
+typedef enum
+{
+ L4C_PS_ABM_DIALUP_RESET_TX_RX = 0,
+ L4C_PS_ABM_DIALUP_RESET_TX,
+ L4C_PS_ABM_DIALUP_RESET_RX,
+ L4C_PS_ABM_DIALUP_RESET_IN_DETAIL,
+ L4C_PS_ABM_DIALUP_RESET_INVALID
+} l4c_reset_dialup_cmd_enum;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 serial_num;
+ kal_uint8 total_reset_num;
+ l4c_reset_dialup_cmd_enum reset_cmd_type; //RESET_TX_RX, RESET_TX, RESET_RX, RESET_IN_DETAIL
+ l4c_ps_dialup_info_reset_cmd_struct reset_cmd[MAX_GPRS_DIALUP_NUM];
+}l4c_ps_abm_reset_dialup_info_req_struct;
+#endif /* ~_ABM2L4C_STRUCT_H */
+
+
diff --git a/mcu/interface/protocol/general/agps_md_interface.h b/mcu/interface/protocol/general/agps_md_interface.h
new file mode 100644
index 0000000..c144f31
--- /dev/null
+++ b/mcu/interface/protocol/general/agps_md_interface.h
@@ -0,0 +1,571 @@
+
+#ifndef __AGPS_MD_INTERFACE_H__
+#define __AGPS_MD_INTERFACE_H__
+
+#include "gps_common.h"
+
+//version history
+// 6 add PositionTect bitmap parameter in MOLR_BEGIN_REQ, add session_id in MTLR_BEGIN_IND and MTLR_BEGIN_RSP
+// 7 change version's type from short to int to avoid unaligned access
+// 8 add 4 Session IND messages
+// 9 extend requestor_id and client_name from 128 bytes to 160 bytes
+// 10 define LPP UP SWIP <-> LPP CP message ID (no struct definition, uses raw data)
+// 11 add AGPS_MD_TYPE_MTLR_BEGIN_2_IND and agps_md_mtlr_begin_2_ind struct
+// 12 add supporting eutran band list in sim_info_rsp
+// 13 add session_id in agps_md_auto_mtlr_response_ind struct
+// 13.2 add AGPS_MD_TYPE_SIM_INFO_IND for MD to report SIM_INFO when it is boot up complete, AP CCCI driver should keep the data sent from MD when AP/AGPS does not open CCCI yet
+// 13.3 add AGPS_MD_TYPE_LPP_PEER_OTDOA_RESET_UE_STORED_POS_REQ for SUPL LPP session to delete OTDOA data in MD side when A-GPS session is finished
+// 13.4 add AGPS_MD_TYPE_MDT_SUPL_DONE_RSP and AGPS_MD_GPS_OPEN_IND_TYPE_MDT for MDT session
+// 13.5 add AGPS_MD_TYPE_LOCATION_NTF to sync the latest location to MD side
+// 13.6 add support_lpp_otdoa_nbr_cell_list in agps_md_sim_info_rsp and agps_md_sim_info_ind for LPP inter-freq (only on LPP, no implementation on LBS)
+// 13.7 add supl flow indication
+// 13.8 add AGPS_MD_TYPE_CP_SERVICE_CONFIG_NTF to do CP on/off in runtime, this should be used in Titan's project only
+// 13.9 add CP service config in agps_md_sim_info_req struct
+// 13.10 add AGPS_MD_TYPE_MODEM_REBOOT_IND when LBS task is initiated or flight mode on/off
+// 13.11 add the huge data transfer
+// 13.12 add support_location_settings and AGPS_MD_TYPE_LOCATION_SETTINGS_NTF
+// 13.13 move agps_md_huge_data_type from huge_data_transfer.h to agps_md_interface.h
+// 13.14 re-name agps_md_huge_data_type to agps_md_huge_data_msg_id
+// 13.15 add reject_non911_nilr_enable for LGE VZW requirement
+// 13.16 add battery_percentage in agps_md_sim_info_req struct to sync the battery percentage per 5% to MD/LBS
+// 13.17 add support_ue_rx_tx_sup_tdd_r13 in agps_md_sim_info_rsp
+// 13.18 add NR positioning
+// 13.19 add location source in AGPS_MD_TYPE_LOCATION_NTF
+// 13.20 add support_md_time_sync and AGPS_MD_HUGE_DATA_TYPE_MD_TIME_XXX
+
+#define AGPS_MD_INTERFACE_VERSION 13
+#define MAX_AGPS_MD_BUFFER_SIZE 4096
+
+typedef int agps_md_reset_data;
+#define AGPS_MD_RESET_EPHEMERIS 0x0001
+#define AGPS_MD_RESET_ALMANAC 0x0002
+#define AGPS_MD_RESET_POSITION 0x0004
+#define AGPS_MD_RESET_TIME 0x0008
+#define AGPS_MD_RESET_IONO 0x0010
+#define AGPS_MD_RESET_UTC 0x0020
+#define AGPS_MD_RESET_HEALTH 0x0040
+#define AGPS_MD_RESET_SVDIR 0x0080
+#define AGPS_MD_RESET_SVSTEER 0x0100
+#define AGPS_MD_RESET_SADATA 0x0200
+#define AGPS_MD_RESET_RTI 0x0400
+#define AGPS_MD_RESET_CELLDB_INFO 0x8000
+#define AGPS_MD_RESET_ALL 0xFFFF
+
+typedef struct {
+ double latitude; //Represents latitude in degrees
+ double longitude; //Represents longitude in degrees
+ char altitude_used; //0=disabled 1=enabled
+ double altitude; //Represents altitude in meters above the WGS 84 reference
+ char speed_used; //0=disabled 1=enabled
+ float speed; //Represents speed in meters per second
+ char bearing_used; //0=disabled 1=enabled
+ float bearing; //Represents heading in degrees
+ char accuracy_used; //0=disabled 1=enabled
+ float accuracy; //Represents expected accuracy in meters
+ char timestamp_used; //0=disabled 1=enabled
+ long long timestamp; //Milliseconds since January 1, 1970
+} agps_md_gps_location;
+
+typedef enum {
+ //PMTK
+ AGPS_MD_TYPE_PMTK = 0,
+ //GPS control
+ AGPS_MD_TYPE_GPS_RESET_IND = 100,
+ AGPS_MD_TYPE_GPS_RESET_RSP,
+ AGPS_MD_TYPE_GPS_OPEN_IND,
+ AGPS_MD_TYPE_GPS_OPEN_RSP,
+ AGPS_MD_TYPE_GPS_CLOSE_IND,
+ AGPS_MD_TYPE_GPS_CLOSE_RSP,
+ AGPS_MD_TYPE_SESSION_ABORT_REQ,
+ AGPS_MD_TYPE_SESSION_ABORT_RSP,
+ AGPS_MD_TYPE_MDT_SUPL_DONE_RSP,
+ //MOLR
+ AGPS_MD_TYPE_MOLR_BEGIN_REQ = 200,
+ AGPS_MD_TYPE_MOLR_BEGIN_RSP,
+ //MTLR
+ AGPS_MD_TYPE_MTLR_BEGIN_IND = 300,
+ AGPS_MD_TYPE_MTLR_BEGIN_RSP,
+ AGPS_MD_TYPE_MTLR_BEGIN_2_IND,
+ //NBR
+ AGPS_MD_TYPE_NBR_CELL_INFO_REG_REQ = 400,
+ AGPS_MD_TYPE_NBR_CELL_INFO_REG_CNF,
+ AGPS_MD_TYPE_NBR_CELL_INFO_DEREG_REQ,
+ AGPS_MD_TYPE_NBR_CELL_INFO_DEREG_CNF,
+ AGPS_MD_TYPE_NBR_CELL_INFO_IND,
+ //Automation
+ AGPS_MD_TYPE_AUTO_TEST_IND = 500,
+ AGPS_MD_TYPE_AUTO_CP_UP_STATUS_IND,
+ AGPS_MD_TYPE_AUTO_MOLR_START_IND,
+ AGPS_MD_TYPE_AUTO_MOLR_STOP_IND,
+ AGPS_MD_TYPE_AUTO_MTLR_RESPONSE_IND, //not support by MTK AOSP AGPS
+ //SIM info query
+ AGPS_MD_TYPE_EMERGENCY_CALL_IND = 600,
+ AGPS_MD_TYPE_SIM_INFO_REQ,
+ AGPS_MD_TYPE_SIM_INFO_RSP,
+ AGPS_MD_TYPE_SERVICE_STATE_REQ,
+ AGPS_MD_TYPE_SERVICE_STATE_RSP,
+ AGPS_MD_TYPE_ROAMING_STATE_REQ,
+ AGPS_MD_TYPE_ROAMING_STATE_RSP,
+ AGPS_MD_TYPE_DATA_CONNECTION_STATE_REQ,
+ AGPS_MD_TYPE_DATA_CONNECTION_STATE_RSP,
+ AGPS_MD_TYPE_SIM_INFO_IND,
+ AGPS_MD_TYPE_EMERGENCY_TEXT_IND,
+ //Session IND
+ AGPS_MD_TYPE_SESSION_START_IND = 700,
+ AGPS_MD_TYPE_SESSION_END_IND,
+ AGPS_MD_TYPE_LTE_OTDOA_IND,
+ AGPS_MD_TYPE_LTE_ECID_IND,
+ //LPP UP SWIP to LPP CP (raw data)
+ AGPS_MD_TYPE_LPP_PEER_OTDOA_MEAS_REQ = 800,
+ AGPS_MD_TYPE_LPP_PEER_OTDOA_ASSIST_DATA_REQ,
+ AGPS_MD_TYPE_LPP_PEER_OTDOA_MEAS_ABORT_REQ,
+ AGPS_MD_TYPE_LPP_PEER_ECID_MEAS_REQ,
+ AGPS_MD_TYPE_LPP_PEER_ECID_MEAS_ABORT_REQ,
+ AGPS_MD_TYPE_LPP_PEER_EUTRAN_BAND_UPDATE_REQ,
+ AGPS_MD_TYPE_LPP_PEER_OTDOA_RESET_UE_STORED_POS_REQ,
+ //LPP CP to LPP UP SWIP (raw data)
+ AGPS_MD_TYPE_LPP_PEER_OTDOA_MEAS_CNF = 900,
+ AGPS_MD_TYPE_LPP_PEER_OTDOA_ASSIST_DATA_CNF,
+ AGPS_MD_TYPE_LPP_PEER_OTDOA_ADDITIONAL_ASSIST_DATA_REQ,
+ AGPS_MD_TYPE_LPP_PEER_ECID_MEAS_CNF,
+ AGPS_MD_TYPE_LPP_PEER_EUTRAN_BAND_UPDATE_CNF,
+ //AP -> MD notify information
+ AGPS_MD_TYPE_LOCATION_NTF = 1000,
+ AGPS_MD_TYPE_CP_SERVICE_CONFIG_NTF,
+ AGPS_MD_TYPE_LOCATION_SETTINGS_NTF,
+ AGPS_MD_TYPE_GNSS_TIME_NTF,
+
+ //SUPL Raw data to ELT
+ AGPS_MD_TYPE_SUPL_FLOW_IND = 1100,
+ AGPS_MD_TYPE_SUPL_FLOW_RSP = 1101,
+ //MD -> AP notify information
+ AGPS_MD_TYPE_MODEM_REBOOT_IND = 1200,
+ //Segmented Packet Transfer (Two-way)
+ AGPS_MD_TYPE_SEGMENTED_PACKET_IND = 1300,
+} agps_md_type;
+
+typedef enum {
+ // LPPe WLAN
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_WLAN_REQUEST_CAPABILITIES = 100, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_WLAN_PROVIDE_CAPABILITIES = 101, //AP -> MD LPPeWlan_WlanProvideCapabilities
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_WLAN_START_MEASUREMENT = 102, //MD -> AP LPPeWlan_WlanMeasurements
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_WLAN_STOP_MEASUREMENT = 103, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_WLAN_QUERY_MEASUREMENT = 104, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_WLAN_REPLY_MEASUREMENT = 105, //AP -> MD lppe_stack_wlan_meas
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_WLAN_REQUEST_ASSIST_DATA = 106, //AP -> MD lppe_stack_wlan_request_assist_data
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_WLAN_PROVIDE_ASSIST_DATA = 107, //MD -> AP lppe_stack_wlan_provide_assist_data
+ // LPPe BT
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_BT_REQUEST_CAPABILITIES = 200, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_BT_PROVIDE_CAPABILITIES = 201, //AP -> MD LPPeBluetooth_BluetoothProvideCapabilities
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_BT_START_MEASUREMENT = 202, //MD -> AP LPPeBluetooth_BluetoothMeasurementRequest
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_BT_STOP_MEASUREMENT = 203, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_BT_QUERY_MEASUREMENT = 204, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_BT_REPLY_MEASUREMENT = 205, //AP -> MD lppe_stack_bt_meas
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_BT_REQUEST_ASSIST_DATA = 206, //AP -> MD lppe_stack_bt_request_assist_data
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_BT_PROVIDE_ASSIST_DATA = 207, //MD -> AP lppe_stack_bt_provide_assist_data
+ // LPPe Sensor
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_SENSOR_REQUEST_CAPABILITIES = 300, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_SENSOR_PROVIDE_CAPABILITIES = 301, //AP -> MD LPPeSensor_SensorProvideCapabilities
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_SENSOR_START_MEASUREMENT = 302, //MD -> AP LPPeSensor_SensorMeasurementRequest
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_SENSOR_STOP_MEASUREMENT = 303, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_SENSOR_QUERY_MEASUREMENT = 304, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_SENSOR_REPLY_MEASUREMENT = 305, //AP -> MD lppe_stack_sensor_meas
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_SENSOR_REQUEST_ASSIST_DATA = 306, //AP -> MD lppe_stack_sensor_request_assist_data
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_SENSOR_PROVIDE_ASSIST_DATA = 307, //MD -> AP lppe_stack_sensor_provide_assist_data
+ // LPPe Network
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_NETWORK_REQUEST_CAPABILITIES = 400, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_NETWORK_PROVIDE_CAPABILITIES = 401, //AP -> MD bool
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_NETWORK_START_MEASUREMENT = 402, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_NETWORK_STOP_MEASUREMENT = 403, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_NETWORK_QUERY_MEASUREMENT = 404, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_NETWORK_REPLY_MEASUREMENT = 405, //AP -> MD lppe_stack_network_meas
+ // LPPe IP Address
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_IPADDRESS_REQUEST_CAPABILITIES = 500, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_IPADDRESS_PROVIDE_CAPABILITIES = 501, //AP -> MD LPPeIpAddress_IpAddressCapabilities
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_IPADDRESS_QUERY_INFORMATION = 504, //MD -> AP null
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_IPADDRESS_REPLY_INFORMATION = 505, //AP -> MD LPPeIpAddress_IpAddressInformation
+ // LPPe AGNSS
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_REQUEST_ASSIST_DATA = 600, //AP -> MD lpp_lppe_ha_gnss_ad_req_struct
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_PROVIDE_ASSIST_DATA_COMMON_IONO = 610, //MD -> AP gnss_ha_common_ionospheric_model_struct
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_PROVIDE_ASSIST_DATA_COMMON_TROP = 611, //MD -> AP gnss_ha_common_troposphere_model_struct
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_PROVIDE_ASSIST_DATA_COMMON_ALT = 612, //MD -> AP gnss_ha_common_altitude_assist_struct
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_PROVIDE_ASSIST_DATA_COMMON_SOLAR = 613, //MD -> AP gnss_ha_common_solar_radiation_struct
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_PROVIDE_ASSIST_DATA_COMMON_CCP = 614, //MD -> AP gnss_ha_common_ccp_assist_struct
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_PROVIDE_ASSIST_DATA_GENERIC_CCP = 630, //MD -> AP gnss_ha_generic_ccp_assist_struct
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_PROVIDE_ASSIST_DATA_GENERIC_DM = 631, //MD -> AP gnss_ha_generic_degradation_model_struct
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_AGNSS_PROVIDE_ASSIST_DATA_ACK = 650, //AP -> MD lpp_lppe_ha_gnss_ad_ack_st
+ // GPS chip and MD timing sync
+ AGPS_MD_HUGE_DATA_TYPE_TIME_SYNC_REQ = 700, //AP -> MD mnl_md_time_sync_req_struct
+ AGPS_MD_HUGE_DATA_TYPE_TIME_SYNC_RSP = 701, //AP -> MD mnl_md_time_sync_rsp_struct
+ AGPS_MD_HUGE_DATA_TYPE_TIME_INFO_RSP = 702, //AP -> MD mnl_md_time_info_rsp_struct
+ AGPS_MD_HUGE_DATA_TYPE_TIME_SYNC_IND = 703, //MD -> AP mnl_md_time_sync_ind_struct
+ AGPS_MD_HUGE_DATA_TYPE_TIME_SYNC_CNF = 704, //MD -> AP mnl_md_time_sync_cnf_struct
+ // End
+ AGPS_MD_HUGE_DATA_TYPE_LPPE_END = 2147483647, //make sure this enum is 4 bytes in compile time
+} agps_md_huge_data_msg_id;
+
+typedef struct {
+ int version; //use AGPS_MD_INTERFACE_VERSION
+ short type; //refer to agps_md_type
+ short len; //data length, not include header's size
+} agps_md_header;
+
+typedef struct {
+ char pmtk[256];
+} agps_md_pmtk;
+
+typedef struct {
+ agps_md_reset_data flags; //just hardcode 0x3f
+} agps_md_gps_reset_ind;
+/*
+typedef struct {
+ //nothing
+} agps_md_gps_reset_rsp;
+*/
+typedef struct {
+ #define AGPS_MD_GPS_OPEN_IND_TYPE_NILR 0
+ #define AGPS_MD_GPS_OPEN_IND_TYPE_MTLR 1
+ #define AGPS_MD_GPS_OPEN_IND_TYPE_MOLR 2
+ #define AGPS_MD_GPS_OPEN_IND_TYPE_QUERY 3
+ #define AGPS_MD_GPS_OPEN_IND_TYPE_SUPL 4
+ char type; //refer to AGPS_MD_GPS_OPEN_IND_TYPE_
+} agps_md_gps_open_ind;
+
+typedef struct {
+ #define AGPS_MD_GPS_OPEN_RSP_RESULT_DENY 0
+ #define AGPS_MD_GPS_OPEN_RSP_RESULT_ACCEPT 1
+ char result; //refer to AGPS_MD_GPS_OPEN_RSP_RESULT_
+
+ #define AGPS_MD_GPS_OPEN_RSP_RESULT_CP_AUTO_RESET_DISABLED 0
+ #define AGPS_MD_GPS_OPEN_RSP_RESULT_CP_AUTO_RESET_ENABLED 1
+ char cp_auto_reset; //refer to AGPS_MD_GPS_OPEN_RSP_RESULT_CP_AUTO_RESET_
+} agps_md_gps_open_rsp;
+
+/*
+typedef struct {
+ //nothing
+} agps_md_gps_close_ind;
+
+typedef struct {
+ //nothing
+} agps_md_gps_close_rsp;
+
+typedef struct {
+ //nothing
+} agps_md_session_abort_req;
+
+typedef struct {
+ //nothing
+} agps_md_session_abort_rsp;
+
+typedef struct {
+ //nothing
+} agps_md_mdt_supl_done_rsp;
+
+*/
+typedef struct {
+ short length;
+ char pdu[300];
+} position_protocol_pdu;
+
+typedef struct {
+ #define AGPS_MD_MOLR_BEGIN_POS_TECH_AGNSS (1 << 0)
+ #define AGPS_MD_MOLR_BEGIN_POS_TECH_ECID (1 << 1)
+ #define AGPS_MD_MOLR_BEGIN_POS_TECH_OTDOA (1 << 2)
+ int pos_tech_bitmap; //refer to AGPS_MD_MOLR_BEGIN_POS_TECH_
+ #define AGPS_MD_MOLR_BEGIN_REQ_MOLR_TYPE_LOC_ESTIMATE 0
+ #define AGPS_MD_MOLR_BEGIN_REQ_MOLR_TYPE_ASSIST_DATA 1
+ char molr_type; //refer to AGPS_MD_MOLR_BEGIN_REQ_MOLR_TYPE_
+ char gps_assist_data_used; //0=disabled 1=enabled
+ int gps_assist_data; //0x6f hardcode
+ char external_addr_used; //0=disabled 1=enabled
+ char external_addr[20];
+ char mlc_number_used; //0=disabled 1=enabled
+ char mlc_number[20];
+ int pos_protocol_pdu_num;
+ position_protocol_pdu pos_protocol_pdu[3];
+} agps_md_molr_begin_req;
+
+typedef struct {
+ #define AGPS_MD_MOLR_BEGIN_RSP_RESULT_FAIL 0
+ #define AGPS_MD_MOLR_BEGIN_RSP_RESULT_SUCCESS 1
+ char result; ///refer to AGPS_MD_MOLR_BEGIN_RSP_RESULT_
+ char location_used; //0=disabled 1=enabled
+ agps_md_gps_location location;
+} agps_md_molr_begin_rsp;
+
+typedef struct {
+ #define AGPS_MD_MTLR_BEGIN_IND_NOTIFY_TYPE_NOTIFY_LOCATION_ALLOWED 0
+ #define AGPS_MD_MTLR_BEGIN_IND_NOTIFY_TYPE_NOTIFY_VERIFY_ALLOW_IF_NO_RSP 1
+ #define AGPS_MD_MTLR_BEGIN_IND_NOTIFY_TYPE_NOTIFY_VERIFY_DENY_IF_NO_RSP 2
+ #define AGPS_MD_MTLR_BEGIN_IND_NOTIFY_TYPE_NOTIFY_TO_MS_USER_LOCATION_NOT_ALLOWED 3
+ int session_id;
+ char notify_type; //refer to AGPS_MD_MTLR_BEGIN_IND_NOTIFY_TYPE_
+ char requestor_id[160]; //ASCII string
+ char client_name[160]; //ASCII string
+} agps_md_mtlr_begin_ind;
+
+typedef struct {
+ #define AGPS_MD_MTLR_BEGIN_2_IND_NOTIFY_TYPE_NOTIFY_LOCATION_ALLOWED 0
+ #define AGPS_MD_MTLR_BEGIN_2_IND_NOTIFY_TYPE_NOTIFY_VERIFY_ALLOW_IF_NO_RSP 1
+ #define AGPS_MD_MTLR_BEGIN_2_IND_NOTIFY_TYPE_NOTIFY_VERIFY_DENY_IF_NO_RSP 2
+ #define AGPS_MD_MTLR_BEGIN_2_IND_NOTIFY_TYPE_NOTIFY_TO_MS_USER_LOCATION_NOT_ALLOWED 3
+ int session_id;
+ char notify_type; //refer to AGPS_MD_MTLR_BEGIN_IND_NOTIFY_TYPE_
+ char requestor_id[160];
+ int requestor_id_len;
+ char client_name[160];
+ int client_name_len;
+ #define AGPS_MD_MTLR_BEGIN_2_IND_ENCODING_TYPE_GSM7 1
+ #define AGPS_MD_MTLR_BEGIN_2_IND_ENCODING_TYPE_UTF8 2
+ #define AGPS_MD_MTLR_BEGIN_2_IND_ENCODING_TYPE_UCS2 3
+ char requestor_id_encoding_type; //refer to AGPS_MD_MTLR_BEGIN_2_IND_ENCODING_TYPE_
+ char client_name_encoding_type; //refer to AGPS_MD_MTLR_BEGIN_2_IND_ENCODING_TYPE_
+} agps_md_mtlr_begin_2_ind;
+
+typedef struct {
+ #define AGPS_MD_MTLR_BEGIN_RSP_USER_RESPOND_DENY 0
+ #define AGPS_MD_MTLR_BEGIN_RSP_USER_RESPOND_ACCEPT 1
+ #define AGPS_MD_MTLR_BEGIN_RSP_USER_RESPOND_NO_RESPOND 2
+ int session_id;
+ char user_respond; //refer to AGPS_MD_MTLR_BEGIN_RSP_USER_RESPOND
+} agps_md_mtlr_begin_rsp;
+/*
+typedef struct {
+ //nothing
+} agps_md_nbr_cell_info_reg_req;
+*/
+typedef struct {
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_GSM 1
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_UMTS 2
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_LTE 4
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_NR 9
+ char rat_mode;
+ char is_nbr_info_valid;
+ agps_ps_nbr_cell_info_union_type ps_nbr_cell_info_union;
+} agps_md_nbr_cell_info_reg_cnf;
+/*
+typedef struct {
+ //nothing
+} agps_md_nbr_cell_info_dereg_req;
+
+typedef struct {
+ //nothing
+} agps_md_nbr_cell_info_dereg_cnf;
+*/
+
+typedef struct {
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_GSM 1
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_UMTS 2
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_LTE 4
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_CDMA 8 // IS801 Over SUPL
+ #define AGPS_MD_NBR_CELL_INFO_RAT_MODE_NR 9
+ char rat_mode;
+ char is_nbr_info_valid;
+ agps_ps_nbr_cell_info_union_type ps_nbr_cell_info_union;
+} agps_md_nbr_cell_info_ind;
+
+typedef struct {
+ char mode; // 0=off 1=on
+} agps_md_auto_test_ind;
+
+typedef struct {
+ #define AGPS_MD_AUTO_CP_UP_STATUS_MODE_SET_TO_CP 0
+ #define AGPS_MD_AUTO_CP_UP_STATUS_MODE_SET_TO_UP 1
+ #define AGPS_MD_AUTO_CP_UP_STATUS_MODE_CP_SET_TO_LOC_EST 2
+ #define AGPS_MD_AUTO_CP_UP_STATUS_MODE_CP_SET_TO_ASSIT_DATA 3
+ #define AGPS_MD_AUTO_CP_UP_STATUS_MODE_UP_SET_TO_MA 4
+ #define AGPS_MD_AUTO_CP_UP_STATUS_MODE_UP_SET_TO_MB 5
+ char mode; //refer to AGPS_MD_CP_UP_STATUS_MODE_
+} agps_md_auto_cp_up_status_ind;
+/*
+typedef struct {
+ //nothing
+} agps_md_auto_molr_start_ind;
+
+typedef struct {
+ //nothing
+} agps_md_auto_molr_stop_ind;
+*/
+typedef struct {
+ #define AGPS_MD_AUTO_MTLR_RESPONSE_IND_RESPONSE_REJECT 0
+ #define AGPS_MD_AUTO_MTLR_RESPONSE_IND_RESPONSE_ACCEPT 1
+ char response; //refer to AGPS_MD_MTLR_RESPONSE_IND_RESPONSE_
+ int session_id;
+} agps_md_auto_mtlr_response_ind;
+
+typedef struct {
+ #define AGPS_MD_EMERGENCY_CALL_IND_SIM_ID_SIM_1 1
+ #define AGPS_MD_EMERGENCY_CALL_IND_SIM_ID_SIM_2 2
+ #define AGPS_MD_EMERGENCY_CALL_IND_SIM_ID_SIM_3 3
+ #define AGPS_MD_EMERGENCY_CALL_IND_SIM_ID_SIM_4 4
+ char sim_id; //refer to AGPS_MD_EMERGENCY_CALL_IND_SIM_ID_
+
+ #define AGPS_MD_EMERGENCY_CALL_IND_STATE_DIALED 0
+ #define AGPS_MD_EMERGENCY_CALL_IND_STATE_ENDED 1
+ char state; //refer to AGPS_MD_EMERGENCY_CALL_IND_STATE_
+} agps_md_emergency_call_ind;
+
+typedef struct {
+ #define AGPS_MD_EMERGENCY_TEXT_IND_SIM_ID_SIM_1 1
+ #define AGPS_MD_EMERGENCY_TEXT_IND_SIM_ID_SIM_2 2
+ #define AGPS_MD_EMERGENCY_TEXT_IND_SIM_ID_SIM_3 3
+ #define AGPS_MD_EMERGENCY_TEXT_IND_SIM_ID_SIM_4 4
+ char sim_id; //refer to AGPS_MD_EMERGENCY_TEXT_IND_SIM_ID_
+
+ #define AGPS_MD_EMERGENCY_TEXT_IND_STATE_START 0
+ #define AGPS_MD_EMERGENCY_TEXT_IND_STATE_END 1
+ char state; //refer to AGPS_MD_EMERGENCY_TEXT_IND_STATE_
+} agps_md_emergency_text_ind;
+
+typedef struct {
+ #define CP_SUPPORT_AGNSS 0x01
+ #define CP_SUPPORT_OTDOA 0x02
+ #define CP_SUPPORT_ECID 0x04
+ #define CP_SUPPORT_CONVENTIONAL_GPS 0x08
+ // #define CP_SUPPORT_LPP_EXTENSION 0x10 // Use cp_lppe_enable instead
+ #define CP_SUPPORT_INTER_FREQ_OTDOA 0x20
+ char cp_gsm_disabled;
+ char cp_umts_disabled;
+ char cp_lte_disabled;
+ char cp_lppe_enable;
+ char lppe_network_location_disable;
+ char reject_non911_nilr_enable;
+ char battery_percentage; // the default value is 100 if AGPS is also not synced from framework layer
+ // and it will be udpated per 5% of battery level
+ char cp_nr_disabled;
+ char cp_guard_time_enable;
+ char cp_capability_ctrl_valid;
+ char reserved[2]; // Compiler will put 2 bytes here for alignment. We can put other options in the future
+ int cp_guard_time;
+ int cp_capability_ctrl;
+} agps_md_sim_info_req;
+
+typedef struct {
+ #define AGPS_MD_SIM_INFO_RSP_SIM_NUMBER_SINGLE 1
+ #define AGPS_MD_SIM_INFO_RSP_SIM_NUMBER_GEMINI 2
+ #define AGPS_MD_SIM_INFO_RSP_SIM_NUMBER_GEMINI_3 3
+ #define AGPS_MD_SIM_INFO_RSP_SIM_NUMBER_GEMINI_4 4
+ char sim_number; //refer to AGPS_MD_SIM_INFO_RSP_SIM_NUMBER_
+ #define AGPS_MD_SIM_INFO_RSP_MD_TYPE_FDD 0
+ #define AGPS_MD_SIM_INFO_RSP_MD_TYPE_TDD 1
+ char md_type;
+ #define AGPS_MD_SIM_INFO_RSP_SUPPORT_EUTRAN_BAND_MAX 50
+ char support_lpp_ecid;
+ char support_lpp_otdoa;
+ char support_eutran_band_num;
+ short support_eutran_band_list[AGPS_MD_SIM_INFO_RSP_SUPPORT_EUTRAN_BAND_MAX];
+ char support_lpp_otdoa_nbr_cell_list;
+ char support_supl_flow_ind;
+ char support_location_settings;
+ char support_cp_lppe;
+ char support_rat_2g;
+ char support_rat_3g;
+ char support_rat_4g;
+ char support_ue_rx_tx_sup_tdd_r13;
+ char support_rat_5g;
+ char support_lpp_inter_rat_otdoa;
+ char support_md_time_sync; // GNSS Time Sync between mnl annd modem via huge data transfer
+ char disable_lpp_inter_freq_otdoa;
+} agps_md_sim_info_rsp, agps_md_sim_info_ind;
+/*
+typedef struct {
+ //nothing
+} agps_md_service_state_req;
+*/
+typedef struct {
+ int state_bitmap; //0=out of service 1=in service
+} agps_md_service_state_rsp;
+/*
+typedef struct {
+ //nothing
+} agps_md_roaming_state_req;
+*/
+typedef struct {
+ int state_bitmap; //0=local or unknown 1=roaming
+} agps_md_roaming_state_rsp;
+/*
+typedef struct {
+ //nothing
+} agps_md_data_connection_state_req;
+*/
+typedef struct {
+ int state_bitmap; //0=disconnected or unknown 1=connected
+} agps_md_data_connection_state_rsp;
+
+typedef struct {
+ #define AGPS_MD_LOC_SOURCE_NONE 0x00
+ #define AGPS_MD_LOC_SOURCE_GNSS 0x01
+ #define AGPS_MD_LOC_SOURCE_NLP 0x02
+ #define AGPS_MD_LOC_SOURCE_SENSOR 0x04
+ double lat;
+ double lng;
+ int acc; // meter
+ int loc_source; // bitmap of AGPS_MD_LOC_SOURCE_xxx
+ char utc_time_valid;
+ unsigned long long utc_time; //the number of UTC seconds in 1ms units since 00:00:00 on Gregorian calendar date 1 January, 1970.
+} agps_md_location_ntf;
+
+typedef struct {
+ unsigned long long utc_time; //the number of UTC seconds in 1ms units since 00:00:00 on Gregorian calendar date 1 January, 1970.
+} agps_md_gnss_time_ntf;
+
+typedef struct {
+ #define AGPS_MD_CP_RAT_MODE_GSM 0x01
+ #define AGPS_MD_CP_RAT_MODE_UMTS 0x02
+ #define AGPS_MD_CP_RAT_MODE_LTE 0x04
+ #define AGPS_MD_CP_RAT_MODE_NR 0x08
+ int rat_mode_flags;
+
+ char gsm_enabled;
+ char umts_enabled;
+ char lte_enabled;
+ char nr_enabled;
+} agps_md_cp_service_config_ntf;
+
+typedef struct {
+ char enabled; // 0: reject most location except emergency, 1: allow all location request
+ char gnss_visibility_control_status; // 0: gvc reject network-initiated location,
+ // 1: gvc allow network-initiated location
+ char cp_gvc_enable; // 0: do not check gvc, 1: consider gvc status
+} agps_md_location_setting_ntf;
+
+typedef struct {
+ #define AGPS_MD_SUPL_FLOW_IND_DIRECTION_NW_TO_UE 0 // LS to MS in operator's sample excel
+ #define AGPS_MD_SUPL_FLOW_IND_DIRECTION_UE_TO_NW 1 // MS to LS
+ char direction;
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_UNKNOWN 0
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_INIT 1
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_START 2
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_RESPONSE 3
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_POS_INIT 4
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_POS 5
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_END 6
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_TRIGGERED_START 7
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_TRIGGERED_RESPONSE 8
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_TRIGGERED_STOP 9
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_NOTIFY 10
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_NOTIFY_RESPONSE 11
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_SET_INIT 12
+ #define AGPS_MD_SUPL_FLOW_IND_TYPE_SUPL_REPORT 13
+ char type;
+ int message_size;
+ int session_id;
+ int message_id;
+ int pdu_id;
+ int pdu_size;
+ char pdu[3072];
+} agps_md_supl_flow_ind;
+/*
+typedef struct {
+ //nothing
+} agps_md_supl_flow_rsp;
+
+typedef struct {
+ //nothing
+} agps_md_modem_reboot_ind;
+*/
+/* Structure for LBS AP setting query API */
+typedef agps_md_sim_info_req lbs_setting_generic_ap;
+#endif
+
diff --git a/mcu/interface/protocol/general/as2l4c_struct.h b/mcu/interface/protocol/general/as2l4c_struct.h
new file mode 100644
index 0000000..3410205
--- /dev/null
+++ b/mcu/interface/protocol/general/as2l4c_struct.h
@@ -0,0 +1,735 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * as2l4c_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * 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 : as2l4c_struct.h
+ * SYNOPSIS :
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _AS2L4C_STRUCT_H
+#define _AS2L4C_STRUCT_H
+
+//#include "kal_non_specific_general_types.h"
+#include "l3_inc_enums.h"
+#include "nbr_public_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "kal_public_defs.h"
+
+#include "l3_inc_local.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} l4cps_nbr_cell_info_start_req_struct, l4cps_nbr_cell_info_stop_req_struct;
+
+typedef l4c_nbr_cell_info_reg_cnf_struct l4cps_nbr_cell_info_start_cnf_struct;
+typedef l4c_nbr_cell_info_ind_struct l4cps_nbr_cell_info_ind_struct;
+typedef l4c_nw_band_info_ind_struct l4cps_nw_band_info_ind_struct;
+
+//#ifdef __PLMN_LIST_PREF_SUPPORT__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ plmn_list_preference_enum preference;
+} l4cas_set_plmn_list_preference_req_struct;
+//#endif
+
+#ifdef __DYNAMIC_HSPA_PREFERENCE__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ #if defined(__RMMI_UT__) || defined(__L1_STANDALONE__)
+ kal_uint8 hspa_preference;
+ #else
+ hspa_preference_enum hspa_preference;
+ #endif
+} l4cas_set_hspa_preference_req_struct;
+#endif /* __DYNAMIC_HSPA_PREFERENCE__ */
+
+/* rx_level revision -------------------------------- */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 current_band;
+ kal_int32 rssi_in_qdbm; /* 1 means invalid */
+ kal_uint8 ber;
+ target_module_enum target_module;
+} l4cps_gas_cell_power_level_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 ber; /* 99 means invalid */
+ kal_int32 rssi_in_qdbm; /* valid range: -101*4 ~ -25*4 */
+ kal_int32 RSCP_in_qdbm; /* valid range: -120*4 ~ -20*4 */
+ kal_int32 EcN0_in_qdbm; /* valid range: - 25*4 ~ 0*4 */
+
+ target_module_enum target_module;
+ kal_uint16 Intra_UARFCN;
+ kal_uint8 band;
+} l4cps_uas_cell_power_level_ind_struct;
+
+/* -------------------------------- rx_level revision */
+#if defined(__AT_RRC_TRACE_SUPPORT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool trace_on;
+}l4cas_set_rrc_peer_trace_req_struct;
+
+#define RRC_PEER_TRACE_MAX_MESSAGE_LEN 30
+#define RRC_PEER_TRACE_MAX_MESSAGE_TYPE_LEN 50
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 message[RRC_PEER_TRACE_MAX_MESSAGE_LEN];
+ kal_uint8 message_type[RRC_PEER_TRACE_MAX_MESSAGE_TYPE_LEN];
+
+}l4cas_rrc_peer_trace_ind_struct;
+#endif
+
+typedef enum
+{
+ IQ_CHANNEL_BCCH = 0,
+ IQ_CHANNEL_PCH,
+ IQ_CHANNEL_RACH,
+ IQ_CHANNEL_AGCH,
+ IQ_CHANNEL_NCH,
+ IQ_CHANNEL_SACCH,
+ IQ_CHANNEL_FACCH,
+ IQ_CHANNEL_SDCCH,
+ IQ_CHANNEL_PBCCH,
+ IQ_CHANNEL_PPCH,
+ IQ_CHANNEL_PRACH,
+ IQ_CHANNEL_PAGCH,
+ IQ_CHANNEL_PACCH,
+ IQ_CHANNEL_CCCH_RACH,
+ IQ_CHANNEL_DCCH_RACH,
+ IQ_CHANNEL_DCCH_DCH,
+ IQ_CHANNEL_DCCH_EDCH,
+ IQ_CHANNEL_BCCH_BCH,
+ IQ_CHANNEL_BCCH_FACH,
+ IQ_CHANNEL_BCCH_HSDSCH,
+ IQ_CHANNEL_PCCH_PCH,
+ IQ_CHANNEL_PCCH_HSDSCH,
+ IQ_CHANNEL_CCCH_FACH,
+ IQ_CHANNEL_CCCH_HSDSCH,
+ IQ_CHANNEL_DCCH_FACH,
+ IQ_CHANNEL_DCCH_HSDSCH,
+ IQ_CHANNEL_NOT_APPLICABLE = 255
+}l4cas_iq_channel_t;
+
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_abort_molr;
+} l4c_lcsp_agps_cp_abort_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_etws_needed; /* KAL_FALSE = ETWS off, KAL_TRUE = ETWS on */
+ kal_bool is_etws_security_needed; /* KAL_FALSE = ETWS security off, KAL_TRUE = ETWS security off */
+ kal_bool is_etws_testing_on; /* KAL_FALSE = don't send test purpose ETWS to MMI, KAL_TRUE= send test purpose ETWS to MMI*/
+} l4cas_etws_setting_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 warning_type; /*Byte 0 is MSB*, format follows 23.041 9.3.24*/
+ kal_uint16 message_id; /*Byte 0 is MSB*/
+ kal_uint16 serial_nubmer; /*Byte 0 is MSB*/
+ kal_bool is_security_information_valid;
+ kal_uint8 etws_security_information[L4C_MAX_ETWS_SECURITY_INFO_LEN]; /* Only valid when is_security_information_valid = KAL_TRUE, format follows 23.041 9.3.25 */
+} l4cas_etws_information_ind_struct;
+
+//#ifdef __CSG_SUPPORT__
+#if defined(__CSG_SUPPORT__) || defined(__LTE_RAT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_enabled;
+} l4cas_csg_auto_search_req_struct;
+#endif
+
+typedef struct
+{
+ lai_struct lai;
+ kal_uint16 cell_id;
+ kal_uint32 bar_time;
+} l4cas_bar_cell_control_info_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ bar_cell_control_enum control;
+ kal_uint8 num;
+ l4cas_bar_cell_control_info_struct info[RR_NUM_OF_MAX_BAR_CELL];
+} l4cas_bar_cell_control_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 num;
+ l4cas_bar_cell_control_info_struct info[RR_NUM_OF_MAX_BAR_CELL];
+} l4cas_bar_cell_control_cnf_struct;
+
+
+#if defined(__GEMINI__)
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_turn_on;
+} rsvas_monitor_peer_pch_switch_req_struct;
+#endif /* __GEMINI__ */
+
+#if defined(__SINGLE_AP_DUAL_MODEM__)
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 sim_config; /* bitmap */
+} rsvas_sim_status_config_req_struct;
+#endif /* __SINGLE_AP_DUAL_MODEM__ */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_start_fast_mode_switch;
+} rsvas_fast_mode_switch_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_prefer_rat_enum prefer_rat;
+} l4cas_set_prefer_rat_req_struct;
+
+/* for Thermal begin */
+typedef struct
+{
+ LOCAL_PARA_HDR
+}l4cps_meas_info_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_int8 tx_power; //tx power: -50 ~ 24, -127: invalid
+}l4cps_meas_info_cnf_struct;
+/* for Thermal end */
+
+
+/* INVALID_TX_FREQ represents the invalid value of TX frequency
+ tx_freq list starts from tx_freq[0], and ends at tx_freq[63]
+ or tx_freq[n] where ((n<64) && (tx_freq[n]==INVALID_TX_FREQ))
+*/
+#define INVALID_TX_FREQ 0xFFFF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 tx_freq[64]; //MAX_NUM_OF_HOPPING_FREQ defined in rr_mpal_interface.h
+}l4cps_rf_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ umts_rrc_state_enum umts_rrc_state;
+ kal_bool dl64qam;
+ ps_conn_status_enum ps_conn_status;
+} l4c_rrce_rrc_state_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_afr_triggered;
+}l4cps_gas_auto_fast_return_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_afr_triggered;
+}l4cps_uas_auto_fast_return_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool ims_support;
+}l4cas_ims_config_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_dedicated;
+ gsm_rrm_state_enum gas_rrm_state;
+}l4c_rrm_rrms_state_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 hopping_flag;
+ kal_uint8 num_of_hopping_carrier;
+ kal_uint16 arfcn[64];
+ kal_uint8 freq_band[64];
+ kal_uint16 serv_arfcn;
+ kal_uint8 serv_arfcn_band;
+}l4c_rrm_channel_param_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 disc_cause;
+}l4cas_cc_error_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool voice_over_ims_ongoing;/*true:call start,false: call end*/
+}l4cas_ims_call_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool sib19_present; //To notify L4C that SIB19 is present in the serving cell.
+}l4cas_sib19_info_ind_struct;
+#define MAX_NUM_OF_PSEUDO_BS 2
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 apc_feature_type;
+ kal_bool enable_auto_report;
+ kal_uint16 auto_report_period;
+}l4cas_rr_apc_ctrl_info_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool set_result;
+}l4cas_rr_apc_ctrl_info_cnf_struct;
+
+typedef struct
+{
+ kal_bool result;
+ lai_struct Lai;
+ kal_uint16 Cell_id;
+ kal_uint16 Arfcn;
+ kal_uint8 bsic;
+ kal_uint8 si3_raw_data[23];
+}l4cas_rr_pseudo_bs_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 apc_feature_type;
+ kal_bool fake_cell_auto_report;
+ kal_uint16 auto_report_period;
+ kal_uint8 count;
+ l4cas_rr_pseudo_bs_struct pseudo_bs_list[MAX_NUM_OF_PSEUDO_BS];
+}l4c_rrm_pseudo_bs_detect_ind_struct,l4cas_rr_pseudo_bs_query_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+}l4cas_rr_pseudo_bs_query_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 arfcn;
+}l4c_rrc_cur_freq_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_enabled; /* If enabled then don't check barr criteria for camping */
+} l4cps_gsm_bar_control_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_enabled;
+} l4cuas_set_rach_test_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 src_id;
+ kal_bool integrity_status; //{0x0: Disable 0x1: Enable}
+ kal_bool ciphering_status; //{0x0: Disable 0x1: Enable}
+ kal_bool fake_security_status; //{0x0: Disable 0x1: Enable}
+} l4cas_set_wcdma_security_mode_param_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 src_id; // piggyback src_id in req.
+ kal_bool result;
+} l4cas_set_wcdma_security_mode_param_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 src_id;
+} l4cas_get_wcdma_security_mode_param_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 src_id; // piggyback src_id in req.
+ kal_bool result;
+ kal_bool integrity_status; //{0x0: Disable 0x1: Enable}
+ kal_bool ciphering_status; //{0x0: Disable 0x1: Enable}
+ kal_bool fake_security_status; //{0x0: Disable 0x1: Enable}
+} l4cas_get_wcdma_security_mode_param_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode; /* 0 - Power monitoring disable, 1 - Power monitoring enable */
+ kal_uint8 signal_type; /* 0 - RSCP, 1 - ECNO */
+ kal_int16 tin_threshold; /*Unit - qdbm*/
+ kal_int16 tout_threshold; /*Unit - qdbm*/
+ kal_uint32 timer;
+}l4cas_cell_power_threshold_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 signal_type; /* 0 - RSCP, 1 - ECNO, 2 - Both*/
+ kal_int16 rscp_signal_value; /* signal value of RSCP. Applicable only if <signal_type> is 0 or 2*/
+ kal_int16 ecno_signal_value; /* signal value of ECNO. Applicable only if <signal_type> is 1 or 2*/
+}l4cas_cell_power_threshold_ind_struct;
+
+typedef l4cps_gas_cell_power_level_ind_struct l4cps_gas_report_signal_level_ind_struct;
+typedef l4cps_uas_cell_power_level_ind_struct l4cps_uas_report_signal_level_ind_struct;
+
+#endif /* _AS2L4C_STRUCT_H */
diff --git a/mcu/interface/protocol/general/as_inter_core_enum.h b/mcu/interface/protocol/general/as_inter_core_enum.h
new file mode 100644
index 0000000..8bec1a7
--- /dev/null
+++ b/mcu/interface/protocol/general/as_inter_core_enum.h
@@ -0,0 +1,398 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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:
+ * ---------
+ * as_inter_core_enum.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __AS_INTER_CORE_ENUM_H__
+#define __AS_INTER_CORE_ENUM_H__
+
+/* MACROS ******************************************************************/
+#ifdef __REL6__
+#define MAX_NUM_EQ_PLMN 16
+#else
+#define MAX_NUM_EQ_PLMN 6
+#endif
+
+#define MAX_NUM_LTE_MEAS_CELL (16) /* Maximum number of reported cells per frequency */
+#define MAX_MEAS_IRAT_FREQ (8) /* The maximum supported LTE Inter-frequency for measurement.
+ 4 for TDD + 4 for FDD */
+
+#define MAX_5G4_MEAS_FREQ (16)
+
+#define SIZE_LTE_BAND 8
+#define SIZE_LTE_BAND_MASK_TABLE_EXTENDED (256/8)
+
+//(CUR_GEN >= MD_GEN97)
+#define SIZE_NR_BAND (1024/8)
+//END (CUR_GEN >= MD_GEN97)
+
+#define LTE_INVALID_RSRP (0x7FFF)
+#define LTE_INVALID_RSRQ (0x7FFF)
+
+#define LTE_MAX_RSRP (-100)
+#define LTE_MIN_RSRP (-660)
+#define LTE_MAX_RSRQ (0)
+#define LTE_MIN_RSRQ (-100)
+
+#define SIZE_UMTS_FDD_BAND 4
+#define SIZE_UMTS_TDD_BAND 2
+
+#define MAX_NR_OF_FDD_CELLS_IN_CELL_LIST (32)
+#define MAX_NR_OF_TDD_CELLS_IN_CELL_LIST (32)
+
+#define MAX_NUM_MEASURED_GSM_CELLS 32 /* The maximum number of GSM cells that can be measured in the standby mode.
+ * This constant is used between UAS/EAS and GAS.
+ */
+
+#define TDD_MAX_NUM_MEASURED_UMTS_CARRIERS (9)
+
+#define FDD_MAX_NUM_MEASURED_UMTS_CARRIERS (6)
+
+#define BLK_LIST_ARRAY_SIZE (63) /* Size of PCI bitmap array (504/8 = 63) */
+
+/* TYPES DEFINITIONS ********************************************************/
+
+//copied from l3_inc_enums.h
+typedef enum
+{
+ ANY_PLMN = 0,
+ GIVEN_PLMN_EXCLUDE_FORBIDDEN_LA_FOR_ROAMING = 1,
+ GIVEN_PLMN_ALLOW_ALL_LA = 2,
+ GIVEN_PLMN_ALLOW_ALL_LA_FOR_LIMITED = 3,
+ SEARCH_TYPE_NO_CHANGE = 0xFF /* Used in Regn_status_update_req only */
+} plmn_search_type_enum;
+
+//copied from irat_common_enums.h
+typedef enum
+{
+ EUTRAN_DISABLED,
+ EUTRAN_ENABLED
+} eutran_cap_enum; /* E-UTRAN capability */
+
+/* The following should move to interrat interface file */
+typedef enum {
+ GSM_BAND_INDICATOR_DCS1800, /* Default */
+ GSM_BAND_INDICATOR_PCS1900
+} te_gsm_band_indicator;
+
+/* Measured results related: UAS to GAS/EAS */
+typedef enum {
+ IR_BAR_STATUS_NOT_BARRED,
+ IR_BAR_STATUS_BARRED
+} te_ir_bar_status;
+
+typedef enum {
+ IR_RESEL_CRITERIA3_NOT_SATISFIED,
+ IR_RESEL_CRITERIA3_UNKNOWN,
+ IR_RESEL_CRITERIA3_SATISFIED
+} te_ir_resel_criteria3_status;
+
+typedef enum
+{
+ GSM_BAND_START = 0,
+ GSM_BAND_P = GSM_BAND_START,
+ GSM_BAND_E = 1,
+ GSM_BAND_R = 2,
+ GSM_BAND_1800 = 3,
+ GSM_BAND_1900 = 4,
+ GSM_BAND_450 = 5,
+ GSM_BAND_480 = 6,
+ GSM_BAND_850 = 7,
+ MAX_GSM_BANDS = 8,
+ UMTS_BAND_START = 9,
+ UMTS_BAND = UMTS_BAND_START,
+ INVALID_BAND = 0xff
+}access_technology_type_enum;
+
+typedef enum
+{
+ EL1_BANDWIDTH_6_RB,
+ EL1_BANDWIDTH_15_RB,
+ EL1_BANDWIDTH_25_RB,
+ EL1_BANDWIDTH_50_RB,
+ EL1_BANDWIDTH_75_RB,
+ EL1_BANDWIDTH_100_RB,
+ EL1_BANDWIDTH_INVALID
+} eas_bandwidth_enum;
+
+/* This enumeration represents whether evaluation or activation for the target
+ * E-UTRA is cell is successful, failure, or CCO timer timeout (only used by
+ * cell change order procedure).
+ */
+typedef enum
+{
+ IR_CELL_RESELECTION_SUCCESS,
+ IR_CELL_RESELECTION_FAILURE,
+ IR_CELL_RESELECTION_TIMEOUT
+} te_ir_cell_reselection_status;
+
+typedef enum {
+ IR_CELL_RESELECTION,
+ IR_CELL_CHANGE_ORDER,
+ IR_REDIRECTION
+#ifdef __CMCC_STD_FR__
+ ,IR_STD_FR
+#endif
+ ,IR_AUTO_FAST_RETURN
+ ,IR_NW_FAST_RETURN
+ ,IR_BG_SRCH
+ ,IR_HSR_CR
+ ,IR_UMTS_FAST_RETURN
+ ,IR_AUTO_FAST_RETURN_STRICT_CONST
+ ,IR_AUTO_FAST_RETURN_WITH_PRIORITY_FREQ // for 4G5 VzW AFR
+} te_ir_cell_change_trigger;
+
+/* Define for Evaluation or Activation Failed Type */
+typedef enum
+{
+ IR_INITIAL_VALUE = 0x00,
+ NEVER_ALLOWED = 0x01, //For Frequency Band Not Support Case.
+ PLMN_ID_MISMATCHED = 0x02,
+ LA_NOT_ALLOWED = 0x03,
+ CELL_BARRED = 0x04,
+ TEMP_FAILURE = 0x05,
+ CRITERIA3_NOT_SATISFIED = 0x06,
+ TA_NOT_ALLOWED = 0x07,
+ CELL_BARRED_FREQ = 0x08,
+ CELL_BARRED_RESV_OPERATOR = 0x09,
+ CELL_BARRED_RESV_OPERATOR_FREQ = 0x0A,
+ CSG_NOT_ALLOWED = 0x0B,
+ GEMINI_FAILURE = 0x0C,
+ NAS_REJECT = 0x0D,
+ SECTOR_VALIDATION_FAILURE = 0x0E,
+ NOT_STABLE = 0x0F,
+ BLACK_CELL = 0x10
+} te_eval_activate_fail_type;
+
+typedef enum
+{
+ IR_REJECT_NONE, //When irat_result != IR_RESULT_REJECT
+ IR_REJECT_SET_RAT, //RATCM SET RAT action ongoing
+ IR_REJECT_PLMN_SEARCH, //RATCM PLMN SEARCH action ongoing
+ IR_REJECT_RF_OFF, //RATCM RF OFF action ongoing
+ IR_REJECT_DEACTIVATE, //RATCM DEACTIVATE for IR search action ongoing
+ IR_REJECT_PS_DETACH, //MM PS Detach ongoing
+ IR_REJECT_ONGOING_CM_SERVICE, //MM has ongoing CM service
+ IR_REJECT_SHALL_NOT_IDLE, // for HO/CCO, shall not be idle
+ IR_REJECT_SHALL_NOT_CONNECTING, // for IR/Redirect, shall not be connecting
+ IR_REJECT_TO_DISABLED_RAT, // for capability change, do not IRAT to disabled RAT
+ IR_REJECT_POWER_OFF_DETACH, // Power off detach ongoing
+ IR_REJECT_EMM_REJECT_4G23_RDT, // EMM uses this event to notify NAS_SV to reject the following 4G23 IRRDT
+ IR_REJECT_NAS_CONTEXT_MAC_FAILURE, // 4G5 HO MAC failure. [33.501 2019 Jun] CR#0605
+} irat_reject_cause_enum;
+
+typedef enum {
+ REPORT_CGI_STOP = 0x00,
+ REPORT_CGI_START = 0x01
+} report_cgi_req_type_enum;
+
+typedef enum {
+ ACQ_CGI_SUCCESS = 0x00,
+ ACQ_CGI_FAIL_CELL_FOUND = 0x01,
+ ACQ_CGI_FAIL_CELL_NOT_FOUND = 0x02
+} cgi_info_status_enum;
+
+typedef enum
+{
+ MEAS_SCALE_FACTOR_NOT_AVAILABLE = 0,
+ MEAS_SCALE_FACTOR_CONFIG1 = 1,
+ MEAS_SCALE_FACTOR_CONFIG2 = 2
+} meas_scale_factor_enum;
+
+typedef enum {
+ LCSCE_EUTRA_CELL_NOT_FOUND, // LTE info available and triggered meansurements, but no LTE cell found.
+ LCSCE_EUTRA_RESEL_CRIT_NOT_MET, // UE in idle and LTE measurments are going on, but cell reselection criterin not met.
+ LCSCE_NO_REASON_TO_UPDATE
+}LCSCE_REASON_NOT_MOVING_TO_LTE;
+
+typedef enum
+{
+ CELL_REJ_CAUSE_NONE = 0, /* None */
+ CELL_REJ_CAUSE_ENPDCP_CUT_CELL = 1, /* Bar cell from ENPDCP, = ERRC_CELL_REJ_CAUSE_ENPDCP_CUT_CELL (for SMALL_GRANT) */
+ CELL_REJ_CAUSE_ENPDCP_CUT_CELL_POSSIBLE_DCI_IN_MEAS_GAP = 2, /* Bar cell from ENPDCP, = ERRC_CELL_REJ_CAUSE_ENPDCP_CUT_CELL_POSSIBLE_DCI_IN_MEAS_GAP */
+ CELL_REJ_CAUSE_SCG_FAILURE = 3, /* MULTI SCG Failure, = ERRC_CELL_REJ_CAUSE_SCG_FAILURE */
+ CELL_REJ_CAUSE_VDM_CALL_DROP = 4, /* CALL DROP with SIP cause 503, = ERRC_CELL_REJ_CAUSE_VDM_CALL_DROP */
+ CELL_REJ_CAUSE_CELL_TEMP_REJ = 5, /* Reselect fail, = ERRC_CELL_REJ_CAUSE_CELL_TEMP_REJ */
+ CELL_REJ_CAUSE_ERM_CELL_BARRED = 6, /* ERM Bar Cell, = ERRC_CELL_REJ_CAUSE_ERM_CELL_BARRED */
+ CELL_REJ_CAUSE_REDIRECT_TACLESS = 7 /* 4G5 redirection failed (TACLESS), = ERRC_CELL_REJ_CAUSE_CELL_REDIRECT_TACLESS */
+} cell_rej_cause_enum;
+#endif /* __AS_INTER_CORE_ENUM_H__ */
diff --git a/mcu/interface/protocol/general/as_inter_core_struct.h b/mcu/interface/protocol/general/as_inter_core_struct.h
new file mode 100644
index 0000000..55dd08a
--- /dev/null
+++ b/mcu/interface/protocol/general/as_inter_core_struct.h
@@ -0,0 +1,339 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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:
+ * ---------
+ * as_inter_core_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __AS_INTER_CORE_STRUCT_H__
+#define __AS_INTER_CORE_STRUCT_H__
+
+#include "as_inter_core_enum.h"
+#include "global_type.h"
+
+typedef struct meas_UmtsCell
+{
+ kal_uint8 validity;
+
+ #define tstd_valid 0x04
+ #define sctd_valid 0x02
+ #define txDiversity_valid 0x01
+
+ kal_uint16 physCellId; /* MANDATORY */
+// //AsnNull tstd; /* OPTIONAL */
+// //AsnNull sctd; /* OPTIONAL */
+ kal_bool txDiversity; /* OPTIONAL */
+}
+meas_UmtsCell;
+
+typedef struct meas_UmtsCellListOnTheCarrier
+{
+ kal_uint8 numElements;
+
+ meas_UmtsCell element[32];
+}
+meas_UmtsCellListOnTheCarrier;
+
+typedef struct meas_UmtsCellListPerCarrier
+{
+ kal_uint16 uarfcn; /* MANDATORY */
+ meas_UmtsCellListOnTheCarrier cellList; /* MANDATORY */
+ kal_bool reduced_meas_perf;
+}
+meas_UmtsCellListPerCarrier;
+
+/* Measured results related: UAS to GAS/EAS */
+
+///#ifdef __UMTS_TDD128_MODE__
+typedef struct {
+ kal_uint16 cell_parameter;
+ kal_int16 pccpch_rscp; /* RSCP, in qdbm. Range: -500~ -100 (means -125 ~ -25 dBm 0.25 dB step) */
+ te_ir_bar_status resel_status;
+// te_ir_resel_criteria3_status criteria3_status;//FDD only
+}ts_ir_reported_tdd_cells_meas_info;
+
+typedef struct
+{
+ kal_uint16 uarfcn;
+ kal_int16 uarfcn_rssi; /* RSSI, in qdbm. Range: -400 ~ -100 (means -100 ~ -25 dBm 0.25 dB step) */
+ kal_uint8 num_reported_cells;
+ ts_ir_reported_tdd_cells_meas_info ir_reported_tdd_cells_meas_info[MAX_NR_OF_TDD_CELLS_IN_CELL_LIST];
+} ts_ir_umts_carrier_meas_results;
+
+typedef struct
+{
+ kal_uint8 num_carriers;
+ ts_ir_umts_carrier_meas_results ir_umts_carrier_meas_reults[TDD_MAX_NUM_MEASURED_UMTS_CARRIERS];
+} ts_ir_umts_meas_info;
+///#endif
+
+typedef struct
+{
+ kal_uint32 frame_offset;
+ kal_uint16 quarter_bit_offset;
+} ts_ir_gsm_cell_timing_info;
+
+typedef struct
+{
+ te_gsm_band_indicator gsm_band_indicator;
+ kal_uint16 bcch_arfcn;
+ kal_bool bsic_verified;
+ kal_uint8 bsic; /* This contains a valid value only if bsic_verified = TRUE */
+ ts_ir_gsm_cell_timing_info gsm_cell_timing_info; /* This contains a valid value only if bsic_verified = TRUE */
+} ts_ir_gsm_cell_bsic_info;
+
+/* Measured results related: EAS to GAS/UAS */
+typedef struct
+{
+ kal_uint16 pci;
+ kal_int16 rsrp;
+ kal_int16 rsrq;
+ kal_int16 rs_sinr;
+} eas_meas_cell_rslt_struct;
+
+typedef struct
+{
+ EARFCN earfcn;
+ kal_uint8 cell_num;
+ eas_meas_cell_rslt_struct cell[MAX_NUM_LTE_MEAS_CELL];
+} eas_meas_freq_rslt_struct;
+
+typedef struct
+{
+ EARFCN earfcn;
+ kal_uint8 cell_num;
+ kal_uint16 cell[MAX_NUM_LTE_MEAS_CELL];
+} eas_hps_qualify_struct;
+
+typedef struct
+{
+ kal_uint16 scrambling_code;
+ kal_int16 cpich_rscp; /* RSCP, in qdbm Range: -480 ~ -100 means (-120 ~ -25 )dBm in 0.25 dB step */
+ kal_int16 cpich_ec_n0; /* Ec/No, in qdb. Range: -100~0 (means -25 ~ 0 dB in 0.25 dB step) */
+ te_ir_bar_status resel_status; /* used when 2G active */
+ te_ir_resel_criteria3_status criteria3_status; /* used when 2G active */
+} ir_umts_measured_result_per_cell;
+
+typedef struct
+{
+ kal_uint16 uarfcn;
+ kal_int16 uarfcn_rssi; /* RSSI, in qdbm. Range: -480 ~ -100 (means -120 ~ -25 dBm 0.25 dB step) */
+ kal_uint8 num_reported_cells;
+ ir_umts_measured_result_per_cell ir_reported_fdd_cells_meas_info[MAX_NR_OF_FDD_CELLS_IN_CELL_LIST];
+} ir_umts_measured_result;
+
+/* Measured results related: GAS to UAS/EAS */
+typedef struct
+{
+ te_gsm_band_indicator gsm_band_indicator;
+ kal_uint16 bcch_arfcn;
+ kal_int16 rssi_in_quarter_dbm;
+} ts_ir_carrier_rssi_info;
+
+typedef struct
+{
+ kal_uint8 num_carriers;
+ ts_ir_carrier_rssi_info carrier_rssi_info[MAX_NUM_MEASURED_GSM_CELLS];
+} ts_ir_gsm_cell_rssi_info;
+
+/* Measurement request/confirm related: EAS/UAS to GAS */
+typedef struct
+{
+ te_gsm_band_indicator gsm_band_indicator;
+ kal_uint16 bcchArfcn;
+} ts_ir_gsm_cell;
+
+typedef struct
+{
+ kal_uint8 numElements;
+ ts_ir_gsm_cell element[32];
+} ts_ir_gsm_cell_list;
+
+/* Measured request related: UAS/GAS/CAS/NL1 to EAS */
+typedef struct
+{
+ EARFCN earfcn;
+ eas_bandwidth_enum meas_bandwidth;
+ kal_bool skip_black_list;
+ kal_uint8 black_list[BLK_LIST_ARRAY_SIZE];
+
+//#ifdef __LTE_R11__
+ kal_bool wideband_rsrq_meas;
+//#endif
+ kal_bool presence_antenna_port1; /* MOB only reference in NL1_ERRC_LTE_MEASUREMENT_REQ. */
+} eas_meas_freq_info_struct;
+
+typedef struct
+{
+ EARFCN earfcn;
+ kal_uint16 pci;
+} eas_target_cell_info;
+
+#define AS_NR_SCS_15 15
+#define AS_NR_SCS_30 30
+#define AS_NR_SCS_60 60
+#define AS_NR_SCS_120 120
+#define AS_NR_SCS_240 240
+#define AS_NR_SCS_UNKNOWN 0
+
+typedef struct
+{
+ kal_uint16 dl_frequency_band;
+ NRARFCN narfcn;
+ kal_uint16 pci;
+ kal_uint8 subcarrier_spacing_ssb; // the vaule setting should align #define AS_NR_SCS_xxx
+} nr_cell_info;
+
+/* Define for Evaluation or Activation Failed Handle */
+typedef struct
+{
+ te_eval_activate_fail_type eval_activate_fail_type;
+ /* In second, valid only when evalActivateFailType is CELL_BARRED */
+ kal_uint16 tbarred_val;
+ /* In enum, valid only when evalActivateFailType is NAS_REJECT(only set and used by UAS now) */
+ irat_reject_cause_enum reject_cause;
+} ts_eval_activate_fail_handle;
+
+/* MSG_ID_ANY_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 */
+} any_errc_cell_rej_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ any_errc_cell_rej_info_struct rej_info;
+} any_errc_cell_rej_ind_struct;
+
+#endif /* __AS_INTER_CORE_STRUCT_H__ */
diff --git a/mcu/interface/protocol/general/atp_dmf_cmd_def.h b/mcu/interface/protocol/general/atp_dmf_cmd_def.h
new file mode 100644
index 0000000..7a13b9b
--- /dev/null
+++ b/mcu/interface/protocol/general/atp_dmf_cmd_def.h
@@ -0,0 +1,4173 @@
+/*****************************************************************************
+* 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 DMF_APP
+#define DMF_APP(APP_ID)
+#endif
+
+#ifndef DMF_APP_END
+#define DMF_APP_END
+#endif
+
+#ifndef DMF_CMD_REQ
+#define DMF_CMD_REQ(STRUCT_NAME, PARA_NAME)
+#endif
+
+#ifndef DMF_CMD_REQ_END
+#define DMF_CMD_REQ_END(STRUCT_NAME)
+#endif
+
+#ifndef DMF_CMD_CNF
+#define DMF_CMD_CNF(CNF_TYPE, STRUCT_NAME, PARA_NAME)
+#endif
+
+#ifndef DMF_CMD_CNF_END
+#define DMF_CMD_CNF_END(STRUCT_NAME)
+#endif
+
+#ifndef DMF_URC_IND
+#define DMF_URC_IND(IND_TYPE, STRUCT_NAME, PARA_NAME)
+#endif
+
+#ifndef DMF_URC_IND_END
+#define DMF_URC_IND_END(STRUCT_NAME)
+#endif
+
+#ifndef DMF_FIELD_VAR
+#define DMF_FIELD_VAR(VAR_TYPE, VAR_NAME, MAX_VAL)
+#endif
+
+#ifndef DMF_FIELD_VAR_LONG
+#define DMF_FIELD_VAR_LONG(VAR_TYPE, VAR_NAME, MAX_VAL)
+#endif
+
+#ifndef DMF_FIELD_VAR_O
+#define DMF_FIELD_VAR_O(VAR_TYPE, VAR_NAME, MAX_VAL)
+#endif
+
+#ifndef DMF_FIELD_VAR_ARRAY
+#define DMF_FIELD_VAR_ARRAY(VAR_TYPE, VAR_NAME, LENGTH)
+#endif
+
+#ifndef DMF_FIELD_VAR_ARRAY_D
+#define DMF_FIELD_VAR_ARRAY_D(VAR_TYPE, VAR_NAME, LENGTH)
+#endif
+
+
+#ifndef DMF_FIELD_STRING
+#define DMF_FIELD_STRING(STR_NAME, LENGTH)
+#endif
+
+#if !defined(DMF_CMD_REQ_SEC) && !defined(DMF_CMD_CNF_SEC) && !defined(DMF_URC_IND_SEC)
+#define DMF_CMD_REQ_SEC
+#define DMF_CMD_CNF_SEC
+#define DMF_URC_IND_SEC
+#endif
+
+#define UNUSED_FIELD 0
+
+#define OTA_MSG_SEGMENT_MAX_LEN 512
+/*Define structures*/
+
+#ifdef __DMF_TC03__
+DMF_APP(1)
+
+ // Define CMD_REQ structure
+ #ifdef DMF_CMD_REQ_SEC
+ DMF_CMD_REQ(dmf_app1_cmd_req_struct, app1_cmd)
+ DMF_FIELD_VAR(kal_uint32, cause, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, call_id, 8)
+ DMF_CMD_REQ_END(dmf_app1_cmd_req_struct)
+ #endif
+
+ // Define CMD_CNF structure
+ #ifdef DMF_CMD_CNF_SEC
+ // for DMF_MISC_CAUSE_STATISTICS_LTE_ATTACH_AND_PDN_PDP
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_LTE_ATTACH_AND_PDN_PDP_CNF, dmf_app1_statistics_lte_attach_and_pdn_pdp_cnf_struct, app1_statistics_lte_attach_and_pdn_pdp_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_attach_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_attach_accept_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_attach_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_attach_3410_expiry_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_ims_pdp_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_ims_pdp_accept_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_ims_pdp_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_ims_pdp_t3380_expiry_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ims_pdp_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ims_pdp_accept_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ims_pdp_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ims_pdp_t3380_expiry_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_ims_pdn_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_ims_pdn_success_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_ims_pdn_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_ims_pdn_t3482_expiry_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ims_pdn_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ims_pdn_success_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ims_pdn_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ims_pdn_t3482_expiry_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tau_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tau_accept_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tau_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, umts_rau_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, umts_rau_accept_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, umts_rau_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, umts_lau_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, umts_lau_accept_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, umts_lau_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_rau_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_rau_accept_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_rau_reject_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_lau_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_lau_accept_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_lau_reject_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_lte_attach_and_pdn_pdp_cnf_struct)
+
+ //DMF_MISC_CAUSE_STATISTICS_PS_PAGING
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_PS_PAGING_CNF, dmf_app1_statistics_ps_paging_cnf_struct, app1_statistics_ps_paging_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_data_sim_paging_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_data_sim_paging_for_volte_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_data_sim_paging_for_sms_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_data_sim_paging_for_detach_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_data_sim_paging_fail_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, non_data_sim_paging_for_others_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_ps_paging_cnf_struct)
+
+ // for DMF_MISC_CAUSE_STATISTICS_RA_FAIL_INFO
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_RA_FAIL_INFO_CNF, dmf_app1_statistics_ra_fail_info_cnf_struct, app1_statistics_ra_fail_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ra_fail_4g_cnt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ra_fail_4g_good_sig_cnt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ra_fail_3g_cnt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ra_fail_3g_good_sig_cnt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ra_fail_2g_cnt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ra_fail_2g_good_sig_cnt, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_ra_fail_info_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_MODEM_STATUS - 0 BASEBAND
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_MODEM_STATUS_BASEBAND_CNF, dmf_app1_statistics_modem_status_baseband_cnf_struct, app1_statistics_modem_status_baseband_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ul_grant_number, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, dl_grant_number, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, cqi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, dlmcs, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, ulmcs, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rb_length, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, snr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ultbsize, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dltbsize, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, ul_ber, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, dl_ber, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, pathloss, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, main_ant_sar, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, div_ant_sar, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, ant_status, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_modem_status_baseband_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_MODEM_STATUS - 2 RLC
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_MODEM_STATUS_RLC_CNF, dmf_app1_statistics_modem_status_rlc_cnf_struct, app1_statistics_modem_status_rlc_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_nw_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nack_num_by_ue_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, miss_num_by_ue_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, retx_num_by_ue_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TxDataPdu_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RxDataPdu_10, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_modem_status_rlc_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_MODEM_STATUS - 3 PDCP
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_MODEM_STATUS_PDCP_CNF, dmf_app1_statistics_modem_status_pdcp_cnf_struct, app1_statistics_modem_status_pdcp_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_ack_rate, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_packet_num_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_avg_time_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, buffer_max_time_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sent_packet_num_10, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_modem_status_pdcp_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_MODEM_STATUS - 4 RRC
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_MODEM_STATUS_RRC_CNF, dmf_app1_statistics_modem_status_rrc_cnf_struct, app1_statistics_modem_status_rrc_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_dl_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_ul_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp_0, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq_0, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_earfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_pci, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_modem_status_rrc_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_PROT_PWR - 0 CONNECTED MODE TIME
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_PROT_PWR_CONNECTED_MODE_TIME_CNF, dmf_app1_statistics_prot_pwr_connected_mode_time_cnf_struct, app1_statistics_prot_pwr_connected_mode_time_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_connected_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_connected_time_good_sig, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_connected_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_connected_time_good_sig, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_connected_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_connected_time_good_sig, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_prot_pwr_connected_mode_time_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_PROT_PWR - 1 TX PWR STEP
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_PROT_PWR_TX_PWR_STEP_CNF, dmf_app1_statistics_prot_pwr_tx_pwr_step_cnf_struct, app1_statistics_prot_pwr_tx_pwr_step_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tx_time_step_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tx_time_step_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tx_time_step_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tx_time_step_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tx_time_step_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tx_time_step_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_tx_time_step_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_tx_time_step_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_tx_time_step_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_tx_time_step_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_tx_time_step_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_tx_time_step_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_tx_time_step_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_tx_time_step_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_tx_time_step_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_tx_time_step_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_tx_time_step_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_tx_time_step_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_tx_time_step_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_tx_time_step_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_tx_time_step_7, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_prot_pwr_tx_pwr_step_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_PROT_PWR - 2 IDLE RESEL CNT
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_PROT_PWR_IDLE_RESEL_CNT_CNF, dmf_app1_statistics_prot_pwr_idle_resel_cnt_cnf_struct, app1_statistics_prot_pwr_idle_resel_cnt_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_idle_resel_cnt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_idle_resel_cnt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_idle_resel_cnt, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_prot_pwr_idle_resel_cnt_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_PROT_PWR - 3 NW SEARCH TIME
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_PROT_PWR_NW_SEARCH_TIME_CNF, dmf_app1_statistics_prot_pwr_nw_search_time_cnf_struct, app1_statistics_prot_pwr_nw_search_time_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_nw_search_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_nw_search_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_nw_search_time, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_prot_pwr_nw_search_time_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_PROT_PWR - 4 IDLE MEAS TIME
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_PROT_PWR_IDLE_MEAS_TIME_CNF, dmf_app1_statistics_prot_pwr_idle_meas_time_cnf_struct, app1_statistics_prot_pwr_idle_meas_time_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_idle_meas_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_idle_meas_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_idle_meas_time, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_prot_pwr_idle_meas_time_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_PROT_PWR - 5 NO SLEEP TIME
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_PROT_PWR_NO_SLEEP_TIME_CNF, dmf_app1_statistics_prot_pwr_no_sleep_time_cnf_struct, app1_statistics_prot_pwr_no_sleep_time_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_1, 9) // HH:MM:SS
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_1, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_2, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_2, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_3, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_3, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_4, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_4, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_5, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_5, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_6, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_6, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_7, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_7, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_8, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_8, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_9, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_9, UNUSED_FIELD)
+ DMF_FIELD_STRING(lte_no_sleep_timestamp_10, 9)
+ DMF_FIELD_VAR(kal_uint32, lte_no_sleep_duration_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, no_sleep_cause_10, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_prot_pwr_no_sleep_time_cnf_struct)
+
+ // DMF_MISC_CAUSE_STATISTICS_PROT_PWR - 6 DRX CYCLE CNT
+ DMF_CMD_CNF(DMF_APP1_STATISTICS_PROT_PWR_DRX_CYCLE_CNT_CNF, dmf_app1_statistics_prot_pwr_drx_cycle_cnt_cnf_struct, app1_statistics_prot_pwr_drx_cycle_cnt_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_drx_factor_cnt_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_drx_factor_cnt_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_drx_factor_cnt_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_drx_factor_cnt_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_drx_factor_cnt_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_drx_factor_cnt_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_drx_factor_cnt_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_drx_factor_cnt_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, wcdma_drx_factor_cnt_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_drx_factor_cnt_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_drx_factor_cnt_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_drx_factor_cnt_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_drx_factor_cnt_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_drx_factor_cnt_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_drx_factor_cnt_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_drx_factor_cnt_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, gsm_drx_factor_cnt_9, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_statistics_prot_pwr_drx_cycle_cnt_cnf_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MT_CSFB
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MT_CSFB_CMD_CNF, dmf_app1_abnormal_mt_csfb_cnf_struct, app1_abnormal_mt_csfb_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mm_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, csfb_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_rrc_rr_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mt_csfb_cnf_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MT_CS
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MT_CS_CMD_CNF, dmf_app1_abnormal_mt_cs_cnf_struct, app1_abnormal_mt_cs_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mm_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_rrc_rr_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mt_cs_cnf_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MO_CSFB_CS
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MO_CSFB_CS_CMD_CNF, dmf_app1_abnormal_mo_csfb_cs_cnf_struct, app1_abnormal_mo_csfb_cs_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, mo_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mm_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, csfb_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, attach_tau_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_rrc_rr_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, vdm_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mo_csfb_cs_cnf_struct)
+
+
+ //DMF_MISC_CAUSE_ABNORMAL_CS_CALL_DROP
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_CS_CALL_DROP_CMD_CNF, dmf_app1_abnormal_cs_call_drop_cnf_struct, app1_abnormal_cs_call_drop_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, rrc_rr_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_cs_call_drop_cnf_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MT_C2K
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MT_C2K_CMD_CNF, dmf_app1_abnormal_mt_c2k_cnf_struct, app1_abnormal_mt_c2k_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(mcc, 3)
+ DMF_FIELD_STRING(mnc, 3)
+ DMF_FIELD_VAR(kal_uint16, sid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pilot_pn_offset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band_class, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, channel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rx_power, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, pilot_ecio, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, c2k_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mt_c2k_cnf_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MO_C2K
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MO_C2K_CMD_CNF, dmf_app1_abnormal_mo_c2k_cnf_struct, app1_abnormal_mo_c2k_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(mcc, 4)
+ DMF_FIELD_STRING(mnc, 4)
+ DMF_FIELD_VAR(kal_uint16, sid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pilot_pn_offset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band_class, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, channel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rx_power, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, pilot_ecio, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, c2k_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, vdm_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mo_c2k_cnf_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_C2K_CALL_DROP
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_C2K_CALL_DROP_CMD_CNF, dmf_app1_abnormal_c2k_call_drop_cnf_struct, app1_abnormal_c2k_call_drop_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(mcc, 3)
+ DMF_FIELD_STRING(mnc, 3)
+ DMF_FIELD_VAR(kal_uint16, sid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pilot_pn_offset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band_class, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, channel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rx_power, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, pilot_ecio, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, c2k_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_c2k_call_drop_cnf_struct)
+
+ //DMF_MISC_CAUSE_ABNORMAL_MT_VOLTE_CALL
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MT_VOLTE_CALL_CMD_CNF, dmf_app1_abnormal_mt_volte_call_cnf_struct, app1_abnormal_mt_volte_call_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_id, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, vops_support, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, voice_bearer_est, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, video_bearer_est, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_conference_call, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, normal_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emergency_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, call_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_call_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdn_state, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_VAR(kal_uint8, speech_codec, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, precondition, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, speech_on, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, disc_tmr_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ul_disc_cnt_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, dl_disc_cnt_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, lw_ho_type, UNUSED_FIELD)
+ DMF_FIELD_STRING(bssid, 19)
+ DMF_FIELD_STRING(ip_address, 65)
+ DMF_FIELD_STRING(pcscf_address, 65)
+ DMF_FIELD_STRING(epdg_address, 65)
+ DMF_FIELD_VAR(kal_uint16, volte_vowifi_handover_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, wo_error, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mt_volte_call_cnf_struct)
+
+ //DMF_MISC_CAUSE_ABNORMAL_MO_VOLTE_CALL
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MO_VOLTE_CALL_CMD_CNF, dmf_app1_abnormal_mo_volte_call_cnf_struct, app1_abnormal_mo_volte_call_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_id, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, vops_support, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, voice_bearer_est, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, video_bearer_est, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_conference_call, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, normal_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emergency_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, call_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_call_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdn_state, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_VAR(kal_uint8, speech_codec, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, precondition, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, speech_on, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, disc_tmr_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ul_disc_cnt_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, dl_disc_cnt_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, lw_ho_type, UNUSED_FIELD)
+ DMF_FIELD_STRING(bssid, 19)
+ DMF_FIELD_STRING(ip_address, 65)
+ DMF_FIELD_STRING(pcscf_address, 65)
+ DMF_FIELD_STRING(epdg_address, 65)
+ DMF_FIELD_VAR(kal_uint16, volte_vowifi_handover_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, wo_error, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, vdm_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mo_volte_call_cnf_struct)
+
+ //DMF_MISC_CAUSE_ABNORMAL_VOLTE_CALL_DROP
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_VOLTE_CALL_DROP_CMD_CNF, dmf_app1_abnormal_volte_call_drop_cnf_struct, app1_abnormal_volte_call_drop_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_id, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, srvcc_fail_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, video_update_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, volte_vowifi_handover_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, vops_support, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, voice_bearer_est, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, video_bearer_est, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_conference_call, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, normal_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emergency_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, call_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_call_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdn_state, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_VAR(kal_uint8, speech_codec, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, precondition, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, speech_on, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, disc_tmr_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ul_disc_cnt_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, dl_disc_cnt_rpt, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, lw_ho_type, UNUSED_FIELD)
+ DMF_FIELD_STRING(bssid, 18)
+ DMF_FIELD_STRING(ip_address, 64)
+ DMF_FIELD_STRING(pcscf_address, 64)
+ DMF_FIELD_STRING(epdg_address, 64)
+ DMF_FIELD_VAR(kal_uint16, wo_error, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_volte_call_drop_cnf_struct)
+
+ //DMF_MISC_CAUSE_ABNORMAL_MT_VOWIFI_CALL
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MT_VOWIFI_CALL_CMD_CNF, dmf_app1_abnormal_mt_vowifi_call_cnf_struct, app1_abnormal_mt_vowifi_call_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_id, UNUSED_FIELD)
+ DMF_FIELD_STRING(bssid, 19)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_conference_call, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, normal_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emergency_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, call_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_call_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdn_state, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_VAR(kal_uint8, speech_codec, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, speech_on, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, lw_ho_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_sig2, UNUSED_FIELD)
+ DMF_FIELD_STRING(ip_address, 65)
+ DMF_FIELD_STRING(pcscf_address, 65)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mt_vowifi_call_cnf_struct)
+
+ //DMF_MISC_CAUSE_ABNORMAL_MO_VOWIFI_CALL
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_MO_VOWIFI_CALL_CMD_CNF, dmf_app1_abnormal_mo_vowifi_call_cnf_struct, app1_abnormal_mo_vowifi_call_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_id, UNUSED_FIELD)
+ DMF_FIELD_STRING(bssid, 19)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_conference_call, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, normal_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emergency_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, call_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_call_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdn_state, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_VAR(kal_uint8, speech_codec, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, speech_on, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, lw_ho_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_sig2, UNUSED_FIELD)
+ DMF_FIELD_STRING(ip_address, 65)
+ DMF_FIELD_STRING(pcscf_address, 65)
+ DMF_FIELD_VAR(kal_uint8, vdm_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_mo_vowifi_call_cnf_struct)
+
+ //DMF_MISC_CAUSE_ABNORMAL_VOWIFI_CALL_DROP
+ DMF_CMD_CNF(DMF_APP1_ABNORMAL_VOWIFI_CALL_DROP_CMD_CNF, dmf_app1_abnormal_vowifi_call_drop_cnf_struct, app1_abnormal_vowifi_call_drop_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_id, UNUSED_FIELD)
+ DMF_FIELD_STRING(bssid, 19)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, video_update_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, volte_vowifi_handover_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_conference_call, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, normal_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emergency_reg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, call_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_call_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdn_state, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_VAR(kal_uint8, speech_codec, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, speech_on, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, lw_ho_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_sig2, UNUSED_FIELD)
+ DMF_FIELD_STRING(ip_address, 65)
+ DMF_FIELD_STRING(pcscf_address, 65)
+ DMF_CMD_CNF_END(dmf_app1_abnormal_vowifi_call_drop_cnf_struct)
+
+
+ //DMF_MISC_CAUSE_IMS_REG_FAIL,
+ DMF_CMD_CNF(DMF_APP1_IMS_REG_FAIL_CMD_CNF, dmf_app1_ims_reg_fail_cnf_struct, app1_ims_reg_fail_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_ims_reg_fail_cnf_struct)
+
+ //DMF_MISC_CAUSE_IMS_REG_SLOW,
+ DMF_CMD_CNF(DMF_APP1_IMS_REG_SLOW_CMD_CNF, dmf_app1_ims_reg_slow_cnf_struct, app1_ims_reg_slow_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, slow_type, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_VAR(kal_uint8, net_type, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_ims_reg_slow_cnf_struct)
+
+ //DMF_MISC_CAUSE_IMS_REG_DEREG,
+ DMF_CMD_CNF(DMF_APP1_IMS_REG_DEREG_CMD_CNF, dmf_app1_ims_reg_dereg_cnf_struct, app1_ims_reg_dereg_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, dereg_cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_VAR(kal_uint8, net_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, report_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dereg_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_ims_reg_dereg_cnf_struct)
+
+ //DMF_MISC_CAUSE_SIM_DETAILED_ERROR_CAUSE,
+ DMF_CMD_CNF(DMF_APP1_SIM_DETAILED_ERROR_INFO_CNF, dmf_app1_sim_detailed_error_info_cnf_struct, app1_sim_detailed_error_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, sim_error_cause, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_sim_detailed_error_info_cnf_struct)
+
+ // for DMF_MISC_CAUSE_CELLULAR_USER_UNAWARE_OOS_REC
+ DMF_CMD_CNF(DMF_APP1_CELLULAR_USER_UNAWARE_OOS_REC_CNF, dmf_app1_cellular_user_unaware_oos_rec_cnf_struct, app1_cellular_user_unaware_oos_rec_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_avg_delay, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, umts_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, umts_avg_delay, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, gsm_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, gsm_avg_delay, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app1_cellular_user_unaware_oos_rec_cnf_struct)
+
+
+ #endif
+
+ // Define URC structure
+ #ifdef DMF_URC_IND_SEC
+ // for DMF_MISC_CAUSE_ABNORMAL_MT_CSFB
+ DMF_URC_IND(DMF_APP1_ABNORMAL_MT_CSFB_IND, dmf_app1_abnormal_mt_csfb_ind_struct, app1_abnormal_mt_csfb_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_abnormal_mt_csfb_ind_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MT_CS
+ DMF_URC_IND(DMF_APP1_ABNORMAL_MT_CS_IND, dmf_app1_abnormal_mt_cs_ind_struct, app1_abnormal_mt_cs_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_abnormal_mt_cs_ind_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MT_C2K
+ DMF_URC_IND(DMF_APP1_ABNORMAL_MT_C2K_IND, dmf_app1_abnormal_mt_c2k_ind_struct, app1_abnormal_mt_c2k_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_abnormal_mt_c2k_ind_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MT_VOLTE_CALL
+ DMF_URC_IND(DMF_APP1_ABNORMAL_MT_VOLTE_CALL_IND, dmf_app1_abnormal_mt_volte_call_ind_struct, app1_abnormal_mt_volte_call_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_abnormal_mt_volte_call_ind_struct)
+
+ // for DMF_MISC_CAUSE_ABNORMAL_MT_VOWIFI_CALL
+ DMF_URC_IND(DMF_APP1_ABNORMAL_MT_VOWIFI_CALL_IND, dmf_app1_abnormal_mt_vowifi_call_ind_struct, app1_abnormal_mt_vowifi_call_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_abnormal_mt_vowifi_call_ind_struct)
+
+ // for DMF_MISC_CAUSE_IMS_REG_FAIL
+ DMF_URC_IND(DMF_APP1_IMS_REG_FAIL_IND, dmf_app1_ims_reg_fail_ind_struct, app1_ims_reg_fail_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, reg_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rereg_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, fail_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdn_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, is_ho_reg, UNUSED_FIELD)
+ DMF_FIELD_STRING(sip_flow, 512)
+ DMF_FIELD_STRING(apn_string, 100)
+ DMF_FIELD_STRING(ip_address, 65)
+ DMF_FIELD_STRING(pcscf_address, 65)
+ DMF_FIELD_VAR(kal_uint8, net_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reg_fail_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, report_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reg_fail_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pdn_fail_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sip_fail_count, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_ims_reg_fail_ind_struct)
+
+ // for DMF_MISC_CAUSE_IMS_REG_SLOW
+ DMF_URC_IND(DMF_APP1_IMS_REG_SLOW_IND, dmf_app1_ims_reg_slow_ind_struct, app1_ims_reg_slow_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_ims_reg_slow_ind_struct)
+
+ // for DMF_MISC_CAUSE_IMS_REG_DEREG
+ DMF_URC_IND(DMF_APP1_IMS_DEREG_IND, dmf_app1_ims_dereg_ind_struct, app1_ims_dereg_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_ims_dereg_ind_struct)
+
+ //for DMF_MISC_CAUSE_COMMON_DSBP
+ DMF_URC_IND(DMF_APP1_MCF_INFO_IND, dmf_app1_mcf_info_ind_struct, app1_mcf_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, trigger_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, config_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, result, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, start_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, end_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_interval, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, path_type, UNUSED_FIELD)
+ DMF_FIELD_STRING(file_name, 128)
+ DMF_URC_IND_END(dmf_app1_mcf_info_ind_struct)
+
+ //for DMF_MISC_CAUSE_COMMON_DSBP
+ DMF_URC_IND(DMF_APP1_DSBP_INFO_IND, dmf_app1_dsbp_info_ind_struct, app1_dsbp_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, trigger_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, result, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sbp_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sim_sbp_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, start_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, end_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_interval, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_dsbp_info_ind_struct)
+
+ // for DMF_MISC_CAUSE_CELLULAR_NW_REJECT_CAUSE
+ DMF_URC_IND(DMF_APP1_CELLULAR_NW_REJ_CAUSE_IND, dmf_app1_cellular_nw_rej_cause_ind_struct, app1_cellular_nw_rej_cause_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, event, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, original_mm_emm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, converted_mm_emm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_ps_sim_valid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_cs_sim_valid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, reject_domain, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_standalone_pdn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, esm_fail_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, pdn_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, apn_len, UNUSED_FIELD)
+ DMF_FIELD_STRING(apn_string, 100)
+ DMF_URC_IND_END(dmf_app1_cellular_nw_rej_cause_ind_struct)
+
+ // for DMF_MISC_CAUSE_EMERG_CALL_EVENT
+ DMF_URC_IND(DMF_APP1_EMERG_CALL_EVENT_IND, dmf_app1_emerg_call_event_ind_struct, app1_emerg_call_event_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, sim_event, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, srv_status, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_bool, nw_emerg_ims_support, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, nw_emerg_volte_support, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, ue_emerg_volte_support, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, ue_emerg_vowifi_support, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_emerg_call_event_ind_struct)
+
+ // for DMF_MISC_CAUSE_EMERG_CALL_DOMAIN_SELECT_RESULT
+ DMF_URC_IND(DMF_APP1_EMERG_CALL_DOMAIN_SELECT_RESULT_IND, dmf_app1_emerg_call_domain_select_result_ind_struct, app1_emerg_call_domain_select_result_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, domain_attempt_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, domain_attempt_n, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, domain, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, result, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_emerg_call_domain_select_result_ind_struct)
+
+ // for DMF_MISC_CAUSE_EMERG_PLMN_CHANGE_INFO
+ DMF_URC_IND(DMF_APP1_EMERG_PLMN_CHANGE_INFO_IND, dmf_app1_emerg_plmn_change_info_ind_struct, app1_emerg_plmn_change_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, plmn_count, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_1, 7)
+ DMF_FIELD_STRING(plmnid_2, 7)
+ DMF_FIELD_STRING(plmnid_3, 7)
+ DMF_FIELD_STRING(plmnid_4, 7)
+ DMF_FIELD_STRING(plmnid_5, 7)
+ DMF_FIELD_STRING(plmnid_6, 7)
+ DMF_FIELD_STRING(plmnid_7, 7)
+ DMF_FIELD_STRING(plmnid_8, 7)
+ DMF_FIELD_STRING(plmnid_9, 7)
+ DMF_FIELD_STRING(plmnid_10, 7)
+ DMF_URC_IND_END(dmf_app1_emerg_plmn_change_info_ind_struct)
+
+ // for DMF_MISC_CAUSE_EMERG_IMS_380
+ // urn length aligns VOLTE_MAX_URI_LENGTH
+ DMF_URC_IND(DMF_APP1_EMERG_IMS_380_IND, dmf_app1_emerg_ims_380_ind_struct, app1_emerg_ims_380_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(nw_380_urn, 128)
+ DMF_URC_IND_END(dmf_app1_emerg_ims_380_ind_struct)
+
+ // for DMF_MISC_CAUSE_EMERG_IMS_380_RETRY_DOMAIN_FAIL
+ DMF_URC_IND(DMF_APP1_EMERG_IMS_380_RETRY_DOMAIN_FAIL_IND, dmf_app1_emerg_ims_380_retry_domain_fail_ind_struct, app1_emerg_ims_380_retry_domain_fail_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_type, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_emerg_ims_380_retry_domain_fail_ind_struct)
+
+ // for DMF_MISC_CAUSE_EMERG_IMS_380_URN_UNSYNC
+ // urn length aligns VOLTE_MAX_URI_LENGTH
+ DMF_URC_IND(DMF_APP1_EMERG_IMS_380_URN_UNSYNC_IND, dmf_app1_emerg_ims_380_urn_unsync_ind_struct, app1_emerg_ims_380_urn_unsync_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(nw_380_urn, 128)
+ DMF_FIELD_STRING(ue_invite_urn, 128)
+ DMF_URC_IND_END(dmf_app1_emerg_ims_380_urn_unsync_ind_struct)
+
+ // for DMF_MISC_CAUSE_EMERG_SRVCC_OCCUR
+ DMF_URC_IND(DMF_APP1_EMERG_SRVCC_OCCUR_IND, dmf_app1_emerg_srvcc_occur_ind_struct, app1_emerg_srvcc_occur_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_emerg_srvcc_occur_ind_struct)
+
+ // for DMF_MISC_CAUSE_EMERG_IMS_CALL_ANONYMOUS
+ DMF_URC_IND(DMF_APP1_EMERG_IMS_CALL_ANONYMOUS_IND, dmf_app1_emerg_ims_call_anonymous_ind_struct, app1_emerg_ims_call_anonymous_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_emerg_ims_call_anonymous_ind_struct)
+
+ // for DMF_MISC_CAUSE_CELLULAR_OOS_DELAY
+ DMF_URC_IND(DMF_APP1_CELLULAR_OOS_DELAY_IND, dmf_app1_cellular_oos_delay_ind_struct, app1_cellular_oos_delay_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, active_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sig2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, as_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_delay, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_cellular_oos_delay_ind_struct)
+
+ // for DMF_MISC_CAUSE_CALL_VOICE_QUALITY
+ DMF_URC_IND(DMF_APP1_CALL_VOICE_QUALITY_IND, dmf_app1_call_voice_quality_ind_struct, app1_call_voice_quality_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, status_0_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, status_0_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, status_1_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, status_1_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, status_2_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, status_2_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, status_3_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, status_3_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, status_4_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, status_4_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, status_5_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, status_5_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, status_6_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, status_7_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, awb_frmtype_rx_sph_bad, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, awb_frmtype_rx_sph_prbly_deg, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, amr_frmtype_rx_sph_deg, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, amr_frmtype_rx_sph_onset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, amr_frmtype_rx_sph_bad, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, eva_rate_erasure, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, evb_rate_erasure, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fr_bfi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, efr_bfi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, hr_bfi, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint32, evs_bfi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, awb_homing, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, amr_homing, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fr_homing, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, efr_homing, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, hr_homing, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint32, packet_loss, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, jitter_loss, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, speech_reset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, crc_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, speech_ul_mute_posenh, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, enh_robust_status_pre, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ehn_robust_status_pos, UNUSED_FIELD)
+
+ DMF_URC_IND_END(dmf_app1_call_voice_quality_ind_struct)
+
+ // for DMF_MISC_CAUSE_DATA_PDP_ERROR_OCCUR
+ DMF_URC_IND(DMF_APP1_DATA_PDP_ERROR_OCCUR_IND, dmf_app1_data_pdp_error_occur_ind_struct, app1_data_pdp_error_occur_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, cid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdp_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_data_pdp_error_occur_ind_struct)
+
+ DMF_URC_IND(DMF_APP1_CELL_INFO_WHETHER_ENDC_SUPPORT_IND, dmf_app1_cell_info_whether_endc_support_ind_struct, app1_cell_info_whether_endc_support_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_1, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_1, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_1, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_2, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_2, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_2, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_3, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_3, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_3, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_4, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_4, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_4, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_5, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_5, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_5, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_6, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_6, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_6, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_7, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_7, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_7, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_8, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_8, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_8, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_9, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_9, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_9, UNUSED_FIELD)
+
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp_10, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid_10, 7)
+ DMF_FIELD_VAR(kal_uint16, tracking_area_code_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lte_band_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lte_rsrp_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, lte_rsrq_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_band_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, nr_rsrp_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, nr_rsrq_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_sib2_for_selected_plmn_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_support_in_eps_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, endc_activated_10, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_cell_info_whether_endc_support_ind_struct)
+
+ DMF_URC_IND(DMF_APP1_PDET_DETECTION_IND, dmf_app1_pdet_detection_ind_struct, app1_pdet_detection_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, counter, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_pdet_detection_ind_struct)
+
+ // dmf_app1_voice_quality_ltecsr_ind_struct
+ DMF_URC_IND(DMF_APP1_VOICE_QUALITY_LTECSR_IND, dmf_app1_voice_quality_ltecsr_ind_struct, app1_voice_quality_ltecsr_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, rat_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, bw_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, earfcn_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_1, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint32, rat_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, bw_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, earfcn_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_2, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint32, rat_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, bw_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, earfcn_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_3, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint32, rat_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, bw_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, earfcn_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_4, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint32, rat_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, bw_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, earfcn_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_5, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint32, duration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pkt_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pkt_loss, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, byte_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mean_jitter, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, max_jitter, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cum_avg_pkt_size, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app1_voice_quality_ltecsr_ind_struct)
+
+ #endif
+
+DMF_APP_END
+#endif //for __DMF_TC03__
+
+
+#ifdef __DMF_TC16__
+DMF_APP(2)
+
+ // Define CMD_REQ structure
+ #ifdef DMF_CMD_REQ_SEC
+ DMF_CMD_REQ(dmf_app2_cmd_req_struct, app2_cmd)
+ DMF_FIELD_VAR(kal_uint32, cause, 2000)
+ DMF_FIELD_VAR_O(kal_int32, param_1, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_2, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_3, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_4, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_5, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_6, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_7, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_8, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_9, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_10, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_11, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_12, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_13, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_14, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_15, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_16, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_17, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_18, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_19, UNUSED_FIELD)
+ DMF_FIELD_VAR_O(kal_int32, param_20, UNUSED_FIELD)
+ /*DMF_FIELD_VAR_O(kal_uint32, para_0, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_1, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_2, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_3, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_4, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_5, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_6, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_7, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_8, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_9, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_10, 2000)
+ DMF_FIELD_VAR_O(kal_uint32, para_11, 2000)*/
+ DMF_CMD_REQ_END(dmf_app2_cmd_req_struct)
+ #endif
+
+ // Define CMD_CNF structure
+ #ifdef DMF_CMD_CNF_SEC
+ //for DMF_MISC16_CAUSE_REQ_QUERY_MODULE MODULE_ID_COMMONINFO
+ DMF_CMD_CNF(DMF_APP2_KPI_COMMONINFO_CNF, dmf_app2_kpi_commoninfo_cnf_struct, dmf_app2_kpi_commoninfo_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, module_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mGSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mGSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mGSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mGSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_0T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mCSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mCSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mCSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mCSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mHSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mHSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mHSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mHSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_0T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_0T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_cT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_cT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_gT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_gT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_uT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_uT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_tT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_tT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_lT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_lT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_enT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_nrT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_nrT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_oosT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_oosT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TauSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TauC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LAttachC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LAttachSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RauC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RauSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LuC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LuSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GuC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GuSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_30sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_60sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_120sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_Over120sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_30sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_60sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_120sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_Over120sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, PdnConSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, PdnConC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_searching_times, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_searching_duration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_searching_success_rate, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_SA_service_duration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_SA_service_rate, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_initial_reg_succ, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_initial_reg_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_mobility_reg_succ, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_mobility_reg_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_NR_RACH_succ, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_NR_RACH_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_NR_RLF, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_NR_Reest, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LTE_to_NR_Resel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_to_LTE_Resel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LTE_to_NR_HO, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_to_LTE_HO, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LTE_to_NR_Redir, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_to_LTE_Redir, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app2_kpi_commoninfo_cnf_struct)
+
+ // for DMF_MISC16_CAUSE_REQ_QUERY_MODULE MODULE_ID_CALL
+ DMF_CMD_CNF(DMF_APP2_KPI_CALL_CNF, dmf_app2_kpi_call_cnf_struct, dmf_app2_kpi_call_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, module_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsPgC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsPgC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtSetupC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtSetupC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtSetup3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtSetup10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtSetupOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtSetup3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtSetup10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtSetupOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LIpMtInvC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WIpMtInvC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrIpMtInvC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtRigCnfC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtRigCnfC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtRigCnfC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtToRig3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtToRig10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtToRigOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtToRig3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtToRig10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtToRigOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtToRig3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtToRig10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtToRigOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPgC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPgSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPg1sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPg3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPgOver3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtP2ST, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtP2ST, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsTmsMtI2RT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsTmsMtI2RT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsTmsMtI2RT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ImsMtPageT, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app2_kpi_call_cnf_struct)
+
+ // for DMF_MISC16_CAUSE_REQ_QUERY_MODULE MODULE_ID_PWR
+ DMF_CMD_CNF(DMF_APP2_KPI_PWR_CNF, dmf_app2_kpi_pwr_cnf_struct, dmf_app2_kpi_pwr_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, module_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_rrcConn10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_rrcConn20sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_rrcConnMore20sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_rrcConnC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_csChangedC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_psChangedC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_iRatC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_cellUpdateC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_nwSrchC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_nwSrchT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_lteRrcConnT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_psRegT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_csRegT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_psNoRegT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_csNoRegT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_sigGrid0T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_EndcActT, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app2_kpi_pwr_cnf_struct)
+
+ //for DMF_MISC16_CAUSE_OTHER_RF_MIPI_HW_FAILED
+ DMF_CMD_CNF(DMF_APP2_OTHER_RF_MIPI_HW_FAILED_CNF, dmf_app2_other_rf_mipi_hw_failed_cnf_struct, app2_other_rf_mipi_hw_failed_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, is_abnormal, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, number_of_broken_component, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint16, comp_id, 30)
+ DMF_CMD_CNF_END(dmf_app2_other_rf_mipi_hw_failed_cnf_struct)
+
+ // for DMF_MISC16_CAUSE_NR_PDCP_TPUT mode1/2
+ DMF_CMD_CNF(DMF_APP2_NR_PDCP_THROUGHPUT_CNF, dmf_app2_nr_pdcp_throughput_cause_info_cnf_struct, dmf_app2_nr_pdcp_throughput_cause_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, current_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_speed, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_speed, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app2_nr_pdcp_throughput_cause_info_cnf_struct)
+
+ // for DMF_MISC16_CAUSE_NR_PDCP_TPUT mode4
+ DMF_CMD_CNF(DMF_APP2_NR_PDCP_THROUGHPUT_SECTION_CNF, dmf_app2_nr_pdcp_throughput_cause_info_throughput_section_ind_struct, dmf_app2_nr_pdcp_throughput_cause_info_throughput_section_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_1, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, count_1, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_2, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, count_2, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_3, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, count_3, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_4, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, count_4, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_5, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, count_5, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_6, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, count_6, 10)
+ DMF_CMD_CNF_END(dmf_app2_nr_pdcp_throughput_cause_info_throughput_section_ind_struct)
+
+ // for DMF_MISC16_CAUSE_NR_PDCP_TPUT mode6
+ DMF_CMD_CNF(DMF_APP2_NR_PDCP_THROUGHPUT_MAX_TPUTS_CNF, dmf_app2_nr_pdcp_throughput_cause_info_max_tputs_ind_struct, dmf_app2_nr_pdcp_throughput_cause_info_max_tputs_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, number_of_max_tputs, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_1, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, max_tputs_1, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_2, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, max_tputs_2, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_3, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, max_tputs_3, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_4, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, max_tputs_4, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_5, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, max_tputs_5, 10)
+ DMF_FIELD_VAR(kal_uint32, rat_and_transmission_6, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, max_tputs_6, 10)
+ DMF_CMD_CNF_END(dmf_app2_nr_pdcp_throughput_cause_info_max_tputs_ind_struct)
+
+ // for DMF_MISC16_CAUSE_NR_PDCP_VOLUMN
+ DMF_CMD_CNF(DMF_APP2_NR_PDCP_VOLUMN_CNF, dmf_app2_nr_pdcp_volumn_cnf_struct, dmf_app2_nr_pdcp_volumn_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsa_ul, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsa_dl, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sa_ul, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sa_dl, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_ul, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_dl, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app2_nr_pdcp_volumn_cnf_struct)
+
+ // for DMF_MISC16_CAUSE_NR_NW_CONFIG
+ DMF_CMD_CNF(DMF_APP2_NR_NW_CONFIG_CNF, dmf_app2_nr_nw_config_cnf_struct, dmf_app2_nr_nw_config_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, lteOnDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, lteInactT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, lteLongDrxCycle, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, lteShortDrxCycle, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, nsaNrCellPCI, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, nsaNrCellARFCN, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, nsaNrCellTAC, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, nsaNrCellCID, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, nsaNrMeasConfigS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasCount, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasConfigExistDuration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasConfigNonExistDuration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteDataInactTimer, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, nrOnDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, nrInactT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, nrLongDrxCycle, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, nrShortDrxCycle, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrT310, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrN310, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrN311, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app2_nr_nw_config_cnf_struct)
+
+ DMF_CMD_CNF(DMF_APP2_NR_NW_MEAS_CONFIG_CNF, dmf_app2_nr_nw_meas_config_cnf_struct, dmf_app2_nr_nw_meas_config_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasCfgStart, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasCfgEnd, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_1, 7) // nsaNrMeasCfg including below 7 parameters
+/*
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasARFCN_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasReportType_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasPeriodical_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasTriggerQty_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasThreshold_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasHysteresis_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nsaNrMeasTimeToTrigger_1, UNUSED_FIELD)
+*/
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_2, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_3, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_4, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_5, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_6, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_7, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_8, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_9, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_10, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_11, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_12, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_13, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_14, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_15, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_16, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_17, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_18, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_19, 7)
+ DMF_FIELD_VAR_ARRAY(kal_uint32, nsaNrMeasCfg_20, 7)
+ DMF_CMD_CNF_END(dmf_app2_nr_nw_meas_config_cnf_struct)
+
+ // for DMF_MISC16_CAUSE_DEEP_SLEEP_MODE_STATISTICS
+ DMF_CMD_CNF(DMF_APP2_DEEP_SLEEP_MODE_STATISTICS_CNF, dmf_app2_deep_sleep_mode_statistics_cnf_struct, dmf_app2_deep_sleep_mode_statistics_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrIdleDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrNoSvcDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteIdleDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteNoSvcDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mdNoSvcDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_EMC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_HPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOD, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOVoC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOViC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOSMS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MPSPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MCSPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_EMC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_HPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOD, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOVoC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOViC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOSMS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MPSPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MCSPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_EMC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_HPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_MT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_MOS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_MOD, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_MOVoC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_EMC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_HPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_MT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_MOS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_MOD, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_MOVoC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, intraLtePingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, intraNrPingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteNrPingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte3gPingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte2gPingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, idleOosC, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app2_deep_sleep_mode_statistics_cnf_struct)
+ #endif
+
+ // Define URC structure
+ #ifdef DMF_URC_IND_SEC
+ //for DMF_MISC16_CAUSE_REQ_QUERY_MODULE MODULE_ID_COMMONINFO
+ DMF_URC_IND(DMF_APP2_KPI_COMMONINFO_IND, dmf_app2_kpi_commoninfo_ind_struct, dmf_app2_kpi_commoninfo_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, module_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mGSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mGSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mGSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mGSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_0T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mWSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mCSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mCSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mCSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mCSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mHSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mHSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mHSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mHSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_0T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mLSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_0T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_1T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_2T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_3T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mNrSig_4T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_cT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_cT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_gT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_gT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_uT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_uT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_tT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_tT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_lT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_lT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_enT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_nrT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_nrT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Cs_oosT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Ps_oosT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TauSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, TauC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LAttachC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LAttachSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RauC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RauSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LuC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LuSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GuC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GuSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_30sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_60sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_120sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Srch_Over120sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_30sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_60sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_120sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, RmSrch_Over120sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, PdnConSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, PdnConC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_searching_times, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_searching_duration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_searching_success_rate, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_SA_service_duration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_SA_service_rate, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_initial_reg_succ, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_initial_reg_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_mobility_reg_succ, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_mobility_reg_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_NR_RACH_succ, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_NR_RACH_fail, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_NR_RLF, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, Count_of_NR_Reest, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LTE_to_NR_Resel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_to_LTE_Resel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LTE_to_NR_HO, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_to_LTE_HO, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LTE_to_NR_Redir, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NR_to_LTE_Redir, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_kpi_commoninfo_ind_struct)
+
+ // for DMF_MISC16_CAUSE_REQ_QUERY_MODULE MODULE_ID_CALL
+ DMF_URC_IND(DMF_APP2_KPI_CALL_IND, dmf_app2_kpi_call_ind_struct, dmf_app2_kpi_call_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, module_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsPgC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsPgC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtSetupC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtSetupC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtSetup3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtSetup10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtSetupOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtSetup3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtSetup10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtSetupOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LIpMtInvC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WIpMtInvC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrIpMtInvC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtRigCnfC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtRigCnfC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtRigCnfC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtMissC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtToRig3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtToRig10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsMtToRigOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtToRig3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtToRig10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsMtToRigOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtToRig3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtToRig10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsMtToRigOver10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPgC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPgSucC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPg1sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPg3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LteMtPgOver3sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, _1xCsMtP2ST, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, GtwCsMtP2ST, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, LImsTmsMtI2RT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, WImsTmsMtI2RT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, NrImsTmsMtI2RT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ImsMtPageT, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_kpi_call_ind_struct)
+
+ // for DMF_MISC16_CAUSE_REQ_QUERY_MODULE MODULE_ID_PWR
+ DMF_URC_IND(DMF_APP2_KPI_PWR_IND, dmf_app2_kpi_pwr_ind_struct, dmf_app2_kpi_pwr_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, module_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_rrcConn10sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_rrcConn20sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_rrcConnMore20sC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_rrcConnC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_csChangedC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_psChangedC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_iRatC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_cellUpdateC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_nwSrchC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_nwSrchT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_lteRrcConnT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_psRegT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_csRegT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_psNoRegT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_csNoRegT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_sigGrid0T, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, MD_EndcActT, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_kpi_pwr_ind_struct)
+
+ // for DMF_MISC16_CAUSE_LTE_HAND_OVER_FAILURE
+ DMF_URC_IND(DMF_APP2_LTE_HAND_OVER_FAILURE_IND, dmf_app2_lte_hand_over_failure_ind_struct, app2_lte_hand_over_failure_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, ho_result, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_hand_over_failure_ind_struct)
+
+ //for DMF_MISC16_CAUSE_LTE_CELL_BAR
+ DMF_URC_IND(DMF_APP2_LTE_CELL_BAR_IND, dmf_app2_lte_cell_bar_ind_struct, app2_lte_cell_bar_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, bar_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, bar_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ext_wait_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, est_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, ac_bar_type, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_cell_bar_ind_struct)
+
+ //for DMF_MISC16_CAUSE_LTE_REESTABLISHMENT_FAILURE
+ DMF_URC_IND(DMF_APP2_LTE_REESTABLISHMENT_FAILURE_IND, dmf_app2_lte_restablishment_failure_ind_struct, app2_lte_restablishment_failure_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, expired_timer, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_length, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_restablishment_failure_ind_struct)
+
+ //for DMF_MISC16_CAUSE_LTE_MOD3_INTERFERENCE
+ DMF_URC_IND(DMF_APP2_LTE_MOD3_INTERFERENCE_IND, dmf_app2_lte_mod3_interference_ind_struct, app2_lte_mod3_interference_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, neighbor_cell_number, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, neighbor_cell_1st_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, neighbor_cell_1st_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, neighbor_cell_1st_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, neighbor_cell_2nd_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, neighbor_cell_2nd_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, neighbor_cell_2nd_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, neighbor_cell_3rd_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, neighbor_cell_3rd_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, neighbor_cell_3rd_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_mod3_interference_ind_struct)
+
+ //for DMF_MISC16_CAUSE_LTE_RLC_UL_RLF
+ DMF_URC_IND(DMF_APP2_LTE_RLC_UL_RLF_IND, dmf_app2_lte_rlc_ul_rlf_ind_struct, app2_lte_rlc_ul_rlf_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_rlc_ul_rlf_ind_struct)
+
+ //for DMF_MISC16_CAUSE_LTE_NARROW_BANDWIDTH_SERVING_CELL
+ DMF_URC_IND(DMF_APP2_LTE_NARROW_BANDWIDTH_SERVING_CELL_IND, dmf_app2_lte_narrow_bandwidth_serving_cell_ind_struct, app2_lte_narrow_bandwidth_serving_cell_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, dl_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, ul_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_narrow_bandwidth_serving_cell_ind_struct)
+
+ //for DMF_MISC16_CAUSE_LTE_BW_MONITORING_INFO
+ DMF_URC_IND(DMF_APP2_LTE_BW_MONITORING_IND, dmf_app2_lte_bw_monitoring_ind_struct, app2_lte_bw_monitoring_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, conn_large_bw_cell_stayed_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, conn_small_bw_cell_stayed_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conn_change_to_large_bw_cell_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conn_change_to_small_bw_cell_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conn_block_to_small_bw_cell_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conn_accelerate_to_large_bw_cell_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, idle_large_bw_cell_stayed_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, idle_small_bw_cell_stayed_time, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, idle_change_to_large_bw_cell_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, idle_change_to_small_bw_cell_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, idle_block_to_small_bw_cell_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, idle_accelerate_to_large_bw_cell_count, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_bw_monitoring_ind_struct)
+
+ //for DMF_MISC16_CAUSE_LTE_CUSTOM_CELL_BAR
+ DMF_URC_IND(DMF_APP2_LTE_CUSTOM_CELL_BAR_IND, dmf_app2_lte_custom_cell_bar_ind_struct, app2_lte_custom_cell_bar_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, bar_duration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, earfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pci, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, protocol_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bar_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, fake_cell_ind, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_custom_cell_bar_ind_struct)
+
+ // for DMF_MISC16_CAUSE_LTE_TRIGGER_REL_RESULT
+ DMF_URC_IND(DMF_APP2_LTE_TRIGGER_REL_RESULT_IND, dmf_app2_lte_trigger_rel_result_ind_struct, app2_lte_trigger_rel_result_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, a2_success_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, a2_failure_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, a2_success_rate, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_lte_trigger_rel_result_ind_struct)
+
+ //for DMF_MISC16_CAUSE_DATA_CALL_IA_APN_ERROR
+ DMF_URC_IND(DMF_APP2_DATA_CALL_IA_APN_ERROR_IND, dmf_app2_data_call_ia_apn_error_ind_struct, app2_data_call_ia_apn_error_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, error_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_data_call_ia_apn_error_ind_struct)
+
+ //for DMF_MISC16_CAUSE_DATA_CALL_PDN_PDP_DEACTIVATION_ERROR
+ DMF_URC_IND(DMF_APP2_DATA_CALL_PDN_PDP_DEACT_ERROR_IND, dmf_app2_data_call_pdn_pdp_deact_error_ind_struct, app2_data_call_pdn_pdp_deact_error_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, error_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_data_call_pdn_pdp_deact_error_ind_struct)
+
+ //for DMF_MISC16_CAUSE_DATA_CALL_PDN_PDP_ACTIVATION_ERROR
+ DMF_URC_IND(DMF_APP2_DATA_CALL_PDN_PDP_ACT_ERROR_IND, dmf_app2_data_call_pdn_pdp_act_error_ind_struct, app2_data_call_pdn_pdp_act_error_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, error_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_data_call_pdn_pdp_act_error_ind_struct)
+
+ //for DMF_MISC16_CAUSE_MOBILITY_MANAGEMENT_LAU_REJECT
+ DMF_URC_IND(DMF_APP2_MOBILITY_MANAGEMENT_LAU_REJECT_IND, dmf_app2_mobility_management_lau_reject_ind_struct, app2_mobility_management_lau_reject_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lu_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conv_reject_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, orig_reject_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_mobility_management_lau_reject_ind_struct)
+
+ //for DMF_MISC16_CAUSE_MOBILITY_MANAGEMENT_RAU_REJECT
+ DMF_URC_IND(DMF_APP2_MOBILITY_MANAGEMENT_RAU_REJECT_IND, dmf_app2_mobility_management_rau_reject_ind_struct, app2_mobility_management_rau_reject_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, rau_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conv_reject_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, orig_reject_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_mobility_management_rau_reject_ind_struct)
+
+ //for DMF_MISC16_CAUSE_MOBILITY_MANAGEMENT_TAU_REJECT
+ DMF_URC_IND(DMF_APP2_MOBILITY_MANAGEMENT_TAU_REJECT_IND, dmf_app2_mobility_management_tau_reject_ind_struct, app2_mobility_management_tau_reject_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, reject_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conv_reject_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, orig_reject_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_mobility_management_tau_reject_ind_struct)
+
+ //for DMF_MISC16_CAUSE_MOBILITY_MANAGEMENT_ATTACH_REJECT
+ DMF_URC_IND(DMF_APP2_MOBILITY_MANAGEMENT_ATTACH_REJECT_IND, dmf_app2_mobility_management_attach_reject_ind_struct, app2_mobility_management_attach_reject_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, reject_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conv_reject_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, orig_reject_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_mobility_management_attach_reject_ind_struct)
+
+ //for DMF_MISC16_CAUSE_MOBILITY_MANAGEMENT_AUTH_FAILURE
+ DMF_URC_IND(DMF_APP2_MOBILITY_MANAGEMENT_AUTH_FAILURE_IND, dmf_app2_mobility_management_auth_failure_ind_struct, app2_mobility_management_auth_failure_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, auth_reject_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_mobility_management_auth_failure_ind_struct)
+
+ //for DMF_MISC16_CAUSE_MOBILITY_MANAGEMENT_SERVICE_REJECT
+ DMF_URC_IND(DMF_APP2_MOBILITY_MANAGEMENT_SERVICE_REJECT_IND, dmf_app2_mobility_management_service_reject_ind_struct, app2_mobility_management_service_reject_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, reject_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conv_reject_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, orig_reject_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_mobility_management_service_reject_ind_struct)
+
+ //for DMF_MISC16_CAUSE_MOBILITY_MANAGEMENT_ABNORMAL_DETACH
+ DMF_URC_IND(DMF_APP2_MOBILITY_MANAGEMENT_ABNORMAL_DETACH_IND, dmf_app2_mobility_management_abnormal_detach_ind_struct, app2_mobility_management_abnormal_detach_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, detach_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conv_reject_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, orig_reject_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_mobility_management_abnormal_detach_ind_struct)
+
+ //for DMF_MISC16_CAUSE_DATA_SERVICE_UL_PDCP_TIMER_DISCARD
+ DMF_URC_IND(DMF_APP2_DATA_SERVICE_UL_PDCP_TIMER_DISCARD_IND, dmf_app2_data_service_ul_pdcp_timer_discard_ind_struct, app2_data_service_ul_pdcp_timer_discard_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, ims_call_exist, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_data_service_ul_pdcp_timer_discard_ind_struct)
+
+ //for DMF_MISC16_CAUSE_DATA_SERVICE_UL_PDCP_OUT_OF_BUFFER
+ DMF_URC_IND(DMF_APP2_DATA_SERVICE_UL_PDCP_OUT_OF_BUFFER_IND, dmf_app2_data_service_ul_pdcp_out_of_buffer_ind_struct, app2_data_service_ul_pdcp_out_of_buffer_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, ims_call_exist, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_data_service_ul_pdcp_out_of_buffer_ind_struct)
+
+ //for DMF_MISC16_CAUSE_DATA_SERVICE_UL_PDCP_ONE_WAY_PASS
+ DMF_URC_IND(DMF_APP2_DATA_SERVICE_UL_PDCP_ONE_WAY_PASS_IND, dmf_app2_data_service_ul_pdcp_one_way_pass_ind_struct, app2_data_service_ul_pdcp_one_way_pass_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, ims_call_exist, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_data_service_ul_pdcp_one_way_pass_ind_struct)
+
+ //for DMF_MISC16_CAUSE_DATA_SERVICE_DL_HIGH_DL_BLER
+ DMF_URC_IND(DMF_APP2_DATA_SERVICE_DL_HIGH_DL_BLER_IND, dmf_app2_data_service_dl_high_dl_bler_ind_struct, app2_data_service_dl_high_dl_bler_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, ims_call_exist, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_data_service_dl_high_dl_bler_ind_struct)
+
+ //for DMF_MISC16_CAUSE_CALL_FAIL_MT_CSFB
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_MT_CSFB_IND, dmf_app2_call_fail_mt_csfb_ind_struct, app2_call_fail_mt_csfb_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, specific_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_rrc_rr_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, csfb_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_mt_csfb_ind_struct)
+
+ //for DMF_MISC16_CAUSE_CALL_FAIL_MT_CS
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_MT_CS_IND, dmf_app2_call_fail_mt_cs_ind_struct, app2_call_fail_mt_cs_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, specific_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_rrc_rr_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_mt_cs_ind_struct)
+
+ //for DMF_MISC16_CAUSE_CALL_FAIL_MO_CSFB
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_MO_CSFB_IND, dmf_app2_call_fail_mo_csfb_ind_struct, app2_call_fail_mo_csfb_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, specific_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_rrc_rr_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, csfb_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_mo_csfb_ind_struct)
+
+ //for DMF_MISC16_CAUSE_CALL_FAIL_MO_CS
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_MO_CS_IND, dmf_app2_call_fail_mo_cs_ind_struct, app2_call_fail_mo_cs_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, specific_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_rrc_rr_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_mo_cs_ind_struct)
+
+ //for DMF_MISC16_CAUSE_CALL_FAIL_CS
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_CS_IND, dmf_app2_call_fail_cs_ind_struct, app2_call_fail_cs_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, specific_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, emm_mm_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_rrc_rr_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_cs_ind_struct)
+
+ //for DMF_MISC16_CAUSE_CALL_FAIL_MT_C2K
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_MT_C2K_IND, dmf_app2_call_fail_mt_c2k_ind_struct, app2_call_fail_mt_c2k_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pn_offset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band_class, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, channel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rssi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, ecio, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, c2k_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_mt_c2k_ind_struct)
+
+ //for DMF_MISC16_CAUSE_CALL_FAIL_MO_C2K
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_MO_C2K_IND, dmf_app2_call_fail_mo_c2k_ind_struct, app2_call_fail_mo_c2k_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pn_offset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band_class, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, channel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rssi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, ecio, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, c2k_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hvolte_mode, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_mo_c2k_ind_struct)
+
+ //for DMF_MISC16_CAUSE_CALL_FAIL_C2K
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_C2K_IND, dmf_app2_call_fail_c2k_ind_struct, app2_call_fail_c2k_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pn_offset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band_class, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, channel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rssi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int8, ecio, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, c2k_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hvolte_mode, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_c2k_ind_struct)
+
+ //DMF_MISC16_CAUSE_CALL_FAIL_IMS_CALL
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_IMS_CALL_IND, dmf_app2_call_fail_ims_call_ind_struct, app2_call_fail_ims_call_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, specific_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, call_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, is_mt_call, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_call_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, net_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, call_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, conv_reject_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, errc_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, orig_reject_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hvolte_mode, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_ims_call_ind_struct)
+
+ //DMF_MISC16_CAUSE_CALL_FAIL_IMS_CALL_HANDOVER
+ DMF_URC_IND(DMF_APP2_CALL_FAIL_IMS_CALL_HANDOVER_IND, dmf_app2_call_fail_ims_call_handover_ind_struct, app2_call_fail_ims_call_handover_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, lw_ho_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, volte_vowifi_handover_fail, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_fail_ims_call_handover_ind_struct)
+
+ //DMF_MISC16_CAUSE_IMS_REG_FAIL
+ DMF_URC_IND(DMF_APP2_IMS_REG_FAIL_IND, dmf_app2_ims_reg_faill_ind_struct, dmf_app2_ims_reg_faill_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, specific_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, fail_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pdn_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hvolte_mode, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_ims_reg_faill_ind_struct)
+
+ //for DMF_MISC16_CAUSE_OTHER_CARD_DROP
+ DMF_URC_IND(DMF_APP2_OTHER_CARD_DROP_IND, dmf_app2_other_card_drop_ind_struct, app2_other_card_drop_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_other_card_drop_ind_struct)
+
+ // for DMF_MISC16_CAUSE_CELLULAR_SNIFFER_FULLBAND_SEARCH
+ DMF_URC_IND(DMF_APP2_CELLULAR_SNIFFER_FULLBAND_SEARCH_IND, dmf_app2_cellular_sniffer_fullband_search_ind_struct, dmf_app2_cellular_sniffer_fullband_search_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, inactive_search_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, inactive_search_count, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_cellular_sniffer_fullband_search_ind_struct)
+
+ // for DMF_MISC16_CAUSE_CELLULAR_NWSEL_SCREEN_ON_SEARCH
+ DMF_URC_IND(DMF_APP2_CELLULAR_NWSEL_SCREEN_ON_SEARCH_IND, dmf_app2_cellular_nwsel_screen_on_search_ind_struct, dmf_app2_cellular_nwsel_screen_on_search_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_screen_on_req_trigger, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_cellular_nwsel_screen_on_search_ind_struct)
+
+ // DMF_MISC16_CAUSE_CALL_VOICE_QUALITY_GWL
+ DMF_URC_IND(DMF_APP2_CALL_VOICE_QUALITY_GWL_IND, dmf_app2_call_voice_quality_gwl_ind_struct, dmf_app2_call_voice_quality_gwl_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, specific_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, snr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, status, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_dl_have_sound, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_voice_quality_gwl_ind_struct)
+
+ // DMF_MISC16_CAUSE_CALL_VOICE_QUALITY_C2K
+ DMF_URC_IND(DMF_APP2_CALL_VOICE_QUALITY_C2K_IND, dmf_app2_call_voice_quality_c2k_ind_struct, dmf_app2_call_voice_quality_c2k_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pn_offset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band_class, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, channel, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rssi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, ecio, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, status, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, is_dl_have_sound, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_voice_quality_c2k_ind_struct)
+
+ // DMF_MISC16_CAUSE_CELLULAR_DATA_INACTIVITY
+ // Note: be aware of max URC size = 512 bytes for this URC, must review max size when making change
+ DMF_URC_IND(DMF_APP2_CELLULAR_DATA_INACTIVITY_IND, dmf_app2_cellular_data_inactivity_ind_struct, dmf_app2_cellular_data_inactivity_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, num_of_inactivity_timer_record, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, release_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, local_release_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, a2_trigger_release_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, data_inact_timer_exp_count_other, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint16, tac_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask1_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask2_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_exp_count_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_value_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, user_inactive_time_1, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint16, tac_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask1_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask2_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_exp_count_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_value_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, user_inactive_time_2, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint16, tac_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask1_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask2_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_exp_count_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_value_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, user_inactive_time_3, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint16, tac_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask1_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask2_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_exp_count_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_value_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, user_inactive_time_4, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint16, tac_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask1_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask2_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_exp_count_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_value_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, user_inactive_time_5, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint16, tac_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask1_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask2_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_exp_count_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_value_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, user_inactive_time_6, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint16, tac_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask1_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask2_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_exp_count_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_value_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, user_inactive_time_7, UNUSED_FIELD)
+
+ DMF_FIELD_VAR(kal_uint16, tac_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask1_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, cdrx_mask2_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_exp_count_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, data_inact_timer_value_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, user_inactive_time_8, UNUSED_FIELD)
+
+ DMF_URC_IND_END(dmf_app2_cellular_data_inactivity_ind_struct)
+
+ // for DMF_MISC16_CAUSE_NR_AC_BARRING_INFO
+ DMF_URC_IND(DMF_APP2_NR_AC_BARRING_INFO_IND, dmf_app2_nr_ac_barring_info_ind_struct, dmf_app2_nr_ac_barring_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, acBarringTime, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, acBarringFactor, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, acBarEstType, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, acBarringCause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssacBarringTime, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssacBarringFactor, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssacBarEstType, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssacBarringCause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_ac_barring_info_ind_struct)
+
+ // ------------------------------------NR part -----------------------------------
+ // DMF_MISC16_CAUSE_NR_RADIO_LINK_FAILURE
+ // DMF_EVENT_RADIO_LINK_FAILURE_CAUSE_INFO
+ DMF_URC_IND(DMF_APP2_NR_RADIO_LINK_FAILURE_IND, dmf_app2_nr_radio_link_failure_cause_info_ind_struct, dmf_app2_nr_radio_link_failure_cause_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint32, tracking_area_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, freq_band_indicator, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, rlf_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_radio_link_failure_cause_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_NR_SCG_FAILURE
+ // DMF_EVENT_NR_SCG_FAILURE_CAUSE_INFO
+ DMF_URC_IND(DMF_APP2_NR_SCG_FAILURE_IND, dmf_app2_nr_scg_failure_cause_info_ind_struct, dmf_app2_nr_scg_failure_cause_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint32, tracking_area_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, freq_band_indicator, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, scg_fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_scg_failure_cause_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_CALL_VOLTE_CELL_INFO
+ DMF_URC_IND(DMF_APP2_CALL_VOLTE_CELL_INFO_IND, dmf_app2_call_volte_cell_info_ind_struct, dmf_app2_call_volte_cell_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sinr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, jitter, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, tx_drop_rate, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rx_drop_rate, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_volte_cell_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_CALL_VOLTE_ONGOING_INFO
+ DMF_URC_IND(DMF_APP2_CALL_VOLTE_ONGOING_INFO_IND, dmf_app2_call_volte_ongoing_info_ind_struct, dmf_app2_call_volte_ongoing_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sinr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, jitter, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, tx_drop_rate, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rx_drop_rate, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_volte_ongoing_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_CALL_VOLTE_END_INFO
+ DMF_URC_IND(DMF_APP2_CALL_VOLTE_END_INFO_IND, dmf_app2_call_volte_end_info_ind_struct, dmf_app2_call_volte_end_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sinr_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, jitter_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, tx_drop_rate_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rx_drop_rate_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sinr_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, jitter_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, tx_drop_rate_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rx_drop_rate_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sinr_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, jitter_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, tx_drop_rate_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rx_drop_rate_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sinr_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, jitter_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, tx_drop_rate_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rx_drop_rate_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrp_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, rsrq_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, sinr_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, jitter_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, tx_drop_rate_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rx_drop_rate_5, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_volte_end_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_CALL_VOLTE_A2_INFO
+ DMF_URC_IND(DMF_APP2_CALL_VOLTE_A2_INFO_IND, dmf_app2_call_volte_a2_info_ind_struct, dmf_app2_call_volte_a2_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_5, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_volte_a2_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_CALL_VOLTE_B2_INFO
+ DMF_URC_IND(DMF_APP2_CALL_VOLTE_B2_INFO_IND, dmf_app2_call_volte_b2_info_ind_struct, dmf_app2_call_volte_b2_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, other_rat_meas_quantity_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, other_rat_threshold_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, other_rat_meas_quantity_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, other_rat_threshold_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, other_rat_meas_quantity_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, other_rat_threshold_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, other_rat_meas_quantity_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, other_rat_threshold_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, other_rat_meas_quantity_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, other_rat_threshold_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, other_rat_meas_quantity_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, other_rat_threshold_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, other_rat_meas_quantity_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, other_rat_threshold_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, meas_quantity_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, threshold_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, other_rat_meas_quantity_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, other_rat_threshold_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hysteresis_8, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, time_to_trigger_8, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_call_volte_b2_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_CELLULAR_HVOLTE_SWITCH
+ DMF_URC_IND(DMF_APP2_CELLULAR_HVOLTE_SWITCH_IND, dmf_app2_cellular_hvolte_switch_ind_struct, dmf_app2_cellular_hvolte_switch_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, prev_hvolte_mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, hvolte_mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, switch_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_cellular_hvolte_switch_ind_struct)
+
+ // DMF_MISC16_CAUSE_CELLULAR_HVOLTE_1X_SILENT_REDIAL
+ DMF_URC_IND(DMF_APP2_CELLULAR_HVOLTE_1X_SILENT_REDIAL_IND, dmf_app2_cellular_hvolte_1x_silent_redial_ind_struct, dmf_app2_cellular_hvolte_1x_silent_redial_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_cellular_hvolte_1x_silent_redial_ind_struct)
+
+ // DMF_MISC16_CAUSE_CELLULAR_HVOLTE_1X_SILENT_REDIAL_NO_RETURN_LTE
+ DMF_URC_IND(DMF_APP2_CELLULAR_HVOLTE_1X_SILENT_REDIAL_NO_RETURN_LTE_IND, dmf_app2_cellular_hvolte_1x_silent_redial_no_return_lte_ind_struct, dmf_app2_cellular_hvolte_1x_silent_redial_no_return_lte_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_cellular_hvolte_1x_silent_redial_no_return_lte_ind_struct)
+
+
+ // DMF_MISC16_CAUSE_SECONDARY_CELL_ADDITION
+ // DMF_EVENT_NR_SECONDARY_CELL_ADDITION_CAUSE_INFO
+ DMF_URC_IND(DMF_APP2_NR_SECONDARY_CELL_ADDITION_IND, dmf_app2_nr_secondary_cell_addition_cause_info_ind_struct, dmf_app2_nr_secondary_cell_addition_cause_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint32, tracking_area_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, freq_band_indicator, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, result, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, pscell_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pscell_narfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pscell_add_latency_a, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pscell_add_latency_b, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, success_number, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, failure_number, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_secondary_cell_addition_cause_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_SECONDARY_CELL_HANDOVER
+ // DMF_EVENT_NR_SECONDARY_CELL_HANDOVER_CAUSE_INFO
+ DMF_URC_IND(DMF_APP2_NR_SECONDARY_CELL_HANDOVER_IND, dmf_app2_nr_secondary_cell_handover_cause_info_ind_struct, dmf_app2_nr_secondary_cell_handover_cause_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint32, tracking_area_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, freq_band_indicator, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, result, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, source_cell_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, source_cell_narfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, target_cell_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, target_cell_narfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, handover_latency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, success_number, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, failure_number, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_secondary_cell_handover_cause_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_ENDC_MODE_KPI
+ // DMF_EVENT_NR_ENDC_MODE_KPI_CAUSE_INFO
+ DMF_URC_IND(DMF_APP2_NR_ENDC_MODE_KPI_IND, dmf_app2_nr_endc_mode_kpi_cause_info_ind_struct, dmf_app2_nr_endc_mode_kpi_cause_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint32, tracking_area_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, freq_band_indicator, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_in_lte_connected, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_in_endc_mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_between_enable_endc_mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_duration_ul_on_nr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, time_in_split_bearer_mode, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_endc_mode_kpi_cause_info_ind_struct)
+
+ // DMF_MISC16_CAUSE_OTHER_5G_KPI
+ // DMF_EVENT_NR_OTHER_5G_KPI_CAUSE_INFO
+ DMF_URC_IND(DMF_APP2_NR_OTHER_5G_KPI_IND, dmf_app2_nr_other_5g_kpi_cause_info_ind_struct, dmf_app2_nr_other_5g_kpi_cause_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint32, tracking_area_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, freq_band_indicator, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, num_lte_ca_band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_pcc_earfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_scc_earfcn_0, UNUSED_FIELD) //ERRC_SCELL_NUM_MAX = 7
+ DMF_FIELD_VAR(kal_uint32, lte_scc_earfcn_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_scc_earfcn_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_scc_earfcn_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_scc_earfcn_4, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_scc_earfcn_5, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_scc_earfcn_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, num_nr_ca_band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_spcell_dl_frequency_band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, nr_scell_dl_frequency_band, UNUSED_FIELD) //NL1_SCELL_CONFIG_LIST_SIZE = 1
+ DMF_URC_IND_END(dmf_app2_nr_other_5g_kpi_cause_info_ind_struct)
+
+ // DMF_EVENT_PDCP_THROUGHPUT_INFO
+ DMF_URC_IND(DMF_APP2_NR_PDCP_THROUGHPUT_IND, dmf_app2_nr_pdcp_throughput_cause_info_ind_struct, dmf_app2_nr_pdcp_throughput_cause_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, current_rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_speed, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_speed, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_pdcp_throughput_cause_info_ind_struct)
+
+ // DMF_EVENT_OTA_FAIL_REASON
+ DMF_URC_IND(DMF_APP2_OTA_FAIL_REASON_IND, dmf_app2_nr_ota_fail_reason_info_ind_struct, dmf_app2_ota_fail_reason_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, fail_reason, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint32, tracking_area_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, freq_band_indicator, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mcc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, mnc, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, digits_of_mnc, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_ota_fail_reason_info_ind_struct)
+
+ // DMF_EVENT_NL1_FBRX
+ DMF_URC_IND(DMF_APP2_NL1_FBRX_BAND_IND, dmf_app2_nl1_fbrx_band_ind_struct, dmf_app2_nl1_fbrx_band_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, rat, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nl1_fbrx_band_ind_struct)
+
+ // for DMF_MISC16_CAUSE_DEEP_SLEEP_MODE_STATISTICS
+ DMF_URC_IND(DMF_APP2_DEEP_SLEEP_MODE_STATISTICS_IND, dmf_app2_deep_sleep_mode_statistics_ind_struct, dmf_app2_deep_sleep_mode_statistics_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrIdleDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrNoSvcDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteIdleDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteNoSvcDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mdNoSvcDurT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_EMC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_HPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOD, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOVoC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOViC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MOSMS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MPSPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnEstC_MCSPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_EMC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_HPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOD, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOVoC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOViC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MOSMS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MPSPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nrConnFailC_MCSPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_EMC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_HPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_MT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_MOS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_MOD, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnEstC_MOVoC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_EMC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_HPA, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_MT, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_MOS, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_MOD, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteConnFailC_MOVoC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, intraLtePingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, intraNrPingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lteNrPingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte3gPingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte2gPingPongC, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, idleOosC, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_deep_sleep_mode_statistics_ind_struct)
+
+ // DMF_EVENT_NON_DDS_PAGING
+ DMF_URC_IND(DMF_APP2_NON_DDS_PAGING_IND, dmf_app2_non_dds_paging_ind_struct, dmf_app2_non_dds_paging_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, counter_of_paging_over_12, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, total_paging, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_non_dds_paging_ind_struct)
+
+ //DMF_MISC16_CAUSE_ABNORMAL_PDET_DETECTION
+ DMF_URC_IND(DMF_APP2_PDET_DETECTION_IND, dmf_app2_pdet_detection_ind_struct, app2_pdet_detection_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, target_power, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, power_delta_0, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, power_delta_1, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, power_delta_2, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, power_delta_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, counter, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_pdet_detection_ind_struct)
+
+ DMF_URC_IND(DMF_APP2_NR_RACH_FAIL_IND, dmf_app2_nr_rach_fail_ind_struct, dmf_app2_nr_rach_fail_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nr_rach_fail_rar, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nr_rach_fail_cr_timer_expired, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nr_rach_fail_cr_failure, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nr_rach_fail_abort, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_rach_fail_ind_struct)
+
+ DMF_URC_IND(DMF_APP2_NR_RLF_IND, dmf_app2_nrrc_rlf_ind_struct, dmf_app2_nr_rlf_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nrrc_rlf_l1_problem, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nrrc_rlf_ra_problem, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nrrc_rlf_max_rlc_retransmission, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nrrc_rlf_ind_struct)
+
+ DMF_URC_IND(DMF_APP2_NRRC_REESTABLISHMENT_IND, dmf_app2_nrrc_reest_ind_struct, dmf_app2_nrrc_reest_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nrrc_reest_rlf, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nrrc_reest_sync_fail_reconfiguration, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nrrc_reest_mobility_failure, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nrrc_reest_integrity_check_failure, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_nrrc_reest_reconfiguration_failure, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nrrc_reest_ind_struct)
+
+ DMF_URC_IND(DMF_APP2_NR_REGISTRATION_FAILURE_IND, dmf_app2_nr_reg_failure_ind_struct, dmf_app2_nr_reg_failure_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 6)
+ DMF_FIELD_VAR(kal_uint16, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, frequency, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_strength, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, signal_quality, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_3, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_6, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_7, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_9, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_10, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_11, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_12, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_13, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_15, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_22, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_27, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_72, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_73, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, count_of_cause_other, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app2_nr_reg_failure_ind_struct)
+
+ #endif /* DMF_URC_IND_SEC */
+
+DMF_APP_END
+#endif //for __DMF_TC16__
+
+
+#ifdef __DMF_TC01__
+DMF_APP(3)
+
+ // Define CMD_REQ structure
+ #ifdef DMF_CMD_REQ_SEC
+ DMF_CMD_REQ(dmf_app3_cmd_req_struct, app3_cmd)
+ DMF_FIELD_VAR(kal_uint32, cause, 10000)
+ DMF_CMD_REQ_END(dmf_app3_cmd_req_struct)
+ #endif
+
+ // Define CMD_CNF structure
+ #ifdef DMF_CMD_CNF_SEC
+ //DMF_MISC01_CAUSE_LTE_DATA_API_VERSION
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_API_VERSION_CMD_CNF, dmf_app3_lte_data_api_version_cnf_struct, app3_lte_data_api_version_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, api_version, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_api_version_cnf_struct)
+
+ //DMF_MISC01_CAUSE_LTE_DATA_NW_IDENTITY
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_NW_IDENTITY_CMD_CNF, dmf_app3_lte_data_nw_identity_cnf_struct, app3_lte_data_nw_identity_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int16, lac, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, first_carrier_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_carrier_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, third_carrier_cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_pci, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_nw_identity_cnf_struct)
+
+ //DMF_MISC01_CAUSE_LTE_DATA_SIGNAL_CONDITION
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_SIGNAL_CONDITION_CMD_CNF, dmf_app3_lte_data_signal_condition_cnf_struct, app3_lte_data_signal_condition_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, primary_carrier_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, primary_carrier_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, primary_carrier_sinr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, primary_carrier_rssi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, rach_power, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, lte_ul_headroom, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_sinr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_rssi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_sinr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_rssi, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_signal_condition_cnf_struct)
+
+ //DMF_MISC01_CAUSE_LTE_DATA_COMMON_RFC_CONFIG
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_COMMON_RFC_CONFIG_CMD_CNF, dmf_app3_lte_data_common_rfc_config_cnf_struct, app3_lte_data_common_rfc_config_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, transmission_mode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, rx_antenna_config, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, tx_antenna_config, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, receiver_diversity, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, rrc_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, laa_lteu_status, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_common_rfc_config_cnf_struct)
+
+ //DMF_MISC01_CAUSE_LTE_DATA_DL_CARRIER_INFO
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_DL_CARRIER_INFO_CMD_CNF, dmf_app3_lte_data_dl_carrier_info_cnf_struct, app3_lte_data_dl_carrier_info_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, no_of_carriers, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, first_carrier_earfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_carrier_bw, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_carrier_band_number, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, second_carrier_earfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_bw, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_band_number, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, third_carrier_earfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_bw, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_band_number, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_dl_carrier_info_cnf_struct)
+
+ //DMF_MISC01_CAUSE_LTE_DATA_UL_CARRIER_INFO
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_UL_CARRIER_INFO_CMD_CNF, dmf_app3_lte_data_ul_carrier_info_cnf_struct, app3_lte_data_ul_carrier_info_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, no_of_carriers, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, first_carrier_earfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_carrier_bw, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_carrier_band_number, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_int64, second_carrier_earfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_bw, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_band_number, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_ul_carrier_info_cnf_struct)
+
+ //DMF_MISC01_CAUSE_LTE_DATA_DL_RFC_CONFIG
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_DL_RFC_CONFIG_CMD_CNF, dmf_app3_lte_data_dl_rfc_config_cnf_struct, app3_lte_data_dl_rfc_config_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_carrier_modulation_scheme, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_carrier_no_of_layers, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_modulation_scheme, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_no_of_layers, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_modulation_scheme, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, third_carrier_no_of_layers, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_dl_rfc_config_cnf_struct)
+
+ //DMF_MISC01_CAUSE_LTE_DATA_UL_RFC_CONFIG
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_UL_RFC_CONFIG_CMD_CNF, dmf_app3_lte_data_ul_rfc_config_cnf_struct, app3_lte_data_ul_rfc_config_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_carrier_modulation_scheme, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, second_carrier_modulation_scheme, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_ul_rfc_config_cnf_struct)
+
+ //DMF_MISC01_CAUSE_LTE_DATA_BEARER_CONFIG
+ DMF_CMD_CNF(DMF_APP3_LTE_DATA_BEARER_CONFIG_CMD_CNF, dmf_app3_lte_data_bearer_config_cnf_struct, app3_lte_data_bearer_config_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, no_of_active_bearers, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, first_bearer_qci, UNUSED_FIELD)
+ DMF_FIELD_STRING(first_bearer_apn_name, 100)
+ DMF_FIELD_VAR(kal_int32, second_bearer_qci, UNUSED_FIELD)
+ DMF_FIELD_STRING(second_bearer_apn_name, 100)
+ DMF_FIELD_VAR(kal_int32, third_bearer_qci, UNUSED_FIELD)
+ DMF_FIELD_STRING(third_bearer_apn_name, 100)
+ DMF_FIELD_VAR(kal_int32, fourth_bearer_qci, UNUSED_FIELD)
+ DMF_FIELD_STRING(fourth_bearer_apn_name, 100)
+ DMF_CMD_CNF_END(dmf_app3_lte_data_bearer_config_cnf_struct)
+
+
+ //DMF_MISC01_CAUSE_5G_MMW_ENDC_LTE_LOG
+ DMF_CMD_CNF(DMF_APP3_5G_MMW_ENDC_LTE_LOG_CMD_CNF, dmf_app3_5g_mmw_endc_lte_log_cnf_struct, app3_5g_mmw_endc_lte_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, anchor_lte_cid, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, anchor_lte_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, endc_cap, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, lte_rrc_state, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_5g_mmw_endc_lte_log_cnf_struct)
+
+ //DMF_MISC01_CAUSE_5G_MMW_5G_NR_MMW_CELL_LOG
+ DMF_CMD_CNF(DMF_APP3_5G_MMW_5G_NR_MMW_CELL_LOG_CMD_CNF, dmf_app3_5g_mmw_5g_nr_mmw_cell_log_cnf_struct, app3_5g_mmw_5g_nr_mmw_cell_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, nr_pcell_pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_beam_index, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_brsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_brsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_snr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pdsch_beam_index, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pdsch_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pdsch_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pdsch_snr, UNUSED_FIELD)
+ DMF_FIELD_STRING(nr_band_name, 20)
+ DMF_FIELD_VAR(kal_int32, nr_bw, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, no_of_ssb_beams, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_5g_mmw_5g_nr_mmw_cell_log_cnf_struct)
+
+ //DMF_MISC01_CAUSE_5G_MMW_SSB_BEAM_LOG
+ DMF_CMD_CNF(DMF_APP3_5G_MMW_SSB_BEAM_LOG_CMD_CNF, dmf_app3_5g_mmw_ssb_beam_log_cnf_struct, app3_5g_mmw_ssb_beam_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_beam_index, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_brsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_brsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_snr, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_5g_mmw_ssb_beam_log_cnf_struct)
+
+ //DMF_MISC01_CAUSE_5G_MMW_ENDC_UL_LOG
+ DMF_CMD_CNF(DMF_APP3_5G_MMW_ENDC_UL_LOG_CMD_CNF, dmf_app3_5g_mmw_endc_ul_log_cnf_struct, app3_5g_mmw_endc_ul_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ul_nw, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_5g_mmw_endc_ul_log_cnf_struct)
+
+
+ //DMF_MISC01_CAUSE_5G_MMW_5G_UI_LOG
+ DMF_CMD_CNF(DMF_APP3_5G_MMW_5G_UI_LOG_CMD_CNF, dmf_app3_5g_mmw_5g_ui_log_cnf_struct, app3_5g_mmw_5g_ui_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, timestamp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ui_5g_config_status, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_5g_mmw_5g_ui_log_cnf_struct)
+
+ //Cause 2407
+ DMF_CMD_CNF(DMF_APP3_5G_SA_GET_DL_CARRIER_LOG_CMD_CNF, dmf_app3_5g_sa_get_dl_carrier_log_cnf_struct, app3_5g_sa_get_dl_carrier_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(techType, 5)
+ DMF_FIELD_STRING(bandNumber, 5)
+ DMF_FIELD_VAR(kal_int32, arfcn, UNUSED_FIELD)
+ DMF_FIELD_STRING(bandWidth, 5)
+ DMF_FIELD_VAR(kal_int32, isPrimary, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, isEndcAnchor, UNUSED_FIELD)
+ DMF_FIELD_STRING(modulationType, 10)
+ DMF_FIELD_VAR(kal_int32, transmissionMode, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, numberLayers, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, cellId, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, tac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, lac, UNUSED_FIELD)
+ DMF_FIELD_STRING(rsrp, 5)
+ DMF_FIELD_STRING(rsrq, 5)
+ DMF_FIELD_STRING(rssi, 5)
+ DMF_FIELD_STRING(rscp, 5)
+ DMF_FIELD_STRING(sinr, 5)
+ DMF_FIELD_STRING(csiRsrp, 5)
+ DMF_FIELD_STRING(csiRsrq, 5)
+ DMF_FIELD_STRING(csiRssi, 5)
+ DMF_FIELD_STRING(csiSinr, 5)
+ DMF_CMD_CNF_END(dmf_app3_5g_sa_get_dl_carrier_log_cnf_struct)
+
+ //cause 2408
+ DMF_CMD_CNF(DMF_APP3_5G_SA_GET_UL_CARRIER_LOG_CMD_CNF, dmf_app3_5g_sa_get_ul_carrier_log_cnf_struct, app3_5g_sa_get_ul_carrier_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(techType, 5)
+ DMF_FIELD_STRING(bandNumber, 5)
+ DMF_FIELD_VAR(kal_int32, arfcn, UNUSED_FIELD)
+ DMF_FIELD_STRING(bandWidth, 5)
+ DMF_FIELD_VAR(kal_int32, isPrimary, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_5g_sa_get_ul_carrier_log_cnf_struct)
+
+ //cause 2409
+ DMF_CMD_CNF(DMF_APP3_5G_SA_GET_RRC_LOG_CMD_CNF, dmf_app3_5g_sa_get_rrc_log_cnf_struct, app3_5g_sa_get_rrc_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(lteRrcState, 15)
+ DMF_FIELD_STRING(nrRrcState, 15)
+ DMF_CMD_CNF_END(dmf_app3_5g_sa_get_rrc_log_cnf_struct)
+
+ //cause 2410
+ DMF_CMD_CNF(DMF_APP3_5G_SA_GET_NW_LOG_CMD_CNF, dmf_app3_5g_sa_get_nw_log_cnf_struct, app3_5g_sa_get_nw_log_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(mcc, 5)
+ DMF_FIELD_STRING(mnc, 5)
+ DMF_FIELD_VAR(kal_int32,endcCapability, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32,endcConnectionStatus, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_5g_sa_get_nw_log_cnf_struct)
+
+ //cause 2412
+ DMF_CMD_CNF(DMF_APP3_NR_SA_API_VERSION_CMD_CNF, dmf_app3_nr_sa_api_version_cnf_struct, app3_nr_sa_api_version_cnf_struct)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32,api_version, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app3_nr_sa_api_version_cnf_struct)
+
+ #endif
+
+ // Define URC structure
+ #ifdef DMF_URC_IND_SEC
+
+ #endif
+
+DMF_APP_END
+#endif //for __DMF_TC01__
+
+#ifdef __DMF_OP01_NW_KPI__
+DMF_APP(5)
+
+ #ifdef DMF_CMD_REQ_SEC
+ DMF_CMD_REQ(dmf_kpi_app_cmd_req_struct, kpi_app_cmd_req)
+ DMF_FIELD_VAR(kal_uint32, urc_query, 2000)
+ DMF_FIELD_VAR(kal_uint32, group_id, 2000)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, 2000)
+ DMF_CMD_REQ_END(dmf_kpi_app_cmd_req_struct)
+ #endif
+
+
+ #ifdef DMF_URC_IND_SEC
+ DMF_URC_IND(DMF_KPI_LTE_ATTACH_URC_IND, dmf_kpi_lte_attach_urc_ind_struct, kpi_lte_eps_attach_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, attach_rej_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_lte_attach_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_EPS_BEARER_URC_IND, dmf_kpi_eps_bearer_urc_ind_struct, kpi_eps_bearer_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, ebi, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, esm_reject_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_eps_bearer_urc_ind_struct)
+
+
+ DMF_URC_IND(DMF_KPI_SRVCC_URC_IND, dmf_kpi_srvcc_urc_ind_struct, kpi_srvcc_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_srvcc_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_IMS_REG_URC_IND, dmf_kpi_ims_reg_urc_ind_struct, kpi_ims_reg_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, sip_msg_type,UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_method, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sip_resp_code,UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_ims_reg_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_VOLTE_CALL_DROP_URC_IND, dmf_kpi_volte_call_drop_urc_ind_struct, kpi_volte_call_drop_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, sip_msg_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_method, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sip_resp_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_volte_call_drop_urc_ind_struct)
+
+
+ DMF_URC_IND(DMF_KPI_MO_VOLTE_CALL_URC_IND, dmf_kpi_mo_volte_call_urc_ind_struct, kpi_mo_volte_call_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, sip_msg_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_method, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sip_resp_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fail_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_id, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_mo_volte_call_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_MT_VOLTE_CALL_URC_IND, dmf_kpi_mt_volte_call_urc_ind_struct, kpi_mt_volte_call_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, sip_msg_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, sip_method, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sip_resp_code, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fail_cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, call_id, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_mt_volte_call_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_TAU_URC_IND, dmf_kpi_tau_urc_ind_struct, kpi_tau_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tau_rej_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_tau_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_MO_CSFB_URC_IND, dmf_kpi_mo_csfb_urc_ind_struct, kpi_mo_csfb_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_mo_csfb_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_MT_CSFB_URC_IND, dmf_kpi_mt_csfb_urc_ind_struct, kpi_mt_csfb_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint16, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_mt_csfb_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_MO_SMS_OVER_SGS_URC_IND, dmf_kpi_mo_sms_over_sgs_urc_ind_struct, kpi_mo_sms_over_sgs_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_mo_sms_over_sgs_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_MT_SMS_OVER_SGS_URC_IND, dmf_kpi_mt_sms_over_sgs_urc_ind_struct, kpi_mt_sms_over_sgs_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_mt_sms_over_sgs_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_MO_SMS_OVER_IMS_URC_IND, dmf_kpi_mo_sms_over_ims_urc_ind_struct, kpi_mo_sms_over_ims_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_mo_sms_over_ims_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_MT_SMS_OVER_IMS_URC_IND, dmf_kpi_mt_sms_over_ims_urc_ind_struct, kpi_mt_sms_over_ims_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_mt_sms_over_ims_urc_ind_struct)
+
+ DMF_URC_IND(DMF_KPI_ADD_SCG_URC_IND, dmf_kpi_add_scg_urc_ind_struct, kpi_add_scg_urc_ind)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, reported_event, UNUSED_FIELD)
+ DMF_FIELD_STRING(plmnid, 7)
+ DMF_FIELD_VAR(kal_uint16, tac_lac, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cell_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, rat, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint8, fail_cause, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_kpi_add_scg_urc_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 !*/
+ #endif
+ #endif /* DMF_URC_IND_SEC */
+
+ #ifdef DMF_CMD_CNF_SEC
+ #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 !*/
+ #endif
+ DMF_CMD_CNF(DMF_KPI_URC_SWITCH_STATUS_CNF, dmf_kpi_urc_switch_status_cnf_struct, kpi_urc_switch_status_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, urc_on_kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, urc_on_kpi_id_urc_status, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, urc_off_kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_bool, urc_off_kpi_id_urc_status, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_urc_switch_status_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_LTE_ATTACH_COUNT_CNF, dmf_kpi_lte_attach_count_cnf_struct, lte_eps_attach_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_attach_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_attach_success_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_attach_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_lte_attach_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_ACT_DEFAULT_EPS_BEARER_COUNT_CNF, dmf_kpi_act_default_eps_bearer_count_cnf_struct, kpi_act_default_eps_bearer_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, esm_act_default_eps_bearer_req_rcv_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, esm_act_default_eps_bearer_accept_sent_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, esm_act_default_eps_bearer_reject_sent_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_act_default_eps_bearer_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_SRVCC_COUNT_CNF, dmf_kpi_srvcc_count_cnf_struct, kpi_srvcc_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, srvcc_ho_req_rcv_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, srvcc_ho_succ_sent_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, srvcc_ho_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_srvcc_count_cnf_struct)
+
+
+ DMF_CMD_CNF(DMF_KPI_IMS_REG_COUNT_CNF, dmf_kpi_ims_reg_count_cnf_struct, kpi_ims_reg_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_reg_req_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_reg_req_with_401_rsp_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_reg_req_with_auc_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_reg_success_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_ims_reg_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_VOLTE_CALL_DROP_COUNT_CNF, dmf_kpi_volte_call_drop_count_cnf_struct, kpi_volte_call_drop_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_rsp_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, final_rsp_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_call_drop_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, final_call_drop_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_volte_call_drop_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_MO_VOLTE_CALL_COUNT_CNF, dmf_kpi_mo_volte_call_count_cnf_struct, kpi_mo_volte_call_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_mo_call_req_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_mo_call_connect_to_nw_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_call_early_release_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_call_with_403_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_call_with_486_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_call_with_480_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_call_with_484_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_call_with_600_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_call_with_604_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_call_with_487_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_mo_volte_call_count_cnf_struct)
+
+
+ DMF_CMD_CNF(DMF_KPI_MT_VOLTE_CALL_COUNT_CNF, dmf_kpi_mt_volte_call_count_cnf_struct, kpi_mt_volte_call_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, initial_mt_call_req_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_connect_success_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_early_release_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_with_486_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_with_403_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_with_480_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_with_484_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_with_600_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_with_604_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_call_with_487_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_mt_volte_call_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_TAU_COUNT_CNF, dmf_kpi_tau_count_cnf_struct, tau_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tau_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tau_success_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, tau_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_tau_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_MO_CSFB_COUNT_CNF, dmf_kpi_mo_csfb_count_cnf_struct, mo_csfb_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_csfb_ext_sr_req_snd_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_csfb_success_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mo_csfb_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_mo_csfb_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_MT_CSFB_COUNT_CNF, dmf_kpi_mt_csfb_count_cnf_struct, mt_csfb_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_csfb_cs_paging_rcv_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_csfb_cs_service_notification_rcv_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_csfb_success_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, mt_csfb_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_mt_csfb_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_MO_SMS_OVER_SGS_COUNT_CNF, dmf_kpi_mo_sms_over_sgs_count_cnf_struct, mo_sms_over_sgs_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_sgs_mo_sms_start_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_sgs_mo_sms_succ_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_sgs_mo_sms_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_mo_sms_over_sgs_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_MT_SMS_OVER_SGS_COUNT_CNF, dmf_kpi_mt_sms_over_sgs_count_cnf_struct, mt_sms_over_sgs_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_sgs_mt_sms_start_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_sgs_mt_sms_succ_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_sgs_mt_sms_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_mt_sms_over_sgs_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_MO_SMS_OVER_IMS_COUNT_CNF, dmf_kpi_mo_sms_over_ims_count_cnf_struct, mo_sms_over_ims_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_ims_mo_sms_start_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_ims_mo_sms_succ_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_ims_mo_sms_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_mo_sms_over_ims_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_MT_SMS_OVER_IMS_COUNT_CNF, dmf_kpi_mt_sms_over_ims_count_cnf_struct, mt_sms_over_ims_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_ims_mt_sms_start_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_ims_mt_sms_succ_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, sms_over_ims_mt_sms_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_mt_sms_over_ims_count_cnf_struct)
+
+ DMF_CMD_CNF(DMF_KPI_ADD_SCG_COUNT_CNF, dmf_kpi_add_scg_count_cnf_struct, add_scg_count_cnf)
+ DMF_FIELD_VAR(kal_uint32, group_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, kpi_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, add_scg_req_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, add_scg_succ_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, add_scg_fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_kpi_add_scg_count_cnf_struct)
+ #endif
+
+DMF_APP_END
+#endif
+
+#ifdef __DMF_THIN_MODEM__
+DMF_APP(6)
+
+ // Define CMD_REQ structure
+#ifdef DMF_CMD_REQ_SEC
+ DMF_CMD_REQ(dmf_app6_cmd_req_struct, app6_cmd)
+ DMF_FIELD_VAR(kal_uint32, cause, 10000)
+ DMF_FIELD_VAR_O(kal_uint32, param_1, 10000)
+ DMF_FIELD_VAR_O(kal_uint32, param_2, 10000)
+ DMF_CMD_REQ_END(dmf_app6_cmd_req_struct)
+#endif
+
+#ifdef DMF_CMD_CNF_SEC
+ // for DMF_THIN_MODEM_CAUSE_NR_RB_NUM
+ DMF_CMD_CNF(DMF_APP6_NR_RB_NUM_CNF, dmf_app6_nr_rb_num_cnf_struct, dmf_app6_nr_rb_num_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pcc_ul_rb, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pcc_dl_rb, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, scc_rb, 16)
+ DMF_CMD_CNF_END(dmf_app6_nr_rb_num_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_MIMO_INFO
+ DMF_CMD_CNF(DMF_APP6_MIMO_INFO_CNF, dmf_app6_mimo_info_cnf_struct, dmf_app6_mimo_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, act, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pcc_ul_layer, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pcc_dl_layer, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, scc_layer, 24)
+ DMF_CMD_CNF_END(dmf_app6_mimo_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_CA_INFO
+ DMF_CMD_CNF(DMF_APP6_CA_INFO_CNF, dmf_app6_ca_info_cnf_struct, dmf_app6_ca_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_dl_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, lte_dl_cc_list, 8*8)
+ DMF_FIELD_VAR(kal_uint32, lte_ul_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, lte_ul_cc_list, 8*6)
+ DMF_FIELD_VAR(kal_uint32, nr_dl_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, nr_dl_cc_list, 8*8)
+ DMF_FIELD_VAR(kal_uint32, nr_ul_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, nr_ul_cc_list, 8*6)
+ DMF_CMD_CNF_END(dmf_app6_ca_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_CELL_INFO
+ DMF_CMD_CNF(DMF_APP6_CELL_INFO_CNF, dmf_app6_cell_info_cnf_struct, dmf_app6_cell_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, act, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nr_cc_num, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_cell_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_WCDMA_CELL_INFO
+ DMF_CMD_CNF(DMF_APP6_WCDMA_CELL_INFO_CNF, dmf_app6_wcdma_cell_info_cnf_struct, dmf_app6_wcdma_cell_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, uarfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_bandwidth, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_wcdma_cell_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_LTE_NR_PCELL_INFO
+ DMF_CMD_CNF(DMF_APP6_LTE_NR_PCELL_INFO_CNF, dmf_app6_lte_nr_pcell_info_cnf_struct, dmf_app6_lte_nr_pcell_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(pcc_name, 16)
+ DMF_FIELD_VAR(kal_uint32, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, arfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_mimo, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_mimo, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_modulation, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_modulation, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_rb, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_rb, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_mcs_index, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_mcs_index, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pucch_tx_pwr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, dl_tm, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ul_tm, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pusch_tx_pwr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_tput, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_tput, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_bwp_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_bwp_bandwidth, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_lte_nr_pcell_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_LTE_NR_SCELL_INFO
+ DMF_CMD_CNF(DMF_APP6_LTE_NR_SCELL_INFO_CNF, dmf_app6_lte_nr_scell_info_cnf_struct, dmf_app6_lte_nr_scell_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(scc_name, 16)
+ DMF_FIELD_VAR(kal_uint32, scc_state, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_config, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, band, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pci, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, arfcn, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_mimo, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_mimo, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_modulation, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_modulation, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_rb, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_rb, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_mcs_index, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_mcs_index, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pucch_tx_pwr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, dl_tm, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ul_tm, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, pusch_tx_pwr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_tput, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_tput, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, dl_bwp_bandwidth, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ul_bwp_bandwidth, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_lte_nr_scell_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_NEIGH_MEAS_INFO
+ DMF_CMD_CNF(DMF_APP6_NEIGH_MEAS_INFO_CNF, dmf_app6_neigh_meas_info_cnf_struct, dmf_app6_neigh_meas_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, num_of_cell, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, neigh_cell_list, 6*45)
+ DMF_CMD_CNF_END(dmf_app6_neigh_meas_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_RX_RSSI_INFO
+ DMF_CMD_CNF(DMF_APP6_RX_RSSI_INFO_CNF, dmf_app6_rx_rssi_info_cnf_struct, dmf_app6_rx_rssi_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, act, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_int16, rx_rssi_list, 8)
+ DMF_CMD_CNF_END(dmf_app6_rx_rssi_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_RX_SIGNAL_QUALITY_INFO
+ DMF_CMD_CNF(DMF_APP6_RX_SIGNAL_QUALITY_INFO_CNF, dmf_app6_rx_signal_quality_info_cnf_struct, dmf_app6_rx_signal_quality_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nr_cc_num, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_rx_signal_quality_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_LTE_NR_RX_SIGNAL_QUALITY_INFO
+ DMF_CMD_CNF(DMF_APP6_LTE_NR_RX_SIGNAL_QUALITY_INFO_CNF, dmf_app6_lte_nr_rx_signal_quality_info_cnf_struct, dmf_app6_lte_nr_rx_signal_quality_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(cc_rx_index_name, 16)
+ DMF_FIELD_VAR(kal_int32, rx_path_rsrp, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_lte_nr_rx_signal_quality_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_OTA_MSG_INFO
+ DMF_CMD_CNF(DMF_APP6_OTA_MSG_CNF, dmf_app6_ota_msg_cnf_struct, dmf_app6_ota_msg_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ota_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, act, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, total_len, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, offset, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, segment_len, UNUSED_FIELD)
+ DMF_FIELD_STRING(segment_raw_data, OTA_MSG_SEGMENT_MAX_LEN)
+ DMF_CMD_CNF_END(dmf_app6_ota_msg_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_CA_MEAS_INFO
+ DMF_CMD_CNF(DMF_APP6_CA_MEAS_INFO_CNF, dmf_app6_ca_meas_info_cnf_struct, dmf_app6_ca_meas_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, nr_cc_num, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_ca_meas_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_LTE_CA_MEAS_INFO
+ DMF_CMD_CNF(DMF_APP6_LTE_CA_MEAS_INFO_CNF, dmf_app6_lte_ca_meas_info_cnf_struct, dmf_app6_lte_ca_meas_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(cc_name, 16)
+ DMF_FIELD_VAR(kal_uint32, path_loss, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, rank, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, serv_snr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, serv_rssi, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_lte_ca_meas_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_NR_CA_MEAS_INFO
+ DMF_CMD_CNF(DMF_APP6_NR_CA_MEAS_INFO_CNF, dmf_app6_nr_ca_meas_info_cnf_struct, dmf_app6_nr_ca_meas_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_STRING(cc_name, 16)
+ DMF_FIELD_VAR(kal_uint32, path_loss, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, rank, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, brsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, serv_rsrp, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, serv_rsrq, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, ssb_best_beam_id, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_snr_avg, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, ssb_rsrp_avg, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, trs_snr_avg, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, trs_rsrp_avg, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, serv_snr, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, serv_rssi, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_nr_ca_meas_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_THROUGHPUT_INFO
+ DMF_CMD_CNF(DMF_APP6_THROUGHPUT_INFO_CNF, dmf_app6_throughput_info_cnf_struct, dmf_app6_throughput_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pdsch_tput, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pdsch_peak_tput, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pusch_tput, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, pusch_peak_tput, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_throughput_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_PDCP_BYTES_INFO
+ DMF_CMD_CNF(DMF_APP6_PDCP_BYTES_INFO_CNF, dmf_app6_pdcp_bytes_info_cnf_struct, dmf_app6_pdcp_bytes_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, tx_pdcp_bytes, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, rx_pdcp_bytes, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, tx_pdcp_bytes_total, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, rx_pdcp_bytes_total, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_pdcp_bytes_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_RACH_COUNT_INFO
+ DMF_CMD_CNF(DMF_APP6_RACH_COUNT_INFO_CNF, dmf_app6_rach_count_info_cnf_struct, dmf_app6_rach_count_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, attemp_count, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, fail_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_rach_count_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_HANDOVER_COUNT_INFO
+ DMF_CMD_CNF(DMF_APP6_HANDOVER_COUNT_INFO_CNF, dmf_app6_handover_count_info_cnf_struct, dmf_app6_handover_count_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, handover_attempt_count, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, handover_failure_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_handover_count_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_RRC_COUNT_INFO
+ DMF_CMD_CNF(DMF_APP6_RRC_COUNT_INFO_CNF, dmf_app6_rrc_count_info_cnf_struct, dmf_app6_rrc_count_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, rrc_connect_request_count, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, rrc_connect_fail_count, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, rrc_connect_time, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, radio_link_failure_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_rrc_count_info_cnf_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_SCG_COUNT_INFO
+ DMF_CMD_CNF(DMF_APP6_SCG_COUNT_INFO_CNF, dmf_app6_scg_count_info_cnf_struct, dmf_app6_scg_count_info_cnf)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, nr_scg_change_count, UNUSED_FIELD)
+ DMF_FIELD_VAR_LONG(kal_uint64, nr_scg_change_failure_count, UNUSED_FIELD)
+ DMF_CMD_CNF_END(dmf_app6_scg_count_info_cnf_struct)
+#endif
+
+#ifdef DMF_URC_IND_SEC
+ // for DMF_THIN_MODEM_CAUSE_CA_URC
+ DMF_URC_IND(DMF_APP6_CA_INFO_IND, dmf_app6_ca_info_ind_struct, dmf_app6_ca_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, lte_dl_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, lte_dl_cc_list, 8*8)
+ DMF_FIELD_VAR(kal_uint32, lte_ul_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, lte_ul_cc_list, 8*6)
+ DMF_FIELD_VAR(kal_uint32, nr_dl_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, nr_dl_cc_list, 8*8)
+ DMF_FIELD_VAR(kal_uint32, nr_ul_cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, nr_ul_cc_list, 8*6)
+ DMF_URC_IND_END(dmf_app6_ca_info_ind_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_NR_RSRP_URC
+ DMF_URC_IND(DMF_APP6_NR_RSRP_INFO_IND, dmf_app6_nr_rsrp_info_ind_struct, dmf_app6_nr_rsrp_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_int32, rsrp, UNUSED_FIELD)
+ DMF_URC_IND_END(dmf_app6_nr_rsrp_info_ind_struct)
+
+ // for DMF_THIN_MODEM_CAUSE_NR_IBLER_URC
+ DMF_URC_IND(DMF_APP6_NR_IBLER_INFO_IND, dmf_app6_nr_ibler_info_ind_struct, dmf_app6_nr_ibler_info_ind)
+ DMF_FIELD_VAR(kal_uint32, cause, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, channel_type, UNUSED_FIELD)
+ DMF_FIELD_VAR(kal_uint32, cc_num, UNUSED_FIELD)
+ DMF_FIELD_VAR_ARRAY_D(kal_uint32, ibler_list, 8)
+ DMF_URC_IND_END(dmf_app6_nr_ibler_info_ind_struct)
+#endif
+DMF_APP_END
+#endif
+
+#ifdef DMF_CUSTOM_SEC
+#include "custom_dmf_app_cmd_def.h"
+#endif
+
+#undef DMF_APP
+#undef DMF_APP_END
+#undef DMF_CMD_REQ
+#undef DMF_CMD_REQ_END
+#undef DMF_CMD_CNF
+#undef DMF_CMD_CNF_END
+#undef DMF_URC_IND
+#undef DMF_URC_IND_END
+#undef DMF_FIELD_VAR
+#undef DMF_FIELD_VAR_LONG
+#undef DMF_FIELD_VAR_O
+#undef DMF_FIELD_VAR_ARRAY
+#undef DMF_FIELD_VAR_ARRAY_D
+#undef DMF_FIELD_STRING
+#undef DMF_CMD_REQ_SEC
+#undef DMF_CMD_CNF_SEC
+#undef DMF_URC_IND_SEC
+#undef DMF_CUSTOM_SEC
+#undef UNUSED_FIELD
diff --git a/mcu/interface/protocol/general/atp_dmf_struct.h b/mcu/interface/protocol/general/atp_dmf_struct.h
new file mode 100644
index 0000000..818031f
--- /dev/null
+++ b/mcu/interface/protocol/general/atp_dmf_struct.h
@@ -0,0 +1,221 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * atp_dmf_struct.h
+ *
+ *
+ * Description:
+ * ------------
+ * This file defines message structures of ATP_DMF interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+#ifndef _ATP_DMF_STRUCT_H_
+#define _ATP_DMF_STRUCT_H_
+
+#include "atp_public_defs.h"
+#include "ims_interface_md.h"
+
+#define DMF_APMAC_LEN 18
+
+// MSG_ID_ATP_MT_DMF_ECPI_IND
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ecpi_type;
+ ims_ecpi_info_struct ecpi_info;
+} atp_mt_dmf_ecpi_ind_struct;
+
+typedef enum
+{
+ ATP_MT_DMF_CMD_CNF_TYPE_NULL = 0,
+
+ #define DMF_CMD_CNF(CNF_TYPE, STRUCT_NAME, PARA_NAME) CNF_TYPE,
+ #define DMF_CUSTOM_SEC
+ #include "atp_dmf_cmd_def.h"
+
+ ATP_MT_DMF_CMD_CNF_TYPE_MAX,
+} atp_mt_dmf_cmd_cnf_type_enum;
+
+typedef enum
+{
+ ATP_MT_DMF_URC_IND_TYPE_NULL = 0,
+
+ #define DMF_URC_IND(IND_TYPE, STRUCT_NAME, PARA_NAME) IND_TYPE,
+ #define DMF_CUSTOM_SEC
+ #include "atp_dmf_cmd_def.h"
+
+ ATP_MT_DMF_URC_IND_TYPE_MAX,
+} atp_mt_dmf_urc_ind_type_enum;
+
+
+/*****************************
+ *Define REQ structure here
+ ******************************/
+#define DMF_CMD_REQ(STRUCT_NAME, PARA_NAME) \
+typedef struct \
+{
+ #define DMF_FIELD_VAR(VAR_TYPE, VAR_NAME, MAX_VAL) VAR_TYPE VAR_NAME;
+ #define DMF_FIELD_VAR_O(VAR_TYPE, VAR_NAME, MAX_VAL) kal_bool is_##VAR_NAME##_present;\
+ VAR_TYPE VAR_NAME;
+ #define DMF_FIELD_VAR_ARRAY(VAR_TYPE, VAR_NAME, LENGTH) VAR_TYPE VAR_NAME[LENGTH];
+ #define DMF_FIELD_VAR_ARRAY_D(VAR_TYPE, VAR_NAME, LENGTH) kal_uint16 VAR_NAME##_cnt; \
+ VAR_TYPE VAR_NAME[LENGTH];
+ #define DMF_FIELD_STRING(STR_NAME, LENGTH) kal_uint16 STR_NAME##_len; \
+ kal_char STR_NAME[LENGTH+1];
+
+#define DMF_CMD_REQ_END(STRUCT_NAME) \
+} STRUCT_NAME;
+
+#define DMF_CMD_REQ_SEC
+#define DMF_CUSTOM_SEC
+#include "atp_dmf_cmd_def.h"
+
+
+
+/*****************************
+ *Define CNF structure here
+ ******************************/
+#define DMF_CMD_CNF(RES_TYPE, STRUCT_NAME, PARA_NAME) \
+typedef struct \
+{
+
+ #define DMF_FIELD_VAR(VAR_TYPE, VAR_NAME, MAX_VAL) VAR_TYPE VAR_NAME;
+ #define DMF_FIELD_VAR_LONG(VAR_TYPE, VAR_NAME, MAX_VAL) VAR_TYPE VAR_NAME;
+ #define DMF_FIELD_VAR_ARRAY(VAR_TYPE, VAR_NAME, LENGTH) VAR_TYPE VAR_NAME[LENGTH];
+ #define DMF_FIELD_VAR_ARRAY_D(VAR_TYPE, VAR_NAME, LENGTH) kal_uint16 VAR_NAME##_cnt; \
+ VAR_TYPE VAR_NAME[LENGTH];
+ #define DMF_FIELD_STRING(STR_NAME, LENGTH) kal_uint16 STR_NAME##_len; \
+ kal_char STR_NAME[LENGTH+1];
+
+#define DMF_CMD_CNF_END(STRUCT_NAME) \
+} STRUCT_NAME;
+
+#define DMF_CMD_CNF_SEC
+#define DMF_CUSTOM_SEC
+#include "atp_dmf_cmd_def.h"
+
+
+
+/*****************************
+ *Define IND structure here
+ ******************************/
+#define DMF_URC_IND(IND_TYPE, STRUCT_NAME, PARA_NAME) \
+typedef struct \
+{
+
+ #define DMF_FIELD_VAR(VAR_TYPE, VAR_NAME, MAX_VAL) VAR_TYPE VAR_NAME;
+ #define DMF_FIELD_VAR_LONG(VAR_TYPE, VAR_NAME, MAX_VAL) VAR_TYPE VAR_NAME;
+ #define DMF_FIELD_VAR_ARRAY(VAR_TYPE, VAR_NAME, LENGTH) VAR_TYPE VAR_NAME[LENGTH];
+ #define DMF_FIELD_VAR_ARRAY_D(VAR_TYPE, VAR_NAME, LENGTH) kal_uint16 VAR_NAME##_cnt; \
+ VAR_TYPE VAR_NAME[LENGTH];
+ #define DMF_FIELD_STRING(STR_NAME, LENGTH) kal_uint16 STR_NAME##_len; \
+ kal_char STR_NAME[LENGTH+1];
+
+#define DMF_URC_IND_END(STRUCT_NAME) \
+} STRUCT_NAME;
+
+#define DMF_URC_IND_SEC
+#define DMF_CUSTOM_SEC
+#include "atp_dmf_cmd_def.h"
+
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 ch_id;
+ kal_uint32 app_id;
+
+ union {
+ #define DMF_CMD_REQ(STRUCT_NAME, PARA_NAME) STRUCT_NAME PARA_NAME;
+ #define DMF_CUSTOM_SEC
+ #include "atp_dmf_cmd_def.h"
+ kal_uint32 reservered;
+ } p;
+} atp_mt_dmf_cmd_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 ch_id;
+ kal_uint32 app_id;
+ proxy_cmd_result_enum result;
+ atp_mt_dmf_cmd_cnf_type_enum cnf_type;
+
+ union {
+ #define DMF_CMD_CNF(RES_TYPE, STRUCT_NAME, PARA_NAME) STRUCT_NAME PARA_NAME;
+ #define DMF_CUSTOM_SEC
+ #include "atp_dmf_cmd_def.h"
+ kal_uint32 reservered;
+ } p;
+
+} atp_mt_dmf_cmd_cnf_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 app_id;
+ atp_mt_dmf_urc_ind_type_enum ind_type;
+
+ union {
+ #define DMF_URC_IND(IND_TYPE, STRUCT_NAME, PARA_NAME) STRUCT_NAME PARA_NAME;
+ #define DMF_CUSTOM_SEC
+ #include "atp_dmf_cmd_def.h"
+ kal_uint32 reservered;
+ } p;
+
+} atp_mt_dmf_urc_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 apmac[DMF_APMAC_LEN];
+
+} atp_mt_dmf_wifiasc_req_struct;
+
+
+#endif /* _ATP_DMF_STRUCT_H_ */
diff --git a/mcu/interface/protocol/general/atp_public_defs.h b/mcu/interface/protocol/general/atp_public_defs.h
new file mode 100644
index 0000000..a431408
--- /dev/null
+++ b/mcu/interface/protocol/general/atp_public_defs.h
@@ -0,0 +1,773 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * atp_public_defs.h
+ *
+ *
+ * Description:
+ * ------------
+ * This file contains the public definitions of ATP
+ *
+ * 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!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _ATP_PUBLIC_DEFS_H_
+#define _ATP_PUBLIC_DEFS_H_
+
+#include "global_def.h"
+#include "cmux_vp_num.h"
+#include "ps_public_enum.h"
+#include "msm_service.h"
+
+#ifdef __UE_SIMULATOR__
+#include "l4c2uegw_struct.h"
+#endif
+
+//CMUX and L5 have the same channel number
+#define ATP_L5_CHANNELS_NUM ((CMUX_VP_NUM_FOR_ATCI * MAX_SIM_NUM) + (CMUX_VP_NUM_FOR_ATCI_EX * MAX_SIM_NUM) + CMUX_VP_NUM_FOR_ATCI_CSD + CMUX_VP_NUM_FOR_ATCI_IMS + CMUX_VP_NUM_FOR_ATCI_IMS_SMS + CMUX_VP_NUM_FOR_NETIF_CONTROL)
+
+typedef enum {
+ ATP_FIRST_CHANNEL,
+ /* channels mapped to ports between AP and MD */
+#ifdef __L5_SUPPORT__
+ #ifdef __CMUX_SUPPORT__
+ ATP_CMUX_CHANNELS_START = ATP_FIRST_CHANNEL,
+ ATP_L5_CHANNELS_START = ATP_CMUX_CHANNELS_START,
+ ATP_CMUX_CHANNELS_END = (ATP_CMUX_CHANNELS_START + (CMUX_VP_NUM_FOR_SINGLE_SIM * MAX_SIM_NUM) + CMUX_VPEX_TOTAL_NUM - 1),
+ ATP_L5_CHANNELS_END = ATP_CMUX_CHANNELS_END,
+ #else
+ ATP_L5_CHANNELS_START = ATP_FIRST_CHANNEL,
+ ATP_L5_CHANNELS_END = ATP_L5_CHANNELS_START + (ATP_L5_CHANNELS_NUM - 1),
+ #endif
+#else
+ #ifdef __CMUX_SUPPORT__
+ ATP_CMUX_CHANNELS_START = ATP_FIRST_CHANNEL,
+ ATP_CMUX_CHANNELS_END = (ATP_CMUX_CHANNELS_START + (CMUX_VP_NUM_FOR_SINGLE_SIM * MAX_SIM_NUM) + CMUX_VPEX_TOTAL_NUM - 1),
+ #endif
+#endif
+
+ /* channels for IMSP */
+//#if defined(__IMS_SUPPORT__)
+ ATP_IMS_CHANNEL_START,
+ ATP_IMS_CHANNEL_END = ATP_IMS_CHANNEL_START + 19, //MSP_MAX_TRANSACTION = 20, it must be the same with ATP_MAX_TRANSACTIONs
+//#endif
+
+ /* test channels per SIM for ELT inject AT command */
+ ATP_TST_CHANNEL,
+ ATP_TST_CHANNEL_END = ATP_TST_CHANNEL + MAX_SIM_NUM - 1,
+
+#ifdef __UE_SIMULATOR__
+ ATP_VMMI_CHANNEL_START,
+ ATP_VMMI_CHANNEL_END = ATP_VMMI_CHANNEL_START + (MAX_VMMI_SIM_NUM * MAX_VMMI_CHANNEL_NUM),
+#endif
+
+ ATP_EPDG_CHANNEL_START,
+ ATP_EPDG_CHANNEL_END = ATP_EPDG_CHANNEL_START + MAX_SIM_NUM - 1,
+ ATP_URC_EPDG_CHANNEL_START,
+ ATP_URC_EPDG_CHANNEL_END = ATP_URC_EPDG_CHANNEL_START + MAX_SIM_NUM - 1,
+
+ ATP_CHANNEL_NUMBER,
+
+ /* URC channel begin
+ below channels are representative for URC, no input/output queue
+ */
+ ATP_URC_CHANNEL,
+ ATP_URC2_CHANNEL,
+#ifdef __TC01_IMS_SUPPORT__
+ ATP_URC3_CHANNEL,
+#endif
+ ATP_URC_EPDG_CHANNEL,
+ ATP_URC4_CHANNEL,
+ ATP_URC_LAST_CHANNEL = ATP_URC4_CHANNEL,
+ /* URC channel end */
+
+ ATP_INVALID_CHANNEL = 0xff
+} atp_channel_enum;
+
+// TODO: to replace MAX_DATA_QUEUE_LENGTH
+#if defined (__LONG_AT_CMD_SUPPORT__) || defined (__SMART_PHONE_MODEM__)
+#define ATP_MAX_DATA_QUEUE_LENGTH 2048
+#elif defined (__ULC_AT__)
+#define ATP_MAX_DATA_QUEUE_LENGTH 192
+#elif defined (__SLIM_AT__)
+#define ATP_MAX_DATA_QUEUE_LENGTH 350
+#else
+#define ATP_MAX_DATA_QUEUE_LENGTH 2048
+#endif
+
+// TODO: replace MAX_UART_LENGTH
+/* size of per UART read/write operation
+ i.e. the size of prepared buffer transfered to UART read API as an output parameter
+*/
+#define ATP_MAX_UART_LENGTH 128
+
+#define ATP_EXT_QUEUE_RESERVE_SPACE 20
+
+
+typedef enum
+{
+ PROXY_CMD_FAIL,
+ PROXY_CMD_SUCCESS,
+ PROXY_CMD_INTERMEDIATE_RSP,
+ PROXY_CMD_NO_CARRIER,
+ PROXY_CMD_BUSY,
+ PROXY_CMD_CONNECT,
+ PROXY_CMD_CONNECT_PS
+} proxy_cmd_result_enum;
+
+typedef enum
+{
+ ATP_WRONG_MODE = 0x00,
+
+ ATP_SET_OR_EXECUTE_MODE = 0x01,
+ ATP_READ_MODE = 0x02,
+ ATP_TEST_MODE = 0x04,
+ ATP_ACTIVE_MODE = 0x8,
+
+ ATP_URC_MODE = 0x10, // URC command
+ ATP_INTERMEDIATE_MODE = 0x20, // intermidate response
+ ATP_RESULT_MODE = 0x40, // Command result
+
+ ATP_SET_OR_EXECUTE_OR_READ_MODE = ATP_SET_OR_EXECUTE_MODE | ATP_READ_MODE,
+ ATP_SET_OR_EXECUTE_OR_TEST_MODE = ATP_SET_OR_EXECUTE_MODE | ATP_TEST_MODE,
+ ATP_SET_OR_EXECUTE_OR_ACTIVE_MODE = ATP_SET_OR_EXECUTE_MODE | ATP_ACTIVE_MODE,
+ ATP_READ_OR_TEST_MODE = ATP_READ_MODE | ATP_TEST_MODE,
+ ATP_READ_OR_ACTIVE_MODE = ATP_READ_MODE | ATP_ACTIVE_MODE,
+ ATP_TEST_OR_ACTIVE_MODE = ATP_TEST_MODE | ATP_ACTIVE_MODE,
+
+ ATP_SET_OR_EXECUTE_OR_READ_OR_TEST_MODE = ATP_SET_OR_EXECUTE_MODE | ATP_READ_MODE | ATP_TEST_MODE,
+ ATP_SET_OR_EXECUTE_OR_READ_OR_ACTIVE_MODE = ATP_SET_OR_EXECUTE_MODE | ATP_READ_MODE | ATP_ACTIVE_MODE,
+ ATP_SET_OR_EXECUTE_OR_TEST_OR_ACTIVE_MODE = ATP_SET_OR_EXECUTE_MODE | ATP_TEST_MODE | ATP_ACTIVE_MODE,
+ ATP_READ_OR_TEST_OR_ACTIVE_MODE = ATP_READ_MODE | ATP_TEST_MODE | ATP_ACTIVE_MODE,
+
+ ATP_ALL_CMD_MODE = 0xff
+} atp_cmd_mode_enum;
+
+typedef enum
+{
+ ATP_CMD_CLASS_INVALID = 0,
+ ATP_CMD_CLASS_PREV,
+ ATP_CMD_CLASS_BASIC,
+ ATP_CMD_CLASS_EXTENDED,
+ ATP_CMD_CLASS_EXTENDED_CUSTOM,
+ ATP_CMD_CLASS_CUSTOM
+} atp_cmd_class_enum;
+
+
+// TODO: _Hong_ replace rmmi_error_report_mode_enum
+typedef enum
+{
+ ATP_SIMPLE_ERROR,
+ ATP_NUMERIC_ERROR,
+ ATP_TEXT_ERROR
+} atp_error_report_mode_enum;
+
+// TODO: _Hong_ replace rmmi_cmd_echo_enum
+typedef enum
+{
+ ATP_ECHO_OFF,
+ ATP_ECHO_ON
+} atp_cmd_echo_enum;
+
+// TODO: _Hong_ replace rmmi_result_code_format
+typedef enum
+{
+ ATP_NUM_PARTIAL_HEAD_TAIL,
+ ATP_VERBOSE_FULL_HEAD_TAIL
+} atp_result_code_format;
+
+// TODO: _Ian_ replace rmmi_result_code_suppress_enum
+typedef enum
+{
+ ATP_SUPPRESS_OFF,
+ ATP_SUPPRESS_ON
+} atp_result_code_suppress_enum;
+
+
+typedef enum
+{
+ ATP_PARSE_ERR_NO_FIELDS,
+ ATP_PARSE_ERR_INCOMPLETE_FIELD,
+ ATP_PARSE_ERR_INCOMPLETE_FIELD_WITH_SPACE,
+ ATP_PARSE_ERR_INCOMPLETE_FIELD_UNEXPECT_CHAR,
+ ATP_PARSE_ERR_REACH_MAX_FIELDS,
+} atp_cmd_parse_error_enum;
+
+
+
+// TODO: _Hong_ replace rmmi_rsp_type_enum
+typedef enum
+{
+ /* --- standard result codes, defined in V.25 Table1 --- */
+ ATP_RCODE_OK, //0
+ ATP_RCODE_CONNECT, //1
+ ATP_RCODE_RING, //2
+ ATP_RCODE_NO_CARRIER, //3
+ ATP_RCODE_ERROR, //4
+ //there is no 5 in V.25 spec.
+ //ATP_RCODE_NO_DIALTONE = 6, //6
+ ATP_RCODE_BUSY = 7, //7
+ //ATP_RCODE_NO_ANSWER = 8, //8
+
+ /* --- MTK Proprietary result codes --- */
+ ATP_RCODE_CONNECT_PS = 100, //MAUI_02956467, mtk02285, for PS call
+} atp_rsp_type_enum;
+
+typedef enum
+{
+ ATP_SPACE = ' ',
+ ATP_EQUAL = '=',
+ ATP_COMMA = ',',
+ ATP_SEMICOLON = ';',
+ ATP_COLON = ':',
+ ATP_AT = '@',
+ ATP_HAT = '^',
+ ATP_DOUBLE_QUOTE = '"',
+ ATP_QUESTION_MARK = '?',
+ ATP_EXCLAMATION_MARK = '!',
+ ATP_FORWARD_SLASH = '/',
+ ATP_L_ANGLE_BRACKET = '<',
+ ATP_R_ANGLE_BRACKET = '>',
+ ATP_L_SQ_BRACKET = '[',
+ ATP_R_SQ_BRACKET = ']',
+ ATP_L_CURLY_BRACKET = '{',
+ ATP_R_CURLY_BRACKET = '}',
+ ATP_CHAR_STAR = '*',
+ ATP_CHAR_POUND = '#',
+ ATP_CHAR_AMPSAND = '&',
+ ATP_CHAR_PERCENT = '%',
+ ATP_CHAR_PLUS = '+',
+ ATP_CHAR_MINUS = '-',
+ ATP_CHAR_DOT = '.',
+ ATP_CHAR_ULINE = '_',
+ ATP_CHAR_TILDE = '~',
+ ATP_CHAR_REVERSE_SOLIDUS = '\\',
+ ATP_CHAR_VERTICAL_LINE = '|',
+ ATP_END_OF_STRING_CHAR = '\0',
+ ATP_CHAR_0 = '0',
+ ATP_CHAR_1 = '1',
+ ATP_CHAR_2 = '2',
+ ATP_CHAR_3 = '3',
+ ATP_CHAR_4 = '4',
+ ATP_CHAR_5 = '5',
+ ATP_CHAR_6 = '6',
+ ATP_CHAR_7 = '7',
+ ATP_CHAR_8 = '8',
+ ATP_CHAR_9 = '9',
+ ATP_CHAR_A = 'A',
+ ATP_CHAR_B = 'B',
+ ATP_CHAR_C = 'C',
+ ATP_CHAR_D = 'D',
+ ATP_CHAR_E = 'E',
+ ATP_CHAR_F = 'F',
+ ATP_CHAR_G = 'G',
+ ATP_CHAR_H = 'H',
+ ATP_CHAR_I = 'I',
+ ATP_CHAR_J = 'J',
+ ATP_CHAR_K = 'K',
+ ATP_CHAR_L = 'L',
+ ATP_CHAR_M = 'M',
+ ATP_CHAR_N = 'N',
+ ATP_CHAR_O = 'O',
+ ATP_CHAR_P = 'P',
+ ATP_CHAR_Q = 'Q',
+ ATP_CHAR_R = 'R',
+ ATP_CHAR_S = 'S',
+ ATP_CHAR_T = 'T',
+ ATP_CHAR_U = 'U',
+ ATP_CHAR_V = 'V',
+ ATP_CHAR_W = 'W',
+ ATP_CHAR_X = 'X',
+ ATP_CHAR_Y = 'Y',
+ ATP_CHAR_Z = 'Z',
+ atp_char_a = 'a',
+ atp_char_b = 'b',
+ atp_char_c = 'c',
+ atp_char_d = 'd',
+ atp_char_e = 'e',
+ atp_char_f = 'f',
+ atp_char_g = 'g',
+ atp_char_h = 'h',
+ atp_char_i = 'i',
+ atp_char_j = 'j',
+ atp_char_k = 'k',
+ atp_char_l = 'l',
+ atp_char_m = 'm',
+ atp_char_n = 'n',
+ atp_char_o = 'o',
+ atp_char_p = 'p',
+ atp_char_q = 'q',
+ atp_char_r = 'r',
+ atp_char_s = 's',
+ atp_char_t = 't',
+ atp_char_u = 'u',
+ atp_char_v = 'v',
+ atp_char_w = 'w',
+ atp_char_x = 'x',
+ atp_char_y = 'y',
+ atp_char_z = 'z',
+ ATP_R_BRACKET = ')',
+ ATP_L_BRACKET = '(',
+ ATP_MONEY = '$',
+ ATP_EURO = 0x80 /*to avoid build error due to wcxsubmit issue*/
+} atp_char_enum;
+// TODO: _Hong_ replace rmmi_char_enum by atp_char_enum
+
+// TODO: use run time ATP context to store S3 character
+#define ATP_CHAR_S3 13
+
+//for BS(BackSpace) = '\b' = ^H
+#define ATP_CHAR_BS 0x08
+//for LF(Line Feed, end of line) = '\n' = ^J
+#define ATP_CHAR_LF 0x0a
+//for CR(Carriage Return) = '\r' = ^M
+#define ATP_CHAR_CR 0x0d
+//for CTRL-Z
+#define ATP_CHAR_CTRL_Z 0x1a
+//for ESC
+#define ATP_CHAR_ESC 0x1b
+
+#define ATP_EXTEND_SYMBOL_HASH_BASE 79235168 // 38^5
+
+
+// TODO: _Hong_ to replace rmmi_err_id_enum
+/*
+All values below 256 are reserved.
+Values in the range 0 - 100 are reserved for general errors.
+Values in the range 101 - 150 are reserved for use by GPRS and EPS.
+Values in the range 151 - 170 are reserved for use by VBS/VGCS and eMLPP.
+Values in the range 171 - 256 can be used by GPRS or by EPS.
+Sometimes ps_cause_enum is mixed in +CME ERROR: <err>; however this is a bad design
+*/
+typedef enum
+{
+ /* 07.07 Sec 9.2.1 */
+ ATP_ERR_PHONE_FAILURE,
+ ATP_ERR_NO_CONNECTION_TO_PHONE = 1,
+ ATP_ERR_PHONE_ADAPTOR_LINK_RESERVED = 2,
+ ATP_ERR_OPERATION_NOT_ALLOWED = 3,
+ ATP_ERR_OPERATION_NOT_SUPPORTED = 4,
+ ATP_ERR_PH_SIM_PIN_REQUIRED = 5,
+ ATP_ERR_PH_FSIM_PIN_REQUIRED = 6, //Kinki: SIM-ME lock [MAUI_01264994]
+ ATP_ERR_PH_FSIM_PUK_REQUIRED = 7, //Kinki: SIM-ME lock [MAUI_01264994]
+ ATP_ERR_SIM_NOT_INSERTED = 10,
+ ATP_ERR_SIM_PIN_REQUIRED = 11,
+ ATP_ERR_SIM_PUK_REQUIRED = 12,
+ ATP_ERR_SIM_FAILURE = 13,
+ ATP_ERR_SIM_BUSY = 14,
+ ATP_ERR_SIM_WRONG = 15,
+ ATP_ERR_INCORRECT_PASSWD = 16,
+ ATP_ERR_SIM_PIN2_REQUIRED = 17,
+ ATP_ERR_SIM_PUK2_REQUIRED = 18,
+ ATP_ERR_MEM_FULL = 20,
+ ATP_ERR_INVALID_INDEX = 21,
+ ATP_ERR_NO_FOUND = 22,
+ ATP_ERR_TEXT_ERRSTRING_TOO_LONG_ERR = 24,
+ ATP_ERR_INVALID_CHARACTERS_IN_TEXT_ERRSTRING_ERR = 25,
+ ATP_ERR_DIAL_ERRSTRING_TOO_LONG_ERR = 26,
+ ATP_ERR_INVALID_CHARACTERS_IN_DIAL_ERRSTRING_ERR = 27,
+ ATP_ERR_NO_NW_SERVICE = 30,
+ ATP_ERR_NETWORK_TIMEOUT = 31,
+ ATP_ERR_NETWORK_NOT_ALLOWED = 32,
+ ATP_ERR_NW_PERSON_PIN_REQUIRED = 40,
+ ATP_ERR_NW_PERSON_PUK_REQUIRED = 41,
+ ATP_ERR_NW_SUB_PERSON_PIN_REQUIRED = 42,
+ ATP_ERR_NW_SUB_PERSON_PUK_REQUIRED = 43,
+ ATP_ERR_SP_PERSON_PIN_REQUIRED = 44,
+ ATP_ERR_SP_PERSON_PUK_REQUIRED = 45,
+ ATP_ERR_CORP_PERSON_PIN_REQUIRED = 46,
+ ATP_ERR_CORP_PERSON_PUK_REQUIRED = 47,
+ ATP_ERR_HIDDEN_KEY_REQUIRED = 48,
+ ATP_ERR_EAP_NOT_SUPPORT = 49,
+ ATP_ERR_INCORRECT_PARAM = 50,
+ ATP_ERR_CMD_IMPLEMENT_BUT_CUR_DISABLED = 51,
+ ATP_ERR_CMD_ABORT_BY_USER = 52,
+ ATP_ERR_NOT_ATTACHED_TO_NETWORK = 53,
+ ATP_ERR_MODEM_NOT_ALLOW = 54,
+ ATP_ERR_OPERATION_NOT_ALLOW_MT_RESTRICTIONS = 55,
+ ATP_ERR_FIXED_DIAL_NUMBER_ONLY_ALLOW = 56,
+ ATP_ERR_TEMP_OUT_OF_SERVICE = 57,
+ ATP_ERR_LANG_NOT_SUPPORT = 58,
+ ATP_ERR_UNEXPECTED_VALUE = 59,
+ ATP_ERR_SYSTEM_FAILURE = 60,
+ ATP_ERR_DATA_MISSING = 61,
+ ATP_ERR_CALL_BARRED = 62,
+ ATP_ERR_SLA_AUTH_FAIL = 63,
+ ATP_ERR_UNKNOWN = 100,
+
+
+ ATP_ERR_ILLEGAL_MS = 103,
+ ATP_ERR_ILLEGAL_ME = 106,
+ ATP_ERR_GPRS_NOT_ALLOWED = 107,
+ ATP_ERR_GPRS_NON_GPRS_NOT_ALLOWED = 108,
+ ATP_ERR_PLMN_NOT_ALLOWED = 111,
+ ATP_ERR_LA_NOT_ALLOWED = 112,
+ ATP_ERR_ROAMING_AREA_NOT_ALLOWED = 113,
+ ATP_ERR_GPRS_NOT_ALLOWED_IN_THIS_PLMN = 114,
+ ATP_ERR_NO_SUITABLE_CELL = 115,
+ ATP_ERR_CONGESTION = 122,
+ ATP_ERR_NOT_AUTH_FOR_CSG = 125,
+
+ ATP_ERR_INSUFF_RESOURCE = 126,
+ ATP_ERR_MISSING_APN = 127,
+ ATP_ERR_UNKNOWN_PDP_ADDR = 128,
+ ATP_ERR_USER_AUTH_FAIL = 129,
+ ATP_ERR_ACTIVATION_REJ_BY_GGSN = 130,
+ ATP_ERR_ACTIVATION_REJ_UNSPECIFIED = 131,
+ ATP_ERR_SERV_OPTION_NOT_SUPPORTED = 132,
+ ATP_ERR_REQ_SERV_OPTION_NOT_SUBSCRIBED = 133,
+ ATP_ERR_SERV_OPTION_TEMP_OUT_OF_ORDER = 134,
+
+ ATP_ERR_FEATURE_NOT_SUPPORTED = 140,
+ ATP_ERR_SEMANTIC_ERR_IN_TFT = 141,
+ ATP_ERR_SYNTACTICAL_ERR_IN_TFT = 142,
+ ATP_ERR_UNKNOWN_PDP_CONTEXT = 143,
+ ATP_ERR_SEMANTIC_ERR_IN_PF = 144,
+ ATP_ERR_SYNTACTICAL_ERR_IN_PF = 145,
+ ATP_ERR_PDP_CONTEXT_WO_TFT_ALREADY_ACTIVATED = 146,
+
+ ATP_ERR_GPRS_UNSPECIFIED_ERROR = 148,
+ ATP_ERR_PDP_AUTH_FAIL = 149,
+ ATP_ERR_INVALID_MOBILE_CLASS = 150,
+ ATP_ERR_LAST_PDN_DISC_NOT_ALLOWED = 171,
+
+ ATP_ERR_SEMANTICALLY_INCORRECT_MSG = 172,
+ ATP_ERR_MANDATORY_IE_ERR = 173,
+ ATP_ERR_IE_NOT_EXIST = 174,
+ ATP_ERR_COND_IR_ERR = 175,
+ ATP_ERR_PROTOCOL_ERR_UNSPECIFIED = 176,
+
+ ATP_ERR_OPERATOR_BARRING = 177,
+ ATP_ERR_MAXIMUM_PDP_CONTEXT = 178,
+ ATP_ERR_REQUESTED_APN_NOT_SUPPORTED = 179,
+ ATP_ERR_REQUEST_REJ_BCM_MODE_VIOLATION = 180,
+ ATP_ERR_REQUEST_REJ_UNSUPPORTED_QCI_VALUE = 181,
+
+ ATP_ERROR_DIAL_MODIFIED_TO_DAIL = 246, /* This is specified for TC09 */
+
+ /*** according to TS 27.007 9.2.0, all values below 256 are reserved ***/
+
+ ATP_ERR_LINK_NS_SP_PERSON_PIN_REQUIRED = 257, //Kinki: SIM-ME lock [MAUI_01264994]
+ ATP_ERR_LINK_NS_SP_PERSON_PUK_REQUIRED = 258, //Kinki: SIM-ME lock [MAUI_01264994]
+ ATP_ERR_LINK_SIM_C_PERSON_PIN_REQUIRED = 259, //Kinki: SIM-ME lock [MAUI_01264994]
+ ATP_ERR_LINK_SIM_C_PERSON_PUK_REQUIRED = 260, //Kinki: SIM-ME lock [MAUI_01264994]
+ ATP_ERR_CHANNEL_NOT_ALLOWED_IN_META_MODE = 261, //Block all AT channels other than +EMETACFG when in META mode
+
+ /* The following error causes should be added into rmmi_result_code_fmttr() to be displayed in +CME ERROR */
+ ATP_ERR_VERIFICATION_FAILED = 270, /* for TMO */
+ ATP_ERR_REBOOT_REQUIRED = 271, /* for TMO */
+
+ /* following are proprietary error cause : the cause below WON'T be showed as +CME ERROR. */
+ ATP_ERR_COMMAND_CONFLICT = 302, //same as operation not allowed in 07.05 Sec 3.2.5
+ // will be convert to +CME ERROR: 3 or +CMS ERROR: 302
+ ATP_NO_ERR = 600,
+
+ /* following: error is related to syntax, invalid parameters.. */
+ /* according to spec 07.07 Sec 9.1, only "ERROR" will be returned to TE side */
+ ATP_ERR_UNRECOGNIZED_CMD = 601,
+ ATP_ERR_RETURN_ERROR = 602,
+ ATP_ERR_SYNTEX_ERROR = 603,
+ ATP_ERR_UNSPECIFIED = 604, //unspecified parsing error
+ ATP_ERR_DATA_TRANSFER_ALREADY = 605,
+ ATP_ERR_ACTION_ALREADY = 606,
+ ATP_ERR_NOT_AT_CMD = 607,
+ ATP_ERR_MULTI_CMD_TOO_LONG = 608,
+ ATP_ERR_ABORT_COPS = 609,
+ ATP_ERR_NO_CALL_DISC = 610,
+ ATP_ERR_BT_SAP_UNDEFINED = 611,
+ ATP_ERR_BT_SAP_NOT_ACCESSIBLE = 612,
+ ATP_ERR_BT_SAP_CARD_REMOVED = 613,
+ ATP_ERR_AT_NOT_ALLOWED_BY_CUSTOMER = 614,
+ ATP_ERR_MM_LU_REJ_17_IN_MANUAL_MODE = 615,
+ ATP_ERR_CARD_TECHNICAL_PROBLEM = 616,
+ ATP_ERR_BT_SAP_CARD_ALREADY_POWERED_OFF = 617,
+ ATP_ERR_BT_SAP_CARD_ALREADY_POWERED_ON = 618,
+ ATP_ERR_RMS_RFON_NOT_ALLOWED = 619,
+ ATP_ERR_RMS_SIMON_NOT_ALLOWED = 620,
+
+ // for secure AT command, refer to MSM_ERROR_E
+ ATP_ERR_SECURE_AT_CAUSE_START = MSM_ERROR_START, // 0x600, 1536
+ ATP_ERR_SECURE_AT_CAUSE_END = MSM_ERROR_END, // 0x6FF, 1791
+
+ /* below err id are reserved for LWTG protocol stack */
+ ATP_ERR_CAUSE_FDN_BLOCKED = PHB_CAUSE_FDN_BLOCKED, //2600
+ ATP_ERR_LWTG_PS_START = REPORT_TO_UPPER_LAYER_CAUSE_START,
+ ATP_ERR_LWTG_PS_END = REPORT_TO_UPPER_LAYER_CAUSE_END,
+ /* above err id are reserved for LWTG protocol stack */
+
+ ATP_ERR_NONE = 0xffff
+} atp_err_id_enum;
+
+typedef enum
+{
+ ATP_PARSE_OK,
+ ATP_PARSE_ERROR,
+ ATP_PARSE_NOT_FOUND,
+ ATP_PARSE_TEXT_TOO_LONG
+} atp_validator_cause_enum;
+// TODO:_Hong_ replace imsp_validator_cause_enum with atp_validator_cause_enum
+
+typedef enum
+{
+ ATP_EXTEND_HASH_PLUS = ATP_EXTEND_SYMBOL_HASH_BASE*0, // + : 0*38^5
+ ATP_EXTEND_HASH_HAT = ATP_EXTEND_SYMBOL_HASH_BASE*1, // ^ : 1*38^5
+ ATP_EXTEND_HASH_PERCENT = ATP_EXTEND_SYMBOL_HASH_BASE*2, // % : 2*38^5
+ ATP_EXTEND_HASH_MONEY = ATP_EXTEND_SYMBOL_HASH_BASE*3, // $ : 3*38^5
+ ATP_EXTEND_HASH_STAR = ATP_EXTEND_SYMBOL_HASH_BASE*4 // * : 4*38^5
+} atp_extend_symbol_hash_enum;
+
+
+
+typedef enum
+{
+ ATP_FIELD_TYPE_INVALIDE,
+ ATP_FIELD_UNKNOWN_STR, // others
+ ATP_FIELD_TYPE_INT, // 1
+ ATP_FIELD_TYPE_STR, // ,"mtk",
+ ATP_FIELD_TYPE_EMPTY, // ,,
+
+} atp_field_enum;
+
+typedef struct
+{
+ kal_uint8 *field_ptr;
+ kal_uint16 field_len;
+ kal_int64 field_value;
+ atp_field_enum field_type;
+
+} atp_field_struct;
+
+#define ATP_FIELD_MAX 30
+
+typedef struct atp_string_struct
+{
+ kal_uint8 *string_ptr;
+ kal_uint8 tid; // used to record the ATP transaction ID
+ kal_uint16 index;
+ kal_uint16 string_length;
+ kal_uint16 cmd_index;
+ kal_uint16 hdlr_index;
+ kal_uint16 field_count;
+ atp_field_struct *field_list;
+ atp_cmd_mode_enum cmd_mode;
+ atp_cmd_class_enum cmd_class;
+ atp_extend_symbol_hash_enum symbol_hash;
+
+} atp_string_struct;
+// TODO: _Hong_ replace atp_string_struct
+
+
+typedef struct
+{
+ /* TODO */
+ kal_uint8 reserved;
+
+} atp_multiple_basic_cmd_struct;
+
+
+
+#define ATP_UNKNOWN_REPORT_MODE 0xff
+
+typedef enum
+{
+ ATP_REPORT_MODE_NONE,
+ ATP_REPORT_MODE_CMEE,
+ ATP_REPORT_MODE_ECSQ,
+ ATP_REPORT_MODE_CREG,
+ ATP_REPORT_MODE_CGREG,
+ ATP_REPORT_MODE_CEREG,
+ ATP_REPORT_MODE_EN3GPECP,
+ ATP_REPORT_MODE_EANBR,
+ ATP_REPORT_MODE_EICPG,
+ ATP_REPORT_MODE_C5GUSMS,
+ //Add new report mode here
+ ATP_REPORT_MODE_MAX
+
+} atp_urc_report_mode_enum;
+
+typedef enum
+{
+ ATP_AT_CMD_BLOCK_FOR_LDU,
+ ATP_AT_CMD_BLOCK_STANDARD,
+ ATP_AT_CMD_BLOCK_MAX
+} atp_at_cmd_block_enum;
+
+
+#endif /* _ATP_PUBLIC_DEFS_H_ */
diff --git a/mcu/interface/protocol/general/atp_public_utility.h b/mcu/interface/protocol/general/atp_public_utility.h
new file mode 100644
index 0000000..36cd8c4
--- /dev/null
+++ b/mcu/interface/protocol/general/atp_public_utility.h
@@ -0,0 +1,256 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * atp_public_utility.h
+ *
+ *
+ * Description:
+ * ------------
+ * This file contains the function prototype for
+ * AT PROXY module utility functions.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+
+#ifndef _ATP_PUBLIC_UTILITY_H
+#define _ATP_PUBLIC_UTILITY_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+#include "sim_exported_enum.h"
+
+
+#define ATP_VALIDATOR_OK 0
+#define ATP_VALIDATOR_ERROR 255
+
+#define ATP_IS_NUMBER( alpha_char ) \
+ ( ( (alpha_char >= ATP_CHAR_0) && (alpha_char <= ATP_CHAR_9) ) ? 1 : 0 )
+
+#define ATP_IS_LOWER( alpha_char ) \
+ ( ( (alpha_char >= atp_char_a) && (alpha_char <= atp_char_z) ) ? 1 : 0 )
+
+#define ATP_IS_UPPER( alpha_char ) \
+ ( ( (alpha_char >= ATP_CHAR_A) && (alpha_char <= ATP_CHAR_Z) ) ? 1 : 0 )
+
+#define ATP_IS_ALPHA( alpha_char ) \
+ ( ( ATP_IS_UPPER(alpha_char) || ATP_IS_LOWER(alpha_char) ) ? 1 : 0 )
+
+#define atp_skip_spaces(source_string_ptr) \
+ while ((source_string_ptr->index < source_string_ptr->string_length) \
+ && (source_string_ptr->string_ptr[source_string_ptr->index] == ATP_SPACE)) \
+ { \
+ source_string_ptr->index++; \
+ }
+#define atp_skip_none_a(atp_string_ptr) \
+ while( (atp_string_ptr->index < atp_string_ptr->string_length) && !((atp_string_ptr->string_ptr[ atp_string_ptr->index ] == ATP_CHAR_A) ||\
+ (atp_string_ptr->string_ptr[ atp_string_ptr->index ] == atp_char_a)) ) \
+ { \
+ atp_string_ptr->index++; \
+ }
+
+void atp_to_upper(kal_uint8 *str, kal_uint16 str_len);
+
+kal_uint32 atp_int_validator_ext(kal_uint8 *error_cause,
+ atp_string_struct *source_string_ptr,
+ kal_uint8 delimiter,
+ kal_uint16 str_len);
+
+kal_int32 atp_signed_int_validator(kal_uint8 *error_cause, atp_string_struct *source_string_ptr, kal_uint8 delimiter);
+
+kal_uint8 atp_hex_validator_ext(kal_uint8 *error_cause,
+ atp_string_struct *source_string_ptr,
+ kal_uint8 delimiter,
+ kal_uint16 max_length,
+ kal_uint8 *str);
+
+kal_uint8 atp_string_validator_ext(kal_uint8 *error_cause,
+ atp_string_struct *source_string_ptr,
+ kal_uint16 source_string_len,
+ kal_uint8 delimiter,
+ kal_uint16 max_length,
+ kal_uint8 *str);
+
+kal_uint32 atp_extract_number_ext(atp_string_struct *source_string_ptr,
+ atp_validator_cause_enum *result,
+ kal_uint32 max);
+
+void atp_int_to_ascii_converter(kal_uint32 digit, kal_uint8 *buff_ptr);
+
+kal_uint16 atp_fast_string_print(kal_uint8 *buff_ptr,
+ kal_uint8 *fmt,
+ void *arg_list[],
+ kal_uint8 nos_arg);
+
+kal_bool atp_hexstring_to_integer(kal_char *str, kal_uint32 *val);
+
+kal_bool atp_hexstring_to_integer_ext(kal_char *str, kal_uint32 *val, kal_uint16 str_len);
+
+kal_bool atp_hexstring_to_bytes(kal_char *str, kal_uint8 *val, kal_uint16 val_buf_size);
+
+// TODO:_Hong_ replace IMSP and RMMI utility functions by above utilities
+
+kal_uint32 atp_int_validator_range_check(
+ kal_uint8 *error_cause,
+ atp_string_struct *source_string_ptr,
+ kal_uint8 delimiter,
+ kal_uint32 max);
+
+
+/*****************************************************************************
+ * FUNCTION
+ * atp_check_at_prefix
+ *
+ * DESCRIPTION
+ * check the input string begins with "AT"
+ *
+ * PARAMETERS
+ * str_ptr [IN] ASCII string
+ * str_len [IN] length of *str_ptr
+ *
+ * RETURNS
+ * KAL_TRUE/KAL_FALSE depends on success or fail.
+ *
+ *****************************************************************************/
+kal_bool atp_check_at_prefix(kal_uint8 *str_ptr, kal_uint16 str_len);
+
+/*****************************************************************************
+ * FUNCTION
+ * l4b_atp_find_cmd_mode
+ *
+ * DESCRIPTION
+ * find the command mode of *at_cmd_ptr
+ *
+ * PARAMETERS
+ * at_cmd_ptr [IN] ASCII string
+ * at_cmd_len [IN] length of *at_cmd_ptr
+ *
+ * RETURNS
+ * atp_cmd_mode_enum the command mode of *at_cmd_ptr
+ *
+ *****************************************************************************/
+atp_cmd_mode_enum l4b_atp_find_cmd_mode(atp_string_struct *at_cmd_ptr);
+
+/*****************************************************************************
+ * FUNCTION
+ * atp_get_urc_report_mode
+ * DESCRIPTION
+ * This function is used to get URC report mode value
+ * PARAMETERS
+ * ps_id [IN] which protocol id
+ * urc_type [IN] which URC's report mode you want to know
+ * RETURNS
+ * URC's report mode value is returned.
+ *****************************************************************************/
+kal_uint8 atp_get_urc_report_mode(protocol_id_enum ps_id, atp_urc_report_mode_enum urc_type);
+
+/*****************************************************************************
+ * FUNCTION
+ * atp_set_urc_report_mode
+ * DESCRIPTION
+ * This function is used to set URC report mode value
+ * PARAMETERS
+ * urc_type [IN] which URC's report mode value you want to set
+ * mode [IN] the value to be set.
+ * RETURNS
+ * void
+ *****************************************************************************/
+void atp_set_urc_report_mode(atp_urc_report_mode_enum urc_type, kal_uint8 mode);
+
+#ifdef __SENSITIVE_DATA_MOSAIC__
+/*****************************************************************************
+ * FUNCTION
+ * atp_copy_partial_string
+ * DESCRIPTION
+ * This function is used to mask the trace output
+ * PARAMETERS
+ * in_str_ptr [IN] Input string
+ * in_str_len [IN] Input string length
+ * at_str_ptr [IN] AT output string
+ * at_str_len [IN] AT output string length
+ * RETURNS
+ * void
+ *****************************************************************************/
+void atp_copy_partial_string(kal_uint8 *in_str_ptr, kal_uint16 in_str_len, kal_uint8 *at_str_ptr, kal_uint16 at_str_len);
+
+/*****************************************************************************
+ * FUNCTION
+ * atp_usir_command_analyzer
+ * DESCRIPTION
+ * This function is used to find sensitive AT cmd
+ * PARAMETERS
+ * hash_value1 [IN] hash_value1 for at command
+ * hash_value2 [IN] hash_value2 for at command
+ * index [IN] index of table for return
+ * RETURNS
+ * void
+ *****************************************************************************/
+kal_bool atp_usir_command_analyzer(kal_uint32 hash_value1, kal_uint32 hash_value2, kal_uint8 *index);
+
+/*****************************************************************************
+ * FUNCTION
+ * atp_check_sensitive_command
+ * DESCRIPTION
+ * This function is used to check sensitive AT cmd
+ * PARAMETERS
+ * buffer * [IN] command string pointer
+ * row_index [IN] index of table for return
+ * RETURNS
+ * kal_bool [OUT] find the command or not
+ *****************************************************************************/
+kal_bool atp_check_sensitive_command(kal_uint8 *buffer, kal_uint8 *row_index);
+
+/*****************************************************************************
+* FUNCTION
+* atp_public_usir_process_ft
+* DESCRIPTION
+* This function is used to check sensitive AT cmd
+* PARAMETERS
+* buffer * [IN] command string pointer
+* row_index [IN] index of table for return
+* RETURNS
+* kal_bool [OUT] process the command or not
+*****************************************************************************/
+kal_bool atp_public_usir_process_ft(kal_uint8 *buffer, kal_uint8 row_index);
+
+#endif /* __SENSITIVE_DATA_MOSAIC__ */
+
+#endif /* _ATP_PUBLIC_UTILITY_H */
diff --git a/mcu/interface/protocol/general/cm2gas_struct.h b/mcu/interface/protocol/general/cm2gas_struct.h
new file mode 100644
index 0000000..31e59ae
--- /dev/null
+++ b/mcu/interface/protocol/general/cm2gas_struct.h
@@ -0,0 +1,82 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * cm2gas_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between CC and RRM layers.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+#ifndef _CM2GAS_STRUCT_H
+#define _CM2GAS_STRUCT_H
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ cc_call_type_enum call_type;
+} cc_gas_call_failure_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ps_cause_enum cc_disconnect_cause;
+ cc_call_direction_enum call_direction;
+} cc_gas_call_status_ind_struct;
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/cmux_vp_num.h b/mcu/interface/protocol/general/cmux_vp_num.h
new file mode 100644
index 0000000..b324f44
--- /dev/null
+++ b/mcu/interface/protocol/general/cmux_vp_num.h
@@ -0,0 +1,244 @@
+/*******************************************************************************
+* 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:
+ * ---------
+ * cmux_vp_num.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Header file for CMUX Virtual Port Number Inclusion
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ ******************************************************************************/
+
+#ifndef CMUX_VP_NUM_H
+#define CMUX_VP_NUM_H
+/******************************************************************************/
+
+#include "global_def.h"
+
+/******************************************************************************/
+
+// CMUX_VP_NUM_FOR_ATCI
+#define CMUX_VP_NUM_FOR_ATCI 5
+#define CMUX_VP_NUM_FOR_ATCI_EX 6
+
+#define CMUX_VP_NUM_FOR_ATCI_CSD 0
+
+// CMUX_VP_NUM_FOR_VT
+#if defined(__VT_TRANSPORT_SUPPORT__)
+#define CMUX_VP_NUM_FOR_VT 1
+#else
+#define CMUX_VP_NUM_FOR_VT 0
+#endif
+
+// CMUX_VP_NUM_FOR_CS
+#if defined(__DATA_CARD_SPEECH__)
+#define CMUX_VP_NUM_FOR_CS 1
+#else
+#define CMUX_VP_NUM_FOR_CS 0
+#endif
+
+//CMUX_VP_NUM_FOR_ATCI_IMS
+#define CMUX_VP_NUM_FOR_ATCI_IMS 2
+
+//CMUX_VP_NUM_FOR_ATCI_IMS_SMS
+#define CMUX_VP_NUM_FOR_ATCI_IMS_SMS 4
+
+//CMUX_VP_NUM_FOR_NETIF_CONTROL
+#define CMUX_VP_NUM_FOR_NETIF_CONTROL 2
+
+/******************************************************************************/
+
+// CMUX_VP_NUM_FOR_SINGLE_SIM is used for users of CMUX
+// referenced by ATCI
+#ifdef __CMUX_SUPPORT__
+ #define CMUX_VP_NUM_FOR_SINGLE_SIM (CMUX_VP_NUM_FOR_ATCI)
+ #define CMUX_VPEX_NUM_FOR_SINGLE_SIM (CMUX_VP_NUM_FOR_ATCI_EX)
+ #define CMUX_VPEX_TOTAL_NUM (((CMUX_VP_NUM_FOR_ATCI_EX) \
+ * (MAX_SIM_NUM)) + CMUX_VP_NUM_FOR_ATCI_CSD + CMUX_VP_NUM_FOR_ATCI_IMS \
+ + CMUX_VP_NUM_FOR_ATCI_IMS_SMS + CMUX_VP_NUM_FOR_NETIF_CONTROL)
+#else
+ #define CMUX_VP_NUM_FOR_SINGLE_SIM 0
+ #define CMUX_VPEX_NUM_FOR_SINGLE_SIM 0
+ #define CMUX_VPEX_TOTAL_NUM 0
+#endif
+
+/******************************************************************************/
+
+// CMUX_DLC_NUM is used by CMUX
+// referenced in cmux_def.h
+#ifdef __CMUX_SUPPORT__
+ #define CMUX_DLC_NUM (((CMUX_VP_NUM_FOR_ATCI + CMUX_VP_NUM_FOR_ATCI_EX) \
+ * (MAX_SIM_NUM)) + CMUX_VP_NUM_FOR_ATCI_CSD + CMUX_VP_NUM_FOR_ATCI_IMS + CMUX_VP_NUM_FOR_VT \
+ + CMUX_VP_NUM_FOR_CS + CMUX_VP_NUM_FOR_ATCI_IMS_SMS + CMUX_VP_NUM_FOR_NETIF_CONTROL)
+#else
+ #define CMUX_DLC_NUM 0
+#endif
+
+/******************************************************************************/
+
+// CMUX_VP_NUM is used for uart provider
+// referenced in enum UART_PORT
+#ifdef __CMUX_SUPPORT__
+ #define CMUX_VP_NUM (CMUX_DLC_NUM)
+#else
+ #define CMUX_VP_NUM 0
+#endif
+
+/******************************************************************************/
+#endif /* CMUX_VP_NUM_H */
+
diff --git a/mcu/interface/protocol/general/csm2vt_struct.h b/mcu/interface/protocol/general/csm2vt_struct.h
new file mode 100644
index 0000000..62870b2
--- /dev/null
+++ b/mcu/interface/protocol/general/csm2vt_struct.h
@@ -0,0 +1,157 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csm2vt_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between VT 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!
+ *
+ * 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 _CSM2VT_STRUCT_H
+#define _CSM2VT_STRUCT_H
+
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#ifdef __VIDEO_CALL_SUPPORT__
+typedef enum {
+ VT_MO_DISC = 0,
+ VT_MT_DISC,
+ VT_3G324M_DISC
+} vt_call_end_type_enum;
+
+typedef struct csm_vt_activate_req_struct{
+LOCAL_PARA_HDR
+kal_uint8 call_id;
+}csm_vt_activate_req_struct;
+
+typedef struct csm_vt_activate_cnf_struct{
+LOCAL_PARA_HDR
+kal_uint8 call_id;
+kal_bool result;
+kal_uint8 cause;
+}csm_vt_activate_cnf_struct;
+
+typedef struct csm_vt_deactivate_req_struct{
+LOCAL_PARA_HDR
+kal_uint8 call_id;
+kal_uint8 call_end_type;
+}csm_vt_deactivate_req_struct;
+
+typedef struct csm_vt_deactivate_cnf_struct{
+LOCAL_PARA_HDR
+kal_uint8 call_id;
+kal_uint8 call_end_type;
+kal_bool result;
+kal_uint8 cause;
+}csm_vt_deactivate_cnf_struct;
+
+typedef struct csm_vt_disc_ind_struct{
+LOCAL_PARA_HDR
+kal_uint8 call_id;
+kal_uint8 call_end_type;
+}csm_vt_disc_ind_struct;
+#endif /*__VIDEO_CALL_SUPPORT__*/
+
+#endif
+
diff --git a/mcu/interface/protocol/general/csmcc_common_enums.h b/mcu/interface/protocol/general/csmcc_common_enums.h
new file mode 100644
index 0000000..a326161
--- /dev/null
+++ b/mcu/interface/protocol/general/csmcc_common_enums.h
@@ -0,0 +1,393 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csmcc_common_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file defines the enum types which are common to the 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _CSMCC_COMMON_ENUMS_H
+#define _CSMCC_COMMON_ENUMS_H
+
+#include "ps_public_enum.h" //hong_mpm
+
+typedef enum
+{
+ CSMCC_ERROR,
+ CSMCC_NO_ERROR,
+ CSMCC_DTMF_QUERY,
+ CSMCC_CMD_SUCC /* ripple add. */
+} csmcc_error_enum;
+
+typedef enum
+{
+ CSMCC_CLIR_INVOCATION,
+ CSMCC_CLIR_SUPPRESSION,
+ CSMCC_INVALID_CLIR_INFO = 255
+} csmcc_clir_info_enum;
+
+typedef enum
+{
+ CSMCC_VOICE_CALL,
+ CSMCC_AUX_VOICE_CALL,
+ CSMCC_DATA_CALL,
+ CSMCC_FAX_CALL,
+ CSMCC_CSD_CALL,
+ CSMCC_SAT_DATA_CALL,
+ CSMCC_VIDEO_CALL,
+ CSMCC_NO_CALL_TYPE,
+ CSMCC_INVALID_CALL_TYPE = 255
+} csmcc_call_type_enum;
+
+typedef enum
+{
+ CSMCC_PREEMPT_BY_HOLD,
+ CSMCC_PREEMPT_BY_REL
+} csmcc_preempt_type_enum;
+
+typedef enum
+{
+ CSMCC_CLI_UNAVAILABLE,
+ CSMCC_CLI_REJECT_BY_USER,
+ CSMCC_CLI_INTERACTION,
+ CSMCC_COIN_LINE_PAYPHONE,
+ CSMCC_INVALID_NO_CLI_CAUSE = 255
+} csmcc_no_cli_cause_enum;
+
+typedef enum
+{
+ CSMCC_USER,
+ CSMCC_PRIVATE_NW_LOCAL_USER,
+ CSMCC_PUBLIC_NW_LOCAL_USER,
+ CSMCC_TRANSIT_NW,
+ CSMCC_PUBLIC_NW_REMOTE_USER,
+ CSMCC_PRIVATE_NW_REMOTE_USER,
+ CSMCC_INTERNATIONAL_NW = 7,
+ CSMCC_NW_BEYOND_INTERWORKING_POINT = 10
+} csmcc_location_enum;
+
+typedef enum
+{
+ CSMCC_NOT_END_TO_END = 1,
+ CSMCC_DEST_IN_NON_PLMN_ISDN,
+ CSMCC_ORIG_IN_NON_PLMN_ISDN,
+ CSMCC_RETURN_PLMN_ISDN = 4,
+ CSMCC_IN_BAND_AVAILABLE = 8,
+ CSMCC_END_TO_END = 32,
+ CSMCC_QUEUEING = 64
+} csmcc_prog_desc_enum;
+
+typedef enum
+{
+ CSMCC_ORIG_NONE = 0x00,
+ CSMCC_MO_CALL = 0x01,
+ CSMCC_MT_CALL = 0x02,
+ CSMCC_NW_INIT_MO_CALL = 0x04
+} csmcc_call_orig_enum;
+
+
+typedef enum
+{
+ CSMCC_DIAL_TONE_ON,
+ CSMCC_RING_BACK_TONE_ON,
+ CSMCC_INTERCEPT_TONE_ON,
+ CSMCC_NTW_CONGESTION_TONE_ON,
+ CSMCC_BUSY_TONE_ON,
+ CSMCC_CONFIRM_TONE_ON,
+ CSMCC_ANSWER_TONE_ON,
+ CSMCC_CALL_WAITING_TONE_ON,
+ CSMCC_OFF_HOOK_WARNING_TONE_ON,
+ CSMCC_TONES_OFF = 63,
+ CSMCC_ALERTING_OFF = 79
+} csmcc_signal_value_enum;
+
+typedef enum
+{
+ CSMCC_ALERTING_PATTERN_1,
+ CSMCC_ALERTING_PATTERN_2,
+ CSMCC_ALERTING_PATTERN_3,
+ CSMCC_ALERTING_PATTERN_5 = 4,
+ CSMCC_ALERTING_PATTERN_6,
+ CSMCC_ALERTING_PATTERN_7,
+ CSMCC_ALERTING_PATTERN_8,
+ CSMCC_ALERTING_PATTERN_9
+} csmcc_alerting_pattern_enum;
+
+typedef enum
+{
+ CSMCC_SAT_SETUP_CALL,
+ CSMCC_SAT_HOLD_AND_SETUP_CALL,
+ CSMCC_SAT_REL_AND_SETUP_CALL
+} csmcc_sat_call_req_type_enum;
+
+typedef enum
+{
+ CLCC_CALL_ACTIVE,
+ CLCC_CALL_HELD,
+ CLCC_CALL_DIALING,
+ CLCC_CALL_ALERTING,
+ CLCC_CALL_INCOMING,
+ CLCC_CALL_WAITING,
+ CLCC_CALL_INVALID_STATE=0xff
+} clcc_state_enum;
+
+typedef enum
+{
+ CLCCS_CALL_IDLE = 1,
+ CLCCS_CALL_CALLING_MO, //2 map to CLCC_CALL_DIALING
+ CLCCS_CALL_CONNECTING_MO, //3
+ CLCCS_CALL_ALERTING_MO, //4 map to CLCC_CALL_ALERTING
+ CLCCS_CALL_ALERTING_MT, //5 mpa to CLCC_CALL_INCOMING
+ CLCCS_CALL_ACTIVE, //6 map to CLCC_CALL_ACTIVE
+ CLCCS_CALL_RELEASED_MO, //7
+ CLCCS_CALL_RELEASED_MT, //8
+ CLCCS_CALL_USER_BUSY, //9
+ CLCCS_CALL_UDUB, //10
+ CLCCS_CALL_WAITING_MO, //11
+ CLCCS_CALL_WAITING_MT, //12
+ CLCCS_CALL_HOLD_MO, //13 map to CLCC_CALL_HELD
+ CLCCS_CALL_HOLD_MT, //14 map to CLCC_CALL_HELD
+ CLCCS_CALL_INVALID_STATE = 0xff
+} clccs_ccstatus_enum; // this is mapped from clcc_state_enum
+
+
+typedef enum
+{
+ CLCCS_NUMBER_TYPE_NO_VALIDE,
+ CLCCS_NUMBER_TYPE_URI,
+ CLCCS_NUMBER_TYPE_TEL,
+} clccs_number_type_enum;
+
+
+typedef enum
+{
+ CLCC_VOICE_CALL,
+ CLCC_DATA_CALL,
+ CLCC_FAX_CALL,
+ CLCC_VFD_VOICE, /* voice followed by data, voice mode */
+ CLCC_AVD_VOICE, /* alternating voice/data, voice mode */
+ CLCC_AVF_VOICE, /* alternating voice/fax, voice mode */
+ CLCC_VFD_DATA, /* voice followed by data, data mode */
+ CLCC_AVD_DATA, /* alternating voice/data, data mode */
+ CLCC_AVF_FAX, /* alternating voice/fax, fax mode */
+ CLCC_UNKNOWN_MODE,
+ CLCC_VIDEO_CALL
+} clcc_mode_enum;
+
+typedef enum
+{
+ CLCC_NOT_MPTY,
+ CLCC_MPTY
+} clcc_mpty_enum;
+
+typedef enum
+{
+ CSMCC_NOTIFY_CFU, /* call forwarding active: CFU */
+ CSMCC_NOTIFY_CFC, /* call forwarding active: CFC */
+ CSMCC_NOTIFY_CF, /* call forwarded indication */
+ CSMCC_NOTIFY_CF_CFU, /* call forwarded indication: CFU */
+ CSMCC_NOTIFY_CF_CFC, /* call forwarded indication: CFC */
+ CSMCC_NOTIFY_CF_CFB, /* call forwarded indication: CFB */
+ CSMCC_NOTIFY_CF_CFNRY, /* call forwarded indication: CFNRY */
+ CSMCC_NOTIFY_CF_CFNRC, /* call forwarded indication: CFNRC */
+ CSMCC_NOTIFY_BAC, /* call barring active: BAC */
+ CSMCC_NOTIFY_BAOC, /* call barring active: BAOC */
+ CSMCC_NOTIFY_BAIC, /* call barring active: BAIC */
+ CSMCC_NOTIFY_CW, /* call waiting indication */
+ CSMCC_NOTIFY_CALL_HELD, /* call held indication */
+ CSMCC_NOTIFY_CALL_RETRIEVED, /* call retrieved indication */
+ CSMCC_NOTIFY_MPTY, /* MPTY call indication */
+ CSMCC_NOTIFY_CUG, /* CUG invocation indication */
+ CSMCC_NOTIFY_CLIR_REJECT, /* CLIR reject indication */
+ CSMCC_NOTIFY_ECT_ACTIVE, /* active ECT indication */
+ CSMCC_NOTIFY_ECT_ALERTING, /* alerting ECT indication */
+ CSMCC_NOTIFY_CNAP, /* CNAP indication */
+ CSMCC_NOTIFY_CCBS, /* CCBS invocation indication */
+ CSMCC_NOTIFY_CD, /* call is deflected or this mt call is a defelected call. */
+ CSMCC_NOTIFY_HELD_CALL_RELEASED, /* Generated by CSMCC, for 27.007 +CSSN, code2, 5. */
+ CSMCC_NOTIFY_NONE = 255
+} csmcc_notify_ss_type_enum;
+
+typedef enum
+{
+ CSD_PROF_RATE_2400,
+ CSD_PROF_RATE_4800,
+ CSD_PROF_RATE_9600,
+ CSD_PROF_RATE_14400,
+ CSD_PROF_RATE_AUTO
+} csmcc_csd_prof_rate_enum;
+
+#if defined (__CPHS__) || defined (__REL4__) //MAUI_01977687
+
+typedef enum {
+ CSMCC_ALS_LINE1,
+ CSMCC_ALS_LINE2,
+ CSMCC_ALS_LINE1_2,
+ CSMCC_ALS_NONE
+} csmcc_als_line_id_enum;
+
+#endif
+
+/*coding standard*/
+typedef enum {
+ CSMCC_ITU_T_Q931,
+ CSMCC_RESERVED_FOR_INTERNATIONAL,
+ CSMCC_NATIONAL,
+ CSMCC_GSM_PLMNS_24008
+}csmcc_coding_standard_enum;
+
+#ifdef __VIDEO_CALL_SUPPORT__
+typedef enum {
+ CSMCC_VIDEO_CALL_ACTIVATE,
+ CSMCC_VIDEO_CALL_DEACTIVATE
+}csmcc_video_call_action_enum;
+#endif
+
+typedef enum {
+ CSMCC_CSD_PROF, /* normal csd profile */
+ CSMCC_SAT_PROF, /* sat csd profile */
+ CSMCC_SPA_CSD_PROF /* sim provisioning csd profile */
+} csmcc_profile_type_enum;
+
+/*Presentation Indicator*/
+typedef enum {
+ CC_PRESENTATION_ALLOWED = 0x00,
+ CC_PRESENTATION_RESTRICTED = 0x20,
+ CC_NUMBER_UNAVAILABLE = 0x40
+}cc_presentation_ind_enum;
+
+#endif /* _CSMCC_COMMON_ENUMS_H */
+
diff --git a/mcu/interface/protocol/general/csmcc_enums.h b/mcu/interface/protocol/general/csmcc_enums.h
new file mode 100644
index 0000000..7d0434d
--- /dev/null
+++ b/mcu/interface/protocol/general/csmcc_enums.h
@@ -0,0 +1,727 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csmcc_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for enum types used in CSM(CC) module.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _CSMCC_ENUMS_H
+#define _CSMCC_ENUMS_H
+
+//#include "ps_public_enum.h" //hong_mpm
+
+/* The following enum types are used in CSMCC message handler */
+
+typedef enum
+{
+ CSMCC_NO_REQ, /*0*/
+ CSMCC_CALL_SETUP_REQ, /*1*/
+ CSMCC_EMERGENCY_CALL_SETUP_REQ, /*2*/
+ CSMCC_CALL_ACCEPT_REQ, /*3*/
+ CSMCC_CALL_PREEMPT_REQ, /*4, non-L4C request */
+ CSMCC_AUTO_ANSWER_REQ, /*5, non-L4C request */
+ CSMCC_REL_HELD_OR_UDUB_REQ, /*6*/
+ CSMCC_REL_ACTIVE_AND_ACCEPT_REQ, /*7*/
+ CSMCC_REL_SPECIFIC_ACTIVE_CALL_REQ,/*8*/
+ CSMCC_HOLD_ACTIVE_AND_ACCEPT_REQ, /*9*/
+ CSMCC_HOLD_ACTIVE_EXCEPT_SPECIFIC_CALL_REQ, /*10*/
+ CSMCC_ADD_HELD_CALL_REQ, /*11*/
+ CSMCC_EXPLICIT_CALL_TRANSFER_REQ, /*12*/
+ CSMCC_CALL_DEFLECTION_REQ, /*13*/
+ CSMCC_ACTIVATE_CCBS_CALL_REQ, /*14*/
+ CSMCC_CALL_DISC_REQ, /*15*/
+ CSMCC_MO_MODIFY_REQ, /*16*/
+ CSMCC_REL_ALL_EXCEPT_WAITING_CALL_REQ, /*17*/
+ CSMCC_ACMMAX_SET_REQ, /* 18 */
+ CSMCC_ACM_RESET_REQ, /* 19 */
+ CSMCC_SAT_SETUP_REQ, /* 20 */
+ CSMCC_MT_MODIFY_REQ, /* 21, non-L4C request */
+ CSMCC_ACCEPT_WAITING_CALL_REQ, /* 22, aux request */
+ CSMCC_ACCEPT_CCBS_CALL_REQ, /* 23, aux request */
+ CSMCC_ACCEPT_HELD_CALL_REQ, /* 24, aux request */
+ CSMCC_WAIT_DATA_DEACTIVATE_REQ, /* 25, aux request */
+ CSMCC_ALERTING_REQ, /* 26, non-L4C request */
+ CSMCC_STARTUP_REQ, /* 27 */
+ CSMCC_SAT_FILE_CHANGE_REQ, /* 28 */
+ CSMCC_REL_SPECIFIC_CALL_REQ,/* 29 */
+ CSMCC_UPDATE_ALS_REQ, /*30*/
+ CSMCC_REL_ACTIVE_REQ, /* 31 */
+ CSMCC_REL_HELD_REQ, /* 32 */
+ CSMCC_SET_CSD_PROF_REQ, /* 33 */
+ CSMCC_REL_ALL_REQ, /* 34 */
+ CSMCC_WAIT_DATA_DEACTIVATE_CNF, /* 35 */
+ CSMCC_RESET_LAST_CCM_REQ, /* 36 */ /* MAUI_01938414 */
+ CSMCC_REL_CALL_REJECT_REQ,/* 37 */
+ CSMCC_SRVCC_REQ /* 38, for SRVCC */
+} csmcc_req_enum;
+
+/* The following enum types ared used to describe bc parameters */
+
+typedef enum
+{
+ CSMCC_FR_ONLY = 1,
+ CSMCC_DUAL_HR_PREF,
+ CSMCC_DUAL_FR_PREF
+} csmcc_radio_channel_enum;
+
+typedef enum
+{
+ CSMCC_CIRCUIT_MODE,
+ CSMCC_PACKET_MODE
+} csmcc_transfer_mode_enum;
+
+typedef enum
+{
+ CSMCC_SYNC_DATA,
+ CSMCC_ASYNC_DATA
+} csmcc_sync_enum;
+
+typedef enum
+{
+ CSMCC_ITC_SPEECH,
+ CSMCC_ITC_UDI,
+ CSMCC_ITC_3_1_K_AUDIO,
+ CSMCC_ITC_FAX_GROUP_3,
+ CSMCC_OTHER_ITC = 5,
+ CSMCC_ITC_AUX_SPEECH = 6,
+ CSMCC_ITC_RESERVED = 7
+} csmcc_itc_enum;
+
+typedef enum
+{
+ CSMCC_ITC_RDI
+} csmcc_other_itc_enum;
+
+typedef enum
+{
+ CSMCC_UR_0_3_K = 1,
+ CSMCC_UR_1_2_K,
+ CSMCC_UR_2_4_K,
+ CSMCC_UR_4_8_K,
+ CSMCC_UR_9_6_K,
+ CSMCC_UR_12_K
+} csmcc_user_rate_enum;
+
+typedef enum
+{
+ CSMCC_FNUR_NM,
+ CSMCC_FNUR_9_6_K,
+ CSMCC_FNUR_14_4_K,
+ CSMCC_FNUR_19_2_K,
+ CSMCC_FNUR_28_8_K,
+ CSMCC_FNUR_38_4_K,
+ CSMCC_FNUR_48_K,
+ CSMCC_FNUR_56_K,
+ CSMCC_FNUR_64_K,
+ CSMCC_FNUR_33_6_K,
+ CSMCC_FNUR_32_K,
+ CSMCC_FNUR_31_2_K
+} csmcc_fnur_enum;
+
+typedef enum
+{
+ CSMCC_RA_NONE,
+ CSMCC_RA_V110,
+ CSMCC_RA_X31,
+ CSMCC_RA_OTHER
+} csmcc_rate_adaptation_enum;
+
+typedef enum
+{
+ CSMCC_RA_V120,
+ CSMCC_RA_H223,
+ CSMCC_RA_PIAFS
+} csmcc_other_rate_adaptation_enum;
+
+typedef enum
+{
+ CSMCC_MT_NONE,
+ CSMCC_MT_V21,
+ CSMCC_MT_V22,
+ CSMCC_MT_V22_BIS,
+ CSMCC_MT_V26_TER = 5,
+ CSMCC_MT_V32,
+ CSMCC_MT_UNDEFINED,
+ CSMCC_MT_AUTOBAUDING
+} csmcc_modem_type_enum;
+
+typedef enum
+{
+ CSMCC_OTHER_MT_NONE,
+ CSMCC_MT_V34 = 2
+} csmcc_other_modem_type_enum;
+
+typedef enum
+{
+ CSMCC_FR_V1 = 0,
+ CSMCC_HR_V1 = 1,
+ CSMCC_FR_V2 = 2,
+ CSMCC_FR_V3 = 4,
+ CSMCC_HR_V3 = 5,
+ CSMCC_FR_AMRWB_V5 = 8
+} csmcc_speech_ver_enum;
+
+typedef enum
+{
+ CSMCC_NO_DATA_COMPRESS,
+ CSMCC_DATA_COMPRESS
+} csmcc_data_compression_enum;
+
+typedef enum
+{
+ CSMCC_SDU_INTEGRITY,
+ CSMCC_UNSTRUCTURED = 3
+} csmcc_structure_enum;
+
+typedef enum
+{
+ CSMCC_HALF_DUPLEX,
+ CSMCC_FULL_DUPLEX
+} csmcc_duplex_mode_enum;
+
+typedef enum
+{
+ CSMCC_NIRR_NO_MEANING,
+ CSMCC_NIRR_REQUESTED
+} csmcc_nirr_enum;
+
+typedef enum
+{
+ CSMCC_SAP_I440_450 = 1,
+ CSMCC_SAP_X32 = 6
+} csmcc_sap_enum;
+
+typedef enum
+{
+ CSMCC_IR_8_K = 2,
+ CSMCC_IR_16_K
+} csmcc_intermediate_rate_enum;
+
+typedef enum
+{
+ CSMCC_NO_NIC_ON_TX,
+ CSMCC_NIC_ON_TX
+} csmcc_nic_on_tx_enum;
+
+typedef enum
+{
+ CSMCC_NO_NIC_ON_RX,
+ CSMCC_NIC_ON_RX
+} csmcc_nic_on_rx_enum;
+
+typedef enum
+{
+ CSMCC_UIMI_NOT_ALLOWED,
+ CSMCC_UIMI_UPTO_1_TCH,
+ CSMCC_UIMI_UPTO_2_TCH,
+ CSMCC_UIMI_UPTO_3_TCH,
+ CSMCC_UIMI_UPTO_4_TCH
+} csmcc_uimi_enum;
+
+typedef enum
+{
+ CSMCC_UIL2P_X25 = 6,
+ CSMCC_UIL2P_ISO_6429 = 8,
+ CSMCC_UIL2P_VICEOTEX = 10,
+ CSMCC_UIL2P_COP_NO_FLCT = 12,
+ CSMCC_UIL2P_X75
+} csmcc_uil2p_enum;
+
+typedef enum
+{
+ CSMCC_1_STOP_BIT,
+ CSMCC_2_STOP_BIT
+} csmcc_nsb_enum;
+
+typedef enum
+{
+ CSMCC_7_DATA_BIT,
+ CSMCC_8_DATA_BIT
+}csmcc_ndb_enum;
+
+typedef enum
+{
+ CSMCC_PARITY_ODD,
+ CSMCC_PARITY_EVEN = 2,
+ CSMCC_PARITY_NONE,
+ CSMCC_PARITY_FORCED_0,
+ CSMCC_PARITY_FORCED_1
+} csmcc_parity_enum;
+
+typedef enum
+{
+ CSMCC_1_TCH,
+ CSMCC_2_TCH,
+ CSMCC_3_TCH,
+ CSMCC_4_TCH,
+ CSMCC_5_TCH,
+ CSMCC_6_TCH,
+ CSMCC_7_TCH,
+ CSMCC_8_TCH
+} csmcc_max_tch_enum;
+
+typedef enum
+{
+ CSMCC_AIUR_NM,
+ CSMCC_AIUR_9_6_K,
+ CSMCC_AIUR_14_4_K,
+ CSMCC_AIUR_19_2_K,
+ CSMCC_AIUR_28_8_K = 5,
+ CSMCC_AIUR_38_4_K,
+ CSMCC_AIUR_43_2_K,
+ CSMCC_AIUR_57_6_K
+} csmcc_waiur_enum;
+
+typedef enum
+{
+ CSMCC_ALTERNATE_MODE = 1,
+ CSMCC_FALLBACK_MODE,
+ CSMCC_SEQUENTIAL_MODE,
+ CSMCC_SERVICE_CHANGE_AND_FALLBACK
+} csmcc_repeat_ind_enum;
+
+/* The following enum types are used to describe AT parameters */
+
+typedef enum
+{
+ CSMCC_DEFAULT_ADDR_TYPE = 129,
+ CSMCC_INTERNATIONAL_ADDR = 145
+
+} csmcc_addr_type_enum;
+
+typedef enum
+{
+ CSMCC_SINGLE_MODE,
+ CSMCC_ALT_VOICE_FAX,
+ CSMCC_ALT_VOICE_DATA,
+ CSMCC_VOICE_FOLLOW_DATA,
+ CSMCC_INVALID_CALL_MODE = 255
+} csmcc_call_mode_enum;
+
+typedef enum
+{
+ CSMCC_AUTOBAUDING,
+ CSMCC_2400_BPS_V22BIS = 4,
+ CSMCC_2400_BPS_V26TER = 5,
+ CSMCC_4800_BPS_V32 = 6,
+ CSMCC_9600_BPS_V32 = 7,
+ CSMCC_9600_BPS_V34 = 12,
+ CSMCC_14400_BPS_V34 = 14,
+ CSMCC_19200_BPS_V34 = 15,
+ CSMCC_28800_BPS_V34 = 16,
+ CSMCC_2400_BPS_V120 = 36,
+ CSMCC_4800_BPS_V120 = 38,
+ CSMCC_9600_BPS_V120 = 39,
+ CSMCC_14400_BPS_V120 = 43,
+ CSMCC_19200_BPS_V120 = 47,
+ CSMCC_28800_BPS_V120 = 48,
+ CSMCC_38400_BPS_V120 = 49,
+ CSMCC_48000_BPS_V120 = 50,
+ CSMCC_56000_BPS_V120 = 51,
+ CSMCC_2400_BPS_V110 = 68,
+ CSMCC_4800_BPS_V110 = 70,
+ CSMCC_9600_BPS_V110 = 71,
+ CSMCC_14400_BPS_V110 = 75,
+ CSMCC_19200_BPS_V110 = 79,
+ CSMCC_28800_BPS_V110 = 80,
+ CSMCC_38400_BPS_V110 = 81,
+ CSMCC_48000_BPS_V110 = 82,
+ CSMCC_56000_BPS_V110 = 83,
+ CSMCC_56000_BPS_TRANSPARENT = 115, //__UMTS_CSD_T__
+ CSMCC_64000_BPS_TRANSPARENT = 116,
+ CSMCC_64000_BPS_MULTIMEDIA = 134, /*[MAUI_00740014]:CBST for Multimedia*/
+ CSMCC_INVALID_SPEED = 255
+} csmcc_bearer_speed_enum;
+
+typedef enum
+{
+ CSMCC_DATA_ASYNC,
+ CSMCC_DATA_SYNC,
+ CSMCC_PDA_UDI,
+ CSMCC_PACKET_UDI,
+ CSMCC_DATA_ASYNC_RDI,
+ CSMCC_DATA_SYNC_RDI,
+ CSMCC_PDA_RDI,
+ CSMCC_PACKET_RDI,
+ CSMCC_INVALID_BEARER_NAME = 255
+} csmcc_bearer_name_enum;
+
+typedef enum
+{
+ CSMCC_TRANSPARENT,
+ CSMCC_NON_TRANSPARENT,
+ CSMCC_TRANSPARENT_PREF,
+ CSMCC_NON_TRANSPARENT_PREF,
+ CSMCC_INVALID_BEARER_CE = 255 /*mtk00924: remove warning C2874W may be used before being set*/
+} csmcc_bearer_ce_enum;
+
+typedef enum
+{
+ CSMCC_SNS_VOICE,
+ CSMCC_SNS_ALT_VOICE_FAX_VOICE_FIRST,
+ CSMCC_SNS_FAX,
+ CSMCC_SNS_ALT_VOICE_DATA_VOICE_FIRST,
+ CSMCC_SNS_DATA,
+ CSMCC_SNS_ALT_VOICE_FAX_FAX_FIRST,
+ CSMCC_SNS_ALT_VOICE_DATA_DATA_FIRST,
+ CSMCC_SNS_VOICE_FOLLOW_DATA
+} csmcc_sns_mode_enum;
+
+typedef enum
+{
+ CSMCC_CF_PARITY_AUTODETECT,
+ CSMCC_CF_8_DATA_2_STOP,
+ CSMCC_CF_8_DATA_1_PARITY_1_STOP,
+ CSMCC_CF_8_DATA_1_STOP,
+ CSMCC_CF_7_DATA_2_STOP,
+ CSMCC_CF_7_DATA_1_PARITY_1_STOP,
+ CSMCC_CF_7_DATA_1_STOP
+} csmcc_cf_format_enum;
+
+typedef enum
+{
+ CSMCC_CF_PARITY_ODD,
+ CSMCC_CF_PARITY_EVEN,
+ CSMCC_CF_PARITY_MARK,
+ CSMCC_CF_PARITY_SPACE
+} csmcc_cf_parity_enum;
+
+typedef enum
+{
+ CSMCC_RAH_NOT_INCLUDED,
+ CSMCC_RAH_INCLUDED
+} csmcc_v120_rah_enum;
+
+typedef enum
+{
+ CSMCC_MULTI_FRAME_EST_NOT_SUPPORT,
+ CSMCC_MULTI_FRAME_EST_SUPPORT
+} csmcc_v120_mfm_enum;
+
+typedef enum
+{
+ CSMCC_BIT_TRANSPARENT_MODE,
+ CSMCC_PROTOCOL_SENSITIVE_MODE
+} csmcc_v120_mode_enum;
+
+typedef enum
+{
+ CSMCC_LLI_NEG_NOT_ALLOWED,
+ CSMCC_LLI_NEG_ALLOWED
+} csmcc_v120_llineg_enum;
+
+typedef enum
+{
+ CSMCC_DEFAULT_ASSIGNEE,
+ CSMCC_ASSIGNOR_ONLY
+} csmcc_v120_assign_enum;
+
+typedef enum
+{
+ CSMCC_LOGICAL_LINK_ZERO,
+ CSMCC_USER_INFO
+} csmcc_v120_negtype_enum;
+
+typedef enum
+{
+ CSMCC_NO_COMPRESSION,
+ CSMCC_TRANSMIT_ONLY,
+ CSMCC_RECEIVE_ONLY,
+ CSMCC_BOTH_DIRECTION
+} csmcc_data_compression_dir_enum;
+
+typedef enum
+{
+ CSMCC_NO_DISC_IF_NO_NEGOTIATION,
+ CSMCC_DISC_IF_NO_NEGOTIATION
+} csmcc_data_compression_nego_enum;
+
+typedef enum
+{
+ CSMCC_QUERY_CCM,
+ CSMCC_DEACTIVATE_CCM_REPORTING,
+ CSMCC_ACTIVEATE_CCM_REPORTING
+} csmcc_aoc_mode_enum;
+
+typedef enum
+{
+ CSMCC_DISABLE_CUG_TEMPORARY_MODE,
+ CSMCC_ENABLE_CUG_TEMPORARY_MODE
+} csmcc_cug_temporary_mode_enum;
+
+typedef enum
+{
+ CSMCC_CUG_INDEX_0,
+ CSMCC_CUG_INDEX_1,
+ CSMCC_CUG_INDEX_2,
+ CSMCC_CUG_INDEX_3,
+ CSMCC_CUG_INDEX_4,
+ CSMCC_CUG_INDEX_5,
+ CSMCC_CUG_INDEX_6,
+ CSMCC_CUG_INDEX_7,
+ CSMCC_CUG_INDEX_8,
+ CSMCC_CUG_INDEX_9,
+ CSMCC_CUG_NO_INDEX
+} csmcc_cug_index_enum;
+
+typedef enum
+{
+ CSMCC_CUG_NO_SUPPRESS_INFO,
+ CSMCC_CUG_SUPPRESS_OA,
+ CSMCC_CUG_SUPPRESS_PREF_CUG,
+ CSMCC_CUG_SUPPRESS_OA_AND_PREF_CUG
+} csmcc_cug_suppress_enum;
+
+typedef enum
+{
+ CSMCC_DATA,
+ CSMCC_FAX_CLASS_1_TIA,
+ CSMCC_FAX_CLASS_1_ITUT = 10,
+ CSMCC_FAX_MANU_SPECIFIC = 2,
+ CSMCC_FAX_CLASS_2 = 20,
+ CSMCC_VOICE = 8,
+ CSMCC_VOICEVIEW = 80
+} csmcc_fclass_mode_enum;
+
+typedef enum
+{
+ CSMCC_DETACH, /* No TCH. */
+ CSMCC_ATTACH_REQ, /* Wish to attach but wait TCH. */
+ CSMCC_SPEECH_ON,
+ CSMCC_SPEECH_OFF, /* Speech is detached, but TCH still exists. */
+ CSMCC_DATA_ATTACH_REQ,
+ CSMCC_DATA_ATTACH
+} csmcc_attach_status_enum;
+
+typedef enum
+{
+ CSMCC_NO_TCH,
+ CSMCC_SPEECH_TCH,
+ CSMCC_DATA_TCH,
+ CSMCC_CHMODE_MODIFY
+} csmcc_channel_info_enum;
+
+
+
+typedef enum
+{
+ CSMCC_CTM_NOT_SUPPORT,
+ CSMCC_CTM_SUPPORT
+} csmcc_ctm_enum;
+
+/*mtk01602: replace 3 stack timer by an event scheduler */
+typedef enum
+{
+ CSMCC_DTMF_PAUSE_TIMER,
+ CSMCC_CALL_CONFIRM_TIMER
+}csmcc_timer_enum;
+
+/* mtk01602: use rlc_enum to represent rlc_flag status*/
+typedef enum
+{
+ RLC_TIMER_INIT,
+ RLC_TIMER_RUNNING,
+ WAIT_FOR_SENDING_RLC,
+ RLC_TIMER_EXPIRE /*MAUI_02648399*/
+} csmcc_rlc_enum;
+
+/* mtk01602: REL4, TS 24.008 Table 10.5.135d
+ Define Emergency Service Categories Enum */
+typedef enum
+{
+ CSMCC_CATEGORY_UNSPECIFIED,
+ CSMCC_CATEGORY_POLICE,
+ CSMCC_CATEGORY_AMBULANCE,
+ CSMCC_CATEGORY_FIRE_BRIGADE = 4,
+ CSMCC_CATEGORY_MARINE_GUARD = 8,
+ CSMCC_CATEGORY_MOUNTAIN_RESCUE = 16,
+ CSMCC_CATEGORY_MANUALLY_INITIATED_ECALL = 32,
+ CSMCC_CATEGORY_AUTOMATICALLY_INITIATED_ECALL = 64,
+ CSMCC_CATEGORY_RESERVED = 128,
+ CSMCC_CATEGORY_INVALID = 255
+}csmcc_ecc_category_enum;
+
+typedef enum
+{
+ CSMCC_LLC_UR_600_BPS = 1,
+ CSMCC_LLC_UR_1200_BPS = 2,
+ CSMCC_LLC_UR_2400_BPS = 3,
+ CSMCC_LLC_UR_3600_BPS = 4,
+ CSMCC_LLC_UR_4800_BPS = 5,
+ CSMCC_LLC_UR_7200_BPS = 6,
+ CSMCC_LLC_UR_8000_BPS = 7,
+ CSMCC_LLC_UR_9600_BPS = 8,
+ CSMCC_LLC_UR_14400_BPS = 9,
+ CSMCC_LLC_UR_16000_BPS = 10,
+ CSMCC_LLC_UR_19200_BPS = 11,
+ CSMCC_LLC_UR_32000_BPS = 12,
+ CSMCC_LLC_UR_48000_BPS = 14,
+ CSMCC_LLC_UR_56000_BPS = 15,
+ CSMCC_LLC_UR_64000_BPS = 16
+}csmcc_llc_user_rate_enum;/*LLC IE 5A bit 1 to bit 5*/
+
+#endif /* _CSMCC_ENUMS_H */
+
+
diff --git a/mcu/interface/protocol/general/csmss_common_enums.h b/mcu/interface/protocol/general/csmss_common_enums.h
new file mode 100644
index 0000000..ec7c5f7
--- /dev/null
+++ b/mcu/interface/protocol/general/csmss_common_enums.h
@@ -0,0 +1,406 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * csmss_common_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for type definition used in CSM(SS) module.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _CSMSS_COMMON_ENUMS_H
+#define _CSMSS_COMMON_ENUMS_H
+
+#include "ps_public_enum.h"
+
+/* the following are used for CSMSS */
+
+typedef enum
+{
+ CSMSS_NULL_STATE,
+ CSMSS_WAIT_FOR_NW_STATE,
+ CSMSS_WAIT_FOR_SUB_STATE
+}csmss_state_enum;
+
+//MAUI_01988887
+#define L4_CPHS INVALID_SRC
+
+typedef enum {
+ L4_SUCCESS = 0,
+ L4_FAIL = 1,
+ L4_CHANGE = 2
+} l4_ret_code_enum;
+
+typedef enum {
+ SS_OP_REGISTERSS = 10, // CISS
+ SS_OP_ERASESS = 11, // CISS
+ SS_OP_ACTIVATESS = 12, // CISS
+ SS_OP_DEACTIVATESS = 13, // CISS
+ SS_OP_INTERROGATESS = 14, // CISS
+ SS_OP_NOTIFYSS = 16, // CRSS
+ SS_OP_REGISTERPASSWORD = 17, // CISS
+ SS_OP_GETPASSWORD = 18, // CISS
+ SS_OP_PROCESSUNSTRUCTUREDSS_DATA = 19, // CRSS AND CISS
+ SS_OP_FORWARDCHECKSS_INDICATION = 38, // CISS
+ SS_OP_PROCESSUNSTRUCTUREDSS_REQUEST = 59, // CISS
+ SS_OP_UNSTRUCTUREDSS_REQUEST = 60, // CISS
+ SS_OP_UNSTRUCTUREDSS_NOTIFY = 61, // CISS
+ SS_OP_ERASECCENTRY = 77, // CISS
+//SSAGPS
+//#ifdef __AGPS_CONTROL_PLANE__
+ SS_OP_LCS_MOLR = 115, // CISS(LCS)
+ SS_OP_LCS_LOCATIONNOTIFICATION = 116, // CISS(LCS)
+ SS_OP_LCS_AREA_EVENT_REQUEST = 114, // CISS(LCS)
+ SS_OP_LCS_AREA_EVENT_REPORT = 113, // CISS(LCS)
+ SS_OP_LCS_AREA_EVENT_CANCELLATION = 112, // CISS(LCS)
+ SS_OP_CALLDEFLECTION = 117, // CRSS
+ SS_OP_USERUSERSERVICE = 118, // CRSS
+ SS_OP_ACCESSREGISTERCCENTRY = 119, // CRSS
+ SS_OP_FORWARDCUG_INFO = 120, // CRSS
+ SS_OP_SPLITMPTY = 121, // CRSS
+ SS_OP_RETRIEVEMPTY = 122, // CRSS
+ SS_OP_HOLDMPTY = 123, // CRSS
+ SS_OP_BUILDMPTY = 124, // CRSS
+ SS_OP_FORWARDCHARGEADVICE = 125, // CRSS
+ SS_OP_EXPLICITCT = 126 // CRSS
+} l4_op_code_enum;
+
+typedef enum { // RegisterSS EraseSS ActivateSS DeactivateSS InterrogateSS
+ SS_ALLSS = 0x00,
+ SS_ALLLINEIDENTIFICATIONSS = 0x10,
+ SS_CLIP = 0x11, // 11.14
+ SS_CLIR = 0x12, // 12.14
+ SS_COLP = 0x13, // 13.14
+ SS_COLR = 0x14, // 14.14
+ SS_MCI = 0x15,
+ SS_ALLNAMEIDENTIFICATIONSS = 0x18,
+ SS_CNAP = 0x19, // 19.14
+ SS_ALLFORWARDINGSS = 0x20, //20.10 20.11 20.12 20.13 20.14
+ SS_CFU = 0x21, //21.10 21.11 21.12 21.13 21.14
+ SS_ALLCONDFORWARDINGSS = 0x28, //28.10 28.11 28.12 28.13 28.14
+ SS_CFB = 0x29, //29.10 29.11 29.12 29.13 29.14
+ SS_CFNRY = 0x2A, //2A.10 2A.11 2A.12 2A.13 2A.14
+ SS_CFNRC = 0x2B, //2B.10 2B.11 2B.12 2B.13 2B.14
+ SS_CD = 0x24,
+ SS_ALLCALLOFFERINGSS = 0x30,
+ SS_ECT = 0x31,
+ SS_MAH = 0x32,
+ SS_ALLCALLCOMPLETIONSS = 0x40,
+ SS_CW = 0x41, // 41.12 41.13 41.14
+ SS_HOLD = 0x42, // ERASECCENTRY
+ SS_CCBS_A = 0x43, // 43.77 43.14
+ SS_CCBS_B = 0x44,
+ SS_MC = 0x45,
+ SS_ALLMULTIPARTYSS = 0x50,
+ SS_MULTIPTY = 0x51,
+ SS_ALLCOMMUNITYOFINTEREST_SS = 0x60,
+ SS_CUG = 0x61,
+ SS_ALLCHARGINGSS = 0x70,
+ SS_AOCI = 0x71,
+ SS_AOCC = 0x72,
+ SS_ALLADDITIONALINFOTRANSFERSS = 0x80,
+ SS_UUS1 = 0x81,
+ SS_UUS2 = 0x82,
+ SS_UUS3 = 0x83, //REGISTERPW GETPW
+ SS_ALLBARRINGSS = 0x90, //90.17 90.18 90.12 90.13 90.14
+ SS_BARRINGOFOUTGOINGCALLS = 0x91, //91.17 91.18 91.12 91.13 91.14
+ SS_BAOC = 0x92, //92.17 92.18 92.12 92.13 92.14
+ SS_BOIC = 0x93, //93.17 93.18 93.12 93.13 93.14
+ SS_BOICEXHC = 0x94, //94.17 94.18 94.12 94.13 94.14
+ SS_BARRINGOFINCOMINGCALLS = 0x99, //99.17 99.18 99.12 99.13 99.14
+ SS_BAIC = 0x9A, //9A.17 9A.18 9A.12 9A.13 9A.14
+ SS_BICROAM = 0x9B, //9B.17 9B.18 9B.12 9B.13 9B.14
+ SS_ALLCALLPRIORITYSS = 0xA0,
+ SS_EMLPP = 0xA1, //A1.10 A1.14
+ SS_ALLLCSPRIVACYEXCEPTION = 0xB0,
+ SS_UNIVERSAL = 0xB1,
+ SS_CALLRELATED = 0xB2,
+ SS_CALLUNRELATED = 0xB3,
+ SS_PLMNOPERATOR = 0xB4,
+ SS_ALLMOLR_SS = 0xC0,
+ SS_BASICSELFLOCATION = 0xC1,
+ SS_AUTONOMOUSSELFLOCATION = 0xC2,
+ SS_TRANSFERTOTHIRDPARTY = 0xC3,
+ SS_ALLPLMN_SPECIFICSS = 0xF0,
+ SS_PLMN_SPECIFICSS_1 = 0xF1,
+ SS_PLMN_SPECIFICSS_2 = 0xF2,
+ SS_PLMN_SPECIFICSS_3 = 0xF3,
+ SS_PLMN_SPECIFICSS_4 = 0xF4,
+ SS_PLMN_SPECIFICSS_5 = 0xF5,
+ SS_PLMN_SPECIFICSS_6 = 0xF6,
+ SS_PLMN_SPECIFICSS_7 = 0xF7,
+ SS_PLMN_SPECIFICSS_8 = 0xF8,
+ SS_PLMN_SPECIFICSS_9 = 0xF9,
+ SS_PLMN_SPECIFICSS_A = 0xFA,
+ SS_PLMN_SPECIFICSS_B = 0xFB,
+ SS_PLMN_SPECIFICSS_C = 0xFC,
+ SS_PLMN_SPECIFICSS_D = 0xFD,
+ SS_PLMN_SPECIFICSS_E = 0xFE,
+ SS_PLMN_SPECIFICSS_F = 0xFF
+} ss_code_enum;
+
+/*
+ * Teleservice codes
+ * 3GPP TS 29.002 clause 7.6.4.39 / 17.7.9
+ */
+
+typedef enum {
+ TS_ALLTELESERVICES = 0x00,
+ TS_ALLSPEECTRANSMISSIONSERVICES = 0x10,
+ TS_TELEPHONY = 0x11,
+ TS_EMERGENCYCALLS = 0x12,
+ TS_ALLSHORTMESSAGESERVICES = 0x20,
+ TS_SHORTMESSAGEMT_PP = 0x21,
+ TS_SHORTMESSAGEMO_PP = 0x22,
+ TS_ALLFACSIMILETRANSMISSIONSERVICES = 0x60,
+ TS_FACSIMILEGROUP3ANDALTERSPEECH = 0x61,
+ TS_AUTOMATICFACSIMILEGROUP3 = 0x62,
+ TS_FACSIMILEGROUP4 = 0x63,
+ TS_ALLDATATELESERVICES = 0x70,
+ TS_ALLTELESERVICES_EXEPTSMS = 0x80,
+ TS_ALLVOICEGROUPCALLSERVICES = 0x90,
+ TS_VOICEGROUPCALL = 0x91,
+ TS_VOICEBROADCASTCALL = 0x92,
+ TS_ALLPLMN_SPECIFICTS = 0xD0,
+ TS_PLMN_SPECIFICTS_1 = 0xD1,
+ TS_PLMN_SPECIFICTS_2 = 0xD2,
+ TS_PLMN_SPECIFICTS_3 = 0xD3,
+ TS_PLMN_SPECIFICTS_4 = 0xD4,
+ TS_PLMN_SPECIFICTS_5 = 0xD5,
+ TS_PLMN_SPECIFICTS_6 = 0xD6,
+ TS_PLMN_SPECIFICTS_7 = 0xD7,
+ TS_PLMN_SPECIFICTS_8 = 0xD8,
+ TS_PLMN_SPECIFICTS_9 = 0xD9,
+ TS_PLMN_SPECIFICTS_A = 0xDA,
+ TS_PLMN_SPECIFICTS_B = 0xDB,
+ TS_PLMN_SPECIFICTS_C = 0xDC,
+ TS_PLMN_SPECIFICTS_D = 0xDD,
+ TS_PLMN_SPECIFICTS_E = 0xDE,
+ TS_PLMN_SPECIFICTS_F = 0xDF,
+//} teleservice_code_enum;
+/*
+ * Bearer Service codes
+ * 3GPP TS 29.002 clause 7.6.4.38 / 17.7.10
+ */
+//typedef enum {
+ BS_ALLBEARERSERVICES = 0x00,
+ BS_ALLDATACDA_SERVICES = 0x10,
+ BS_DATACDA_300BPS = 0x11,
+ BS_DATACDA_1200BPS = 0x12,
+ BS_DATACDA_1200_75BPS = 0x13,
+ BS_DATACDA_2400BPS = 0x14,
+ BS_DATACDA_4800BPS = 0x15,
+ BS_DATACDA_9600BPS = 0x16,
+ BS_GENERAL_DATACDA = 0x17,
+ BS_ALLDATACDS_SERVICES = 0x18,
+ BS_DATACDS_1200BPS = 0x1A,
+ BS_DATACDS_2400BPS = 0x1C,
+ BS_DATACDS_4800BPS = 0x1D,
+ BS_DATACDS_9600BPS = 0x1E,
+ BS_GENERAL_DATACDS = 0x1F,
+ BS_ALLPADACCESSCA_SERVICES = 0x20,
+ BS_PADACCESSCA_300BPS = 0x21,
+ BS_PADACCESSCA_200BPS = 0x22,
+ BS_PADACCESSCA_1200_75BPS = 0x23,
+ BS_PADACCESSCA_2400BPS = 0x24,
+ BS_PADACCESSCA_800BPS = 0x25,
+ BS_PADACCESSCA_9600BPS = 0x26,
+ BS_GENERAL_PADACCESSCA = 0x27,
+ BS_ALLDATAPDS_SERVICES = 0x28,
+ BS_DATAPDS_2400BPS = 0x2C,
+ BS_DATAPDS_4800BPS = 0x2D,
+ BS_DATAPDS_9600BPS = 0x2E,
+ BS_GENERAL_DATAPDS = 0x2F,
+ BS_ALLALTERNATESPEECH_DATACDA = 0x30,
+ BS_ALLALTERNATESPEECH_DATACDS = 0x38,
+ BS_ALLSPEECHFOLLOWEDBYDATACDA = 0x40,
+ BS_ALLSPEECHFOLLOWEDBYDATACDS = 0x48,
+ BS_ALLDATACIRCUITASYNCHRONOUS = 0x50,
+ BS_ALLDATACIRCUITSYNCHRONOUS = 0x58,
+ BS_ALLASYNCHRONOUSSERVICES = 0x60,
+ BS_ALLSYNCHRONOUSSERVICES = 0x68,
+ BS_ALLPLMN_SPECIFICBS = 0xD0,
+ BS_PLMN_SPECIFICBS_1 = 0xD1,
+ BS_PLMN_SPECIFICBS_2 = 0xD2,
+ BS_PLMN_SPECIFICBS_3 = 0xD3,
+ BS_PLMN_SPECIFICBS_4 = 0xD4,
+ BS_PLMN_SPECIFICBS_5 = 0xD5,
+ BS_PLMN_SPECIFICBS_6 = 0xD6,
+ BS_PLMN_SPECIFICBS_7 = 0xD7,
+ BS_PLMN_SPECIFICBS_8 = 0xD8,
+ BS_PLMN_SPECIFICBS_9 = 0xD9,
+ BS_PLMN_SPECIFICBS_A = 0xDA,
+ BS_PLMN_SPECIFICBS_B = 0xDB,
+ BS_PLMN_SPECIFICBS_C = 0xDC,
+ BS_PLMN_SPECIFICBS_D = 0xDD,
+ BS_PLMN_SPECIFICBS_E = 0xDE,
+ BS_PLMN_SPECIFICBS_F = 0xDF
+//} bearerservice_enum;
+} bs_code_enum;
+
+typedef enum {
+ CAUSE_NOT_PRESENT = 0,
+ CAUSE_PRESENT = 1
+} cause_present_enum;
+
+typedef enum {
+ SUBADDRESS_NOT_PRESENT = 0,
+ SUBADDRESS_PRESENT = 1
+} subaddress_present_enum;
+
+typedef enum {
+ SS_ABIT=0x1, // activation
+ SS_RBIT=0x2, // registration
+ SS_PBIT=0x4, // provision
+ SS_QBIT=0x8 // quiescent
+} ss_status_enum;
+
+//[ALPS00006144]
+//[MAUI_02553565] [YuSu] [L4 SS] explicit SS feature
+typedef enum {
+ CSMSS_IMPLICIT_OP,
+ CSMSS_EXPLICIT_SS_OP,
+ CSMSS_EXPLICIT_USSD_OP
+} ss_string_op; //ALPS00006144
+
+//align the value in LBS_MOLR_BEGIN_REQ to L4C, and the value in MNSS_BEGIN_IND
+typedef enum
+{
+ CSMSS_RAT_2_3G,
+ CSMSS_RAT_4G,
+ CSMSS_RAT_INVALID=255
+} csmss_rat_enum;
+
+//0: 24.080(refer to Q.773); 1: 34.123-3 annex.H
+typedef enum
+{
+ CSMSS_TS24080,
+ CSMSS_TS34123
+} csmss_asn_1_version_enum;
+
+//CFU file read status
+typedef enum
+{
+ CSMSS_CFU_FILE_NOT_READ = 0x00,
+ CSMSS_CFIS_READ = 0x01, //EF_CFIS is read successfully
+ CSMSS_CFF_READ = 0x02, //CPHS EF_CFF is read successfully
+ CSMSS_CFIS_CFF_READ = 0x03, //CSMSS_CFIS_READ | CSMSS_CFF_READ
+ CSMSS_CFU_NVRAM_READ = 0x04,
+ CSMSS_CFU_READ_DONE = 0x07, //CSMSS_CFIS_READ | CSMSS_CFF_READ | CSMSS_CFU_NVRAM_READ
+} csmss_cfu_file_read_status_enum;
+
+#endif /* End of file csmss_common_enums.h */
+
+
diff --git a/mcu/interface/protocol/general/d2cm_custom_utility.h b/mcu/interface/protocol/general/d2cm_custom_utility.h
new file mode 100644
index 0000000..05d3e58
--- /dev/null
+++ b/mcu/interface/protocol/general/d2cm_custom_utility.h
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * 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
+ *
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * d2cm_custom_utility.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ ******************************************************************************/
+
+#ifndef __D2CM_CUSTOM_UTILITY_H__
+#define __D2CM_CUSTOM_UTILITY_H__
+
+#include "kal_public_defs.h"
+#include "d2cm_public_defs.h"
+#include "d2cm_struct.h"
+
+// Type definitions
+typedef enum
+{
+ // a single CID or the final CID
+ D2CM_API_RES_NONE = D2CM_RES_NONE,
+ D2CM_API_RES_FAIL = D2CM_RES_FAIL,
+ D2CM_API_RES_SUCC = D2CM_RES_SUCC,
+ // a subsequent CID
+ D2CM_API_RES_FAIL_ABORT = D2CM_RES_FAIL_ABORT,
+ D2CM_API_RES_SUCC_ABORT = D2CM_RES_SUCC_ABORT,
+ D2CM_API_RES_FAIL_CONT = D2CM_RES_FAIL_CONT,
+ D2CM_API_RES_SUCC_CONT = D2CM_RES_SUCC_CONT,
+ // otherwise
+ D2CM_API_RES_REJ = D2CM_RES_REJ,
+ D2CM_API_RES_RETRY = D2CM_RES_RETRY,
+ D2CM_API_RES_MAX = 0x7FFFFFFF
+}d2cm_api_res_enum;
+
+typedef void (*d2cm_event_cb_t) (kal_uint32 ps_id, d2cm_event_ind_struct *ind_ptr, void *arg);
+typedef void (*d2cm_get_pdn_profile_cb_t) (kal_uint32 ps_id, d2cm_get_pdn_profile_ind_struct *ind_ptr, void *arg);
+typedef void (*d2cm_act_data_call_cb_t) (kal_uint32 ps_id, d2cm_act_data_call_cnf_struct *cnf_ptr, void *arg);
+typedef void (*d2cm_deact_data_call_cb_t) (kal_uint32 ps_id, d2cm_deact_data_call_cnf_struct *cnf_ptr, void *arg);
+#if 0
+/* under construction !*/
+#endif
+typedef void (*d2cm_pre_act_data_call_cb_t) (kal_uint32 ps_id, d2cm_act_data_call_req_struct *req_ptr, void *arg);
+typedef void (*d2cm_post_act_data_call_cb_t) (kal_uint32 ps_id, d2cm_act_data_call_cnf_struct *cnf_ptr, void *arg);
+typedef void (*d2cm_pre_deact_data_call_cb_t) (kal_uint32 ps_id, d2cm_deact_data_call_req_struct *req_ptr, void *arg);
+typedef void (*d2cm_post_deact_data_call_cb_t) (kal_uint32 ps_id, d2cm_deact_data_call_cnf_struct *cnf_ptr, void *arg);
+
+// Macros
+// N/A
+
+// Functions
+extern d2cm_api_res_enum d2cm_search_pdn_profile_by_apn_idx (kal_uint32 ps_id, module_type mod_id, const kal_char *apn, kal_int32 apn_idx, d2cm_get_pdn_profile_ind_struct *ind_ptr);
+extern d2cm_api_res_enum d2cm_search_pdn_profile_by_cid (kal_uint32 ps_id, module_type mod_id, kal_int32 cid, d2cm_get_pdn_profile_ind_struct *ind_ptr);
+extern d2cm_api_res_enum d2cm_get_pdn_profile (kal_uint32 ps_id, module_type mod_id, d2cm_get_pdn_profile_req_struct *req_ptr, d2cm_get_pdn_profile_cb_t hook_fp, void* arg);
+extern d2cm_api_res_enum d2cm_act_data_call (kal_uint32 ps_id, module_type mod_id, d2cm_act_data_call_req_struct *req_ptr, d2cm_act_data_call_cb_t hook_fp, void* arg);
+extern d2cm_api_res_enum d2cm_deact_data_call (kal_uint32 ps_id, module_type mod_id, d2cm_deact_data_call_req_struct *req_ptr, d2cm_deact_data_call_cb_t hook_fp, void* arg);
+extern d2cm_api_res_enum d2cm_reg_event_cb (kal_uint32 ps_id, module_type mod_id, d2cm_event_enum event, d2cm_event_cb_t cb, void *arg);
+extern d2cm_api_res_enum d2cm_dereg_event_cb (kal_uint32 ps_id, module_type mod_id, d2cm_event_enum event);
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+extern d2cm_api_res_enum d2cm_reg_post_act_data_call_cb (kal_uint32 ps_id, module_type mod_id, d2cm_post_act_data_call_cb_t cb, void *arg);
+extern d2cm_api_res_enum d2cm_dereg_post_act_data_call_cb (kal_uint32 ps_id, module_type mod_id);
+extern d2cm_api_res_enum d2cm_reg_post_deact_data_call_cb (kal_uint32 ps_id, module_type mod_id, d2cm_post_deact_data_call_cb_t cb, void *arg);
+extern d2cm_api_res_enum d2cm_dereg_post_deact_data_call_cb (kal_uint32 ps_id, module_type mod_id);
+
+#endif
diff --git a/mcu/interface/protocol/general/device.h b/mcu/interface/protocol/general/device.h
new file mode 100644
index 0000000..e3acf5a
--- /dev/null
+++ b/mcu/interface/protocol/general/device.h
@@ -0,0 +1,1383 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * DEVICE.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for definition of all hardware device requirement.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _DEVICE_H
+#define _DEVICE_H
+
+/*****************************************************************************
+* Include
+*****************************************************************************/
+#include "kal_general_types.h"
+//#include "pmic6318_sw.h"
+#include "ps_public_struct.h"
+#include "dcl.h"
+
+/*****************************************************************************
+* Define
+*****************************************************************************/
+/* Add by Yuchuan */
+#define UEM_GREETING_LEN 62
+#define UEM_EQUIP_ID_LEN 64
+
+/* Define the ring compose capability */
+#define MAX_RING_COMPOSE_NUM 5
+#define MAX_RING_COMPOSE_LEN 300
+
+/* Define the display text maximum len */
+#define UEM_DISPLAY_TEXT_LEN 30
+#define UEM_MAX_GREETING_LEN 30
+
+/* For UEM GPIO*/
+#define MAX_LED_GPIO 3 /* 3 LED lights */
+#define MAX_LCD_BACKLIGHT 1 /* 1 backlight */
+#define MAX_VIBRATOR 1 /* 1 vibrator */
+
+#define GPIO_INVAILD 0x0
+#define GPIO_VAILD 0x01
+#define GPO_VAILD 0x02
+#define MAX_NETNAME_TEXT 32
+
+//#ifdef __CUST_NEW__
+#define GPIO_INVALID GPIO_INVAILD
+#define GPIO_VALID GPIO_VAILD
+#define GPO_VALID GPO_VAILD
+//#endif /* __CUST_NEW__ */
+
+/*****************************************************************************
+* Typedef
+*****************************************************************************/
+typedef enum {
+ L4_BCD = 0x01,
+ L4_ASCII = 0x04,
+ L4_UCS2 = 0x08
+} L4_charset_enum;
+
+
+typedef enum {
+ MMI_PS_AT_LANG_DEFAULT,
+ MMI_PS_AT_LANG_UNKWN,
+ MMI_PS_AT_LANG_EN,
+ MMI_PS_AT_LANG_TW,
+ MMI_PS_AT_LANG_ZH,
+ MMI_PS_AT_LANG_LAST
+} L4_AT_lang_enum;
+
+typedef enum {
+ L4_WB_AUDIO_INPUT_FIR,
+ L4_WB_AUDIO_OUTPUT_FIR,
+ L4_WB_ADUIO_MODE_PARAM
+}l4_wb_audio_para_action_enum;
+/*****************************************************************************
+* Audio Interface
+*****************************************************************************/
+
+/* Define the audio device type */
+typedef enum {
+ AUDIO_DEVICE_SPEAKER = 0 , /* Tone, Keypad sound to play on audio device. */
+ AUDIO_DEVICE_MICROPHONE , /* Microphone sound to send on audio device. */
+ AUDIO_DEVICE_BUZZER , /* Ring tone sound to play on audio device. */
+ AUDIO_DEVICE_GMI , /* MIDI/Melody sound to play on audio device */
+ AUDIO_DEVICE_SPEAKER2 , /* earphone, carkit */
+ AUDIO_DEVICE_LOUDSPEAKER , /* loudspeaker for free sound */
+ AUDIO_DEVICE_SPEAKER_BOTH ,
+ MAX_AUDIO_DEVICE_NUM
+}audio_type_enum;
+
+
+/* Define the audio device type */
+typedef enum {
+ AUDIO_DEVICE_MIC1 = 0 , /* ME */
+ AUDIO_DEVICE_MIC2 , /* Headset */
+ AUDIO_DEVICE_FMRR , /* FM Radio */
+ AUDIO_DEVICE_MIC3 /* Loud Spkear */
+}audio_input_path_enum;
+
+
+/* Define volume category */
+typedef enum {
+ VOL_NORMAL = 0 ,
+ VOL_HEADSET ,
+ VOL_HANDFREE ,
+ MAX_VOL_CATE,
+ VOL_TV_OUT = MAX_VOL_CATE
+}volume_category_enum;
+
+
+/* Define volume type.*/
+typedef enum {
+ VOL_TYPE_CTN = 0 , /* MMI can apply to associate volume; call tone attribute */
+ VOL_TYPE_KEY , /* MMI can apply to associate volume; keypad tone attribute */
+ VOL_TYPE_MIC , /* microphone attribute */
+ VOL_TYPE_GMI , /* MMI can apply to associate volume; melody, imelody, midi attribute */
+ VOL_TYPE_SPH , /* MMI can apply to associate volume; speech sound attribute */
+ VOL_TYPE_SID , /* side tone attribute */
+ VOL_TYPE_MEDIA , /* MMI can apply to associate volume; As MP3, Wave,... attribute */
+ MAX_VOL_TYPE
+}volume_type_enum;
+
+
+/* Volume level. based index is from 0..(MAX_VOL_LEVEL-1) */
+#define MAX_VOL_LEVEL 7
+
+
+
+/* Define the audio play style. */
+typedef enum {
+ DEVICE_AUDIO_PLAY_CRESCENDO = 0 , /* Play sound for crescendo. */
+ DEVICE_AUDIO_PLAY_INFINITE , /* Play sound for infinite. */
+ DEVICE_AUDIO_PLAY_ONCE , /* Play sound for once. */
+ DEVICE_AUDIO_PLAY_DESCENDO /* Play sound for descendo. */
+}audio_play_style_enum;
+
+
+typedef struct {
+ kal_uint8 first_out_amp[MAX_AUDIO_DEVICE_NUM][MAX_VOL_LEVEL];
+ kal_uint8 second_out_amp[MAX_AUDIO_DEVICE_NUM][MAX_VOL_LEVEL];
+ kal_uint8 side[MAX_AUDIO_DEVICE_NUM][MAX_VOL_LEVEL];
+ kal_uint8 volume[MAX_AUDIO_DEVICE_NUM];
+} acoustic_gain_struct;
+
+
+/*****************************************************************************
+* Keypad Interface
+*****************************************************************************/
+
+/* Define the keypad status. */
+typedef enum {
+ KEY_PRESSED = 0 /* Keypad is pressed. */
+ ,KEY_RELEASED /* Keypad is released. */
+ ,KEY_LONGPRESS /* Keypad is longpressed. */
+ ,KEY_REPEATED /* Keypad is repeated. */
+#ifdef TWO_KEY_ENABLE
+ ,KEY_PRESSED_TWOKEY /* Two Keypad is pressed. */
+ ,KEY_RELEASED_TWOKEY /* Two Keypad is released. */
+#endif /*TWO_KEY_ENABLE*/
+}keypad_status_enum;
+
+
+/* Define the keypad code value. */
+typedef kal_uint8 keypad_code_enum;
+
+
+/*****************************************************************************
+* RTC Interface
+*****************************************************************************/
+
+/* Define the RTC type. */
+typedef enum {
+ RTC_TIME_CLOCK_IND = 0 , /* The time clock indication. */
+ RTC_ALARM_IND /* The alarm indication */
+}rtc_type_enum;
+
+
+/* Define the type to setting RTC. */
+typedef enum {
+ RTC_SETTING_TYPE_DATETIME = 0 ,
+ RTC_SETTING_TYPE_DATE ,
+ RTC_SETTING_TYPE_TIME
+}rtc_setting_type_enum;
+
+/* Define the RTC alarm id. */
+typedef kal_uint8 rtc_alarm_id_enum;
+#define RTC_ALARM1_IND 0 /* The alarm indication */
+#define RTC_ALARM2_IND 1 /* The alarm indication */
+#define RTC_ALARM3_IND 2 /* The alarm indication */
+#define MAX_ALARM_NUM 3
+
+/* Define the Alarm type */
+typedef enum {
+ RTC_ALARM_VIBRATOR = 0x01 ,
+ RTC_ALARM_LED = 0x02 ,
+ RTC_ALARM_SOUND = 0x04 ,
+ RTC_ALARM_SILENT = 0x08
+}rtc_alarm_type_enum;
+
+
+/* Define the Alarm recurr */
+typedef enum {
+ RTC_ALARM_DAY1 = 0x01 ,
+ RTC_ALARM_DAY2 = 0x02 ,
+ RTC_ALARM_DAY3 = 0x04 ,
+ RTC_ALARM_DAY4 = 0x08 ,
+ RTC_ALARM_DAY5 = 0x10 ,
+ RTC_ALARM_DAY6 = 0x20 ,
+ RTC_ALARM_DAY7 = 0x40 ,
+ RTC_ALARM_DAY_ALL = 0x7F
+}rtc_alarm_recurr_enum;
+
+/* Define the Date/Time format type. */
+typedef enum {
+ DATE_DD_MMM_YYYY = 1
+/*
+ ,DATE_DD_MM_YY_H
+ ,DATE_MM_DD_YY
+ ,DATE_DD_MM_YY_S
+ ,DATE_DD_MM_YY_P
+ ,DATE_YYMMDD
+ ,DATE_YY_MM_DD
+*/
+
+ ,DATE_DD_MM_YYYY_S = 8
+ ,DATE_MM_DD_YYYY_S
+ ,DATE_YYYY_MM_DD_S
+ ,DATE_YYYY_MM_DD_H
+ ,DATE_MMM_DD_YYYY
+}date_format_enum;
+
+
+#define DATE_AUX_YY_MM_DD 1
+#define DATE_AUX_YYYY_MM_DD 2
+
+
+typedef enum {
+ TIME_HH_MM_24 = 1 ,
+ TIME_HH_MM_12
+}time_format_enum;
+
+
+/* Define the RTC clock/alarm format type. */
+/* Could be rtc_alarm_format_enum or rtc_clock_format_enum */
+typedef kal_uint8 rtc_format_enum;
+
+
+/*Y:Year,M:Month,W:DOW,D:DOM,H:Hour,M:Min,S:SEC*/
+typedef enum {
+ DEVICE_AL_EN_None = 0 ,
+ DEVICE_AL_EN_ChkS ,
+ DEVICE_AL_EN_ChkMS ,
+ DEVICE_AL_EN_ChkHMS ,
+ DEVICE_AL_EN_ChkDHMS ,
+ DEVICE_AL_EN_ChkWHMS ,
+ DEVICE_AL_EN_ChkMDHMS ,
+ DEVICE_AL_EN_ChkYMDHMS ,
+ DEVICE_AL_EN_NoChange
+}rtc_alarm_format_enum;
+
+
+typedef enum {
+ DEVICE_TC_EN_None = 0 ,
+ DEVICE_TC_EN_ChkS ,
+ DEVICE_TC_EN_ChkM ,
+ DEVICE_TC_EN_ChkH ,
+ DEVICE_TC_EN_ChkD ,
+ DEVICE_TC_EN_ChkW ,
+ DEVICE_TC_EN_ChkMon ,
+ DEVICE_TC_EN_ChkY ,
+ DEVICE_TC_EN_NoChange
+}rtc_clock_format_enum;
+
+/* Define the alarm status. */
+typedef enum {
+ ALARM_STATUS_ON_POWEROFF_CHARING =0 , /* The alarm is started when it's power off with charging status. */
+ ALARM_STATUS_ON_POWEROFF , /* The alarm is started when it's power off status without charging. */
+ ALARM_STATUS_ON_POWERON /* The alarm is started when it's power on status. */
+}alarm_status_enum;
+
+
+/* Define the calling status */
+typedef enum {
+ UEM_CALL_UNKNOW = 0 ,
+ UEM_CALL_SETUP ,
+ UEM_CALL_CONNECT ,
+ UEM_CALL_DISCONNECT
+}uem_call_state_enum;
+
+
+/*****************************************************************************
+* GPIO / EINT Interface
+*****************************************************************************/
+
+/* Define the internal GPIO device type. */
+/* Becareful!!!!
+ MAX_GPIO_DEVICE_NUM Will impact the size of uem_context_rmi_struct data item !!!!! */
+
+typedef enum {
+ GPIO_DEV_LED_MAINLCD = 0 , /* Main LCD backlight */
+ GPIO_DEV_LED_SUBLCD , /* Sub LCD backlight */
+ GPIO_DEV_LED_STATUS_1 , /* Status LED R*/
+ GPIO_DEV_LED_STATUS_2 , /* Status LED G*/
+ GPIO_DEV_LED_STATUS_3 , /* Status LED B*/
+ GPIO_DEV_LED_KEY , /* Keypad backlight */
+ GPIO_DEV_VIBRATOR , /* Vibrator */
+ GPIO_DEV_FLASHLIGHT , /* FlashLight */
+ GPIO_DEV_FTE_FEEDBACK_VIB , /* Reserve_1 */
+ GPIO_DEV_LED_BACKLIGHT_DIMMING, /* Reserve_2 */
+ GPIO_DEV_RESERVED3 , /* Reserve_3 */
+ GPIO_DEV_RESERVED4 , /* Reserve_4 */
+ GPIO_DEV_RESERVED5 , /* Reserve_4 */
+ GPIO_DEV_RESERVED6 , /* Reserve_4 */
+ GPIO_DEV_RESERVED7 , /* Reserve_4 */
+ GPIO_DEV_RESERVED8 , /* Reserve_4 */
+ GPIO_DEV_RESERVED9 , /* Reserve_4 */
+ GPIO_DEV_RESERVED10 , /* Reserve_4 */
+ GPIO_DEV_RESERVED11 , /* Reserve_4 */
+ GPIO_DEV_RESERVED12 , /* Reserve_4 */
+ MAX_GPIO_DEVICE_NUM
+}gpio_device_enum;
+
+
+/* Define the LED light level. For LCD bright level, Keypad backlight, Flashlight */
+typedef enum {
+ LED_LIGHT_LEVEL0 =0 , /* turn off */
+ LED_LIGHT_LEVEL1 ,
+ LED_LIGHT_LEVEL2 ,
+ LED_LIGHT_LEVEL3 ,
+ LED_LIGHT_LEVEL4 ,
+ LED_LIGHT_LEVEL5 ,
+#if defined (WISDOM_MMI)
+ LED_LIGHT_LEVEL6 ,
+#endif
+ LED_LIGHT_LEVEL_MAX
+}gpio_device_led_level_typedef;
+
+typedef enum
+{
+ /* LED status pattern */
+ LED_PATTERN_BEGIN,
+
+ LED_POWER_ON = LED_PATTERN_BEGIN,
+ LED_POWER_OFF,
+ LED_BATTERY_WARNING,
+ LED_BATTERY_LOW,
+ LED_Connect900,
+ LED_Connect1800,
+ LED_OnCharging,
+ LED_FullCharging,
+ LED_MessageIn,
+ LED_MessageRemind,
+ LED_Caller1,
+ LED_Caller2,
+ LED_Caller3,
+ LED_Caller4,
+ LED_Caller5,
+ LED_Caller6,
+ LED_LimitService,
+ LED_NoService,
+ LED_Connect1900,
+ LED_Roaming,
+ LED_PATTERN_END = 50,
+
+ /* lcd backlight pattern */
+ LCD_PATTERN_BEGIN,
+ LCD_PATTERN_1 = LCD_PATTERN_BEGIN,
+ LCD_PATTERN_2,
+ LCD_PATTERN_END = 100,
+
+ /* vibrator pattern */
+ VIB_PATTERN_BEGIN,
+ VIB_PATTERN_1 = VIB_PATTERN_BEGIN,
+ VIB_PATTERN_2,
+ VIB_PATTERN_3, /* Incomming SMS */
+ VIB_PATTERN_4, /* FTE feedback*/
+ VIB_PATTERN_A,
+ VIB_PATTERN_B,
+ VIB_PATTERN_C,
+ VIB_PATTERN_END = 150,
+
+ MAX_PATTERN_ID = VIB_PATTERN_END
+} PATTERN_ID;
+
+typedef enum
+{
+ PLAY_STOP,
+ PLAY_REPEAT,
+ PLAY_ONCE,
+ MAX_PATTERN_TYPE = PLAY_ONCE
+} PATTERN_TYPE;
+
+typedef struct
+{
+ kal_uint8 gpio_control[MAX_LED_GPIO];
+ kal_uint16 duration_time; /* max time 65535 msec */
+} LED_PATTERN_STRUCT;
+
+typedef struct
+{
+ kal_uint8 gpio_control[MAX_LCD_BACKLIGHT];
+ kal_uint16 duration_time; /* max time 65535 msec */
+} LCD_PATTERN_STRUCT;
+
+typedef struct
+{
+ kal_uint8 gpio_control[MAX_VIBRATOR];
+ kal_uint16 duration_time; /* max time 65535 msec */
+} VIB_PATTERN_STRUCT;
+
+extern LCD_PATTERN_STRUCT *custom_get_lcd_patterns(PATTERN_ID lcd_pattern_id);
+extern LED_PATTERN_STRUCT *custom_get_led_patterns(PATTERN_ID led_pattern_id);
+extern VIB_PATTERN_STRUCT *custom_get_vib_patterns(PATTERN_ID vib_pattern_id);
+extern kal_bool uem_play_pattern(PATTERN_ID pattern_id, PATTERN_TYPE pattern_type);
+extern kal_uint8 custom_get_led_label(kal_uint8 id);
+extern kal_uint8 custom_get_lcd_label(kal_uint8 id);
+extern kal_uint8 custom_get_vib_label(kal_uint8 id);
+extern void custom_uem_set_rmi_lang_id(kal_uint8 *lang_id);
+extern kal_bool custom_uem_gpio_set_level(kal_uint8 gpio_dev_type, kal_uint8 gpio_dev_level);
+extern kal_uint8* custom_uem_get_equip_id(kal_uint8 equip_id);
+#ifdef __VIBRATION_SPEAKER_SUPPORT__
+typedef void (*custom_uem_spkvib_func)(kal_bool);
+extern void custom_uem_set_spkvib_func(void (*func)(kal_bool));
+#endif
+extern kal_uint32 custom_uem_get_bl_level_num(void);
+extern kal_uint32 custom_uem_get_pwm_bl_mode(kal_uint8 gpio_dev_type);
+
+/* It is a time from backlight dimming to backlight drak*/
+#define GPIO_BRIGHTNESS_DIMMING_TIME 5000
+
+/* Define the Vibrator level. */
+typedef enum {
+ VIBRATOR_OFF =0 , /* turn off */
+ VIBRATOR_ON /* turn on */
+}gpio_device_vibrator_level_typedef;
+
+
+typedef enum {
+ AUD_MODE_NORMAL =0 , /* Normal Mode */
+ AUD_MODE_HEADSET , /* HeadSet (Earphone) Mode */
+ AUD_MODE_LOUDSPK , /* Loudspeaker Mode */
+ MAX_AUD_MODE_NUM
+}audio_mode_enum;
+
+
+/* Define the external GPIO device interrupt. */
+typedef enum {
+ EXT_DEV_NONE = 0 , /* None, if there is no external device */
+ EXT_DEV_HANDFREE , /* Hand-free */
+ EXT_DEV_EARPHONE , /* Earphone */
+ EXT_DEV_CARKIT , /* Car-Kit */
+ EXT_DEV_KEY_1 , /* Send Key */
+ EXT_DEV_KEY_2 , /* Reserved */
+ EXT_DEV_UART ,
+ EXT_DEV_CLAM_OPEN = 8 ,
+ EXT_DEV_CLAM_CLOSE ,
+ EXT_DEV_HOOK_ON , /* for FWP */
+ EXT_DEV_HOOK_OFF , /* for FWP */
+ EXT_DEV_AUX_DETECT_DONE ,
+ EXT_DEV_TRANSMITTER_HOLD_ON,
+ EXT_DEV_TRANSMITTER_PUT_DOWN,
+ MAX_EXT_DEVICE_NUM
+}ext_device_enum;
+
+
+typedef enum {
+ AUD_LOOPBACK_MODE_NORMAL =0 , /* Normal Mode */
+ AUD_LOOPBACK_MODE_HEADSET_PREFER , /* Loudspk_prefer */
+ AUD_LOOPBACK_MODE_HEADSET , /* HeadSet (Earphone) Mode */
+ AUD_LOOPBACK_MODE_LOUDSPK , /* Loudspeaker Mode */
+ MAX_AUD_LOOPBACK_MODE_NUM
+}audio_loopback_mode_enum;
+
+
+/**************************************************************
+ **
+ ** Set UART Port Function Type
+ **
+ **************************************************************/
+typedef enum
+{
+ UART_NVRAM_LID_FUNC_UART_CONFIG,
+ UART_NVRAM_LID_FUNC_HIGH_SPEED_SIM,
+ UART_NVRAM_LID_FUNC_SWDBG,
+ UART_NVRAM_LID_FUNC_UART_POWER,
+ UART_NVRAM_LID_FUNC_TST_OUTPUT_MODE,
+ UART_NVRAM_LID_FUNC_USB_LOGGING
+} uart_nvram_lid_function_enum;
+
+
+/*****************************************************************************
+* PMIC Interface
+*****************************************************************************/
+typedef enum
+{
+ PMIC_VBAT_STATUS, /* Notify the battery voltage, BMT_VBAT_STATUS */
+ PMIC_CHARGER_IN, /* Charger plug in, BMT_CHARGER_IN */
+ PMIC_CHARGER_OUT, /* Charger plug out, BMT_CHARGER_OUT */
+ PMIC_OVERVOLPROTECT, /* The voltage of battery is too high. BMT_OVERVOLPROTECT */
+ PMIC_OVERBATTEMP, /* The temperature of battery is too high. BMT_OVERBATTEMP */
+ PMIC_LOWBATTEMP, /* The temperature of battery is too low. BMT_LOWBATTEMP */
+ PMIC_OVERCHARGECURRENT, /* Charge current is too large. BMT_OVERCHARGECURRENT */
+ PMIC_CHARGE_COMPLETE, /* Charge is completed. BMT_CHARGE_COMPLETE */
+ PMIC_INVALID_BATTERY, /* invalid battery BMT_INVALID_BAT*/
+ PMIC_INVALID_CHARGER, /* invalid charger BMT_INVALID_CHARGER*/
+ PMIC_CHARGING_TIMEOUT, /* Bad battery BMT_CHARGE_TIMEOUT */
+ PMIC_LOWCHARGECURRENT, /* Charge current is too Low. BMT_LOWCHARGECURRENT */
+ PMIC_CHARGE_BAD_CONTACT, /* Charger Bad Contact */
+ PMIC_BATTERY_BAD_CONTACT, /* Battery Bad Contact */
+ PMIC_USB_CHARGER_IN, /* Usb Charger plug in */
+ PMIC_USB_CHARGER_OUT, /* Usb Charger plug out */
+ PMIC_USB_NO_CHARGER_IN,
+ PMIC_USB_NO_CHARGER_OUT,
+ PMIC_BATTERY_IN,
+ PMIC_BATTERY_OUT
+} pmic_status_enum;
+typedef pmic_status_enum battery_status_enum;
+
+typedef enum
+{
+ BATTERY_LOW_POWEROFF = 0,
+ BATTERY_LOW_TX_PROHIBIT,
+ BATTERY_LOW_WARNING,
+ BATTERY_LEVEL_0,
+ BATTERY_LEVEL_1,
+ BATTERY_LEVEL_2,
+ BATTERY_LEVEL_3,
+ BATTERY_LEVEL_4 = BATTERY_LEVEL_3, /* BATTERY_LEVEL_4 */
+ BATTERY_LEVEL_5 = BATTERY_LEVEL_3, /* BATTERY_LEVEL_5 */
+ BATTERY_LEVEL_6 = BATTERY_LEVEL_3, /* BATTERY_LEVEL_6 */
+ BATTERY_LEVEL_LAST = 9
+
+} battery_level_enum;
+
+
+/* Define the power on status. */
+typedef enum
+{
+ POWER_ON_KEYPAD = 0 ,
+ POWER_ON_ALARM ,
+ POWER_ON_CHARGER_IN ,
+ POWER_ON_EXCEPTION ,
+ POWER_ON_USB ,
+ POWER_ON_UNINIT ,
+ POWER_ON_PRECHARGE = 8
+} power_on_status_enum;
+
+#define POWERON(mode) ( (mode == POWER_ON_KEYPAD) || \
+ (mode == POWER_ON_ALARM) || \
+ (mode == POWER_ON_CHARGER_IN) ||\
+ (mode == POWER_ON_USB) ||\
+ (mode == POWER_ON_EXCEPTION) ||\
+ (mode == POWER_ON_PRECHARGE) )
+
+extern power_on_status_enum uem_get_power_on_mode(void);
+
+/* Define the POWER reset type. This is to use for the power restablish, while it's on charging or alarm status. */
+typedef enum
+{
+ NORMAL_RESET,
+ CHARGING_RESET,
+ ALARM_RESET,
+ WM_RESET
+} pmic_reset_type_enum;
+
+typedef enum
+{
+ PMIC_GET_CHR_STATE
+ ,PMIC_GET_AC_USB
+ ,PMIC_GET_LED_CONFIG
+ ,PMIC_GET_RGB_DIM
+ ,PMIC_GET_BL_DIM
+ ,PMIC_GET_SPEAKER_STATE
+ ,PMIC_GET_SPEAKER_GAIN
+ ,PMIC_GET_MISC_LDO_STATE
+ ,PMIC_READ_REG
+ ,PMIC_WRITE_REG
+ ,PMIC_CHR_ENABLE
+ ,PMIC_CHR_CURRENT_CTRL
+ ,PMIC_USB_CHR_ENABLE
+ ,PMIC_LED_ENABLE
+ ,PMIC_LED_CONFIG
+ ,PMIC_RGB_DIM_CLK
+ ,PMIC_CHR_PUMP_ENABLE
+ ,PMIC_CHR_PUMP_CURRENT
+ ,PMIC_BL_DIM_CLK
+ ,PMIC_BL_DIV_BYPASS
+ ,PMIC_SPEAKER_ENABLE
+ ,PMIC_SPEAKER_GAIN
+ ,PMIC_VIBRATOR_ENABLE
+ ,PMIC_VIBRATOR_SEL
+ ,PMIC_VMC_ENABLE
+ ,PMIC_VMC_SEL
+ ,PMIC_VASW_ENABLE
+ ,PMIC_VASW_SEL
+ ,PMIC_USB_REG_ENABLE
+ ,PMIC_VBAT_ENABLE
+ ,PMIC_ISENSE_ENABLE
+ ,PMIC_BL_PWM
+ ,PMIC_MAX_NUM
+}pmic_config_req_enum;
+
+/***************************************************************
+ ** FM Radio
+ ***************************************************************/
+typedef enum
+{
+ FM_RADIO_CMD_MONO = 0,
+ FM_RADIO_CMD_STEREO,
+ FM_RADIO_CMD_RSSI,
+ FM_RADIO_CMD_IF_COUNT,
+ FM_RADIO_CMD_RSSI_INFO
+}fm_radio_config_cmd_enum;
+
+typedef enum
+{
+ FM_RADIO_COMMON_DISABLE = 0,
+ FM_RADIO_COMMON_ENABLE, /* in mono, only represent enable; in stereo, represent enable + sblend On */
+ FM_RADIO_COMMON_ENABLE_EXTRA /* in stereo, represent enable + sblend Off */
+}fm_radio_common_state_enum;
+
+/***************************************************************
+ ** RF Test Tool -- GSM
+ ***************************************************************/
+typedef enum
+{
+ RF_TEST_GSM_TX_BAND_850,
+ RF_TEST_GSM_TX_BAND_900,
+ RF_TEST_GSM_TX_BAND_1800,
+ RF_TEST_GSM_TX_BAND_1900
+}rf_test_gsm_tx_band_enum;
+
+typedef enum
+{
+ RF_TEST_GSM_STOP,
+ RF_TEST_GSM_TX_TEST,
+ RF_TEST_GSM_RX_TEST,
+ RF_TEST_GSM_POWER_SCAN,
+ RF_TEST_GSM_TX_TEST_MULTI_SLOT,
+ RF_TEST_GSM_RX_TEST_TWO_PATH, //5
+ RF_TEST_GSM_GET_TX_POWER //6
+}rf_test_gsm_req_enum;
+
+/***************************************************************
+ ** RF Test Tool -- WiFi
+ ***************************************************************/
+
+typedef enum
+{
+ RF_TEST_WIFI_STOP,
+ RF_TEST_WIFI_TEST_MODE,
+ RF_TEST_WIFI_NORMAL_MODE,
+ RF_TEST_WIFI_TX_GET_DAC_OFFSET,
+ RF_TEST_WIFI_TX_OUTPUT_POWER,
+ RF_TEST_WIFI_TX_CARRIER_SUPP,
+ RF_TEST_WIFI_TX_LOCAL_FREQ,
+ RF_TEST_WIFI_TX_CONT_PKT,
+ RF_TEST_WIFI_RX_CONT_PKT,
+ RF_TEST_WIFI_POWER_SAVE,
+ RF_TEST_WIFI_REG_MCR32_WRITE,
+ RF_TEST_WIFI_REG_MCR32_READ,
+ RF_TEST_WIFI_REG_MCR16_WRITE,
+ RF_TEST_WIFI_REG_MCR16_READ,
+ RF_TEST_WIFI_REG_BBCR_WRITE,
+ RF_TEST_WIFI_REG_BBCR_READ,
+ RF_TEST_WIFI_REG_EEPROM_WRITE,
+ RF_TEST_WIFI_REG_EEPROM_READ,
+ RF_TEST_WIFI_REG_EFUSE_WRITE,
+ RF_TEST_WIFI_REG_EFUSE_READ
+}rf_test_wifi_req_enum;
+
+/*****************************************************************************
+* Misc Interface
+*****************************************************************************/
+/* Indicator data type */
+typedef enum
+{
+ IND_BATTCHG = 0 ,
+ IND_SIGNAL ,
+ IND_SERVICE ,
+ IND_SOUNDER ,
+ IND_MESSAGE ,
+ IND_CALL ,
+ IND_VOX ,
+ IND_ROAM ,
+ IND_SMSFULL
+} indicator_type_enum;
+
+
+/* Define the equipment to return the string mapping. */
+typedef enum
+{
+ EQ_ME_MANUFACTURE_ID = 0 ,
+ EQ_ME_MODEL_ID ,
+ EQ_ME_REVISION_ID ,
+ EQ_ME_SERIAL_NUMBER_ID ,
+ EQ_ME_SERIAL_NUMBER_SIM2_ID ,
+ EQ_ME_GLOBAL_OBJECT_ID ,
+ EQ_ME_MANUFACTURE_INFO_ID ,
+ EQ_ME_COMP_CAP_LIST_ID ,
+ EQ_ME_SERIAL_NUMBER_SIM3_ID ,
+ EQ_ME_SERIAL_NUMBER_SIM4_ID ,
+ MAX_ME_ID_NUM
+} equip_id_enum;
+
+
+#define MAX_ME_ID_LEN 30
+
+
+/* Define the device process status. */
+typedef enum
+{
+ DEV_OK = 0 , /* The device status is ok to process. */
+ DEV_FAIL , /* The device status is fail to process*/
+ DEV_FAIL_VM_NO_FREE_ENTRY , /* voice mail fail cause */
+ DEV_FAIL_VM_BUFFER_FULL ,
+ DEV_FAIL_VM_PLAY_NO_DATA
+} dev_status_enum;
+
+
+/*****************************************************************************
+* USB Interface
+*****************************************************************************/
+typedef enum
+{
+ DEVUSB_DETECT_ACTION_UNKNOWN = 0 ,
+ DEVUSB_DETECT_ACTION_PLUGIN ,
+ DEVUSB_DETECT_ACTION_PLUGOUT ,
+ DEVUSB_DETECT_ACTION_USB_SUSPEND ,
+ DEVUSB_DETECT_ACTION_MAX_ID
+} devusb_detect_action_enum;
+
+
+typedef enum
+{
+ DEVUSB_CFG_ACTION_UNKNOWN = 0 ,
+ DEVUSB_CFG_ACTION_CDC_ACM ,
+ DEVUSB_CFG_ACTION_MASS_STORAGE ,
+ DEVUSB_CFG_ACTION_MULTI_COM,
+ DEVUSB_CFG_ACTION_WEBCAM ,
+ DEVUSB_CFG_ACTION_STOP_MS ,
+ DEVUSB_CFG_ACTION_IRDBG ,
+ DEVUSB_CFG_ACTION_PICTBRIGE ,
+ DEVUSB_CFG_ACTION_MTP ,
+ DEVUSB_CFG_ACTION_STOP_MTP ,
+ DEVUSB_CFG_ACTION_MAX_ID
+} devusb_cfg_action_enum;
+
+
+typedef enum
+{
+ USB_SWITCH_PORT_APP_DATA = 0 ,
+ USB_SWITCH_PORT_APP_DEBUG,
+ USB_SWITCH_PORT_APP_NULL
+} usb_switch_port_app_enum;
+
+#if (defined(MT6229) || defined(MT6227) || defined(MT6228) || defined(MT6225) || defined(MT6268T) || defined(MT6268H) || defined(MT6230) || defined(MT6227D) || defined(MT6223) || defined(MT6226D) || defined(MT6223P))
+#if (defined(MT6227) || defined(MT6227D) || defined(MT6226D))
+typedef enum
+{
+
+ EM_SWDBG_OFF,
+ EM_SWDBG_DSP_L1_PS,
+ EM_SWDBG_L1_PS,
+ EM_SWDBG_MCU,
+ EM_SWDBG_RESET,
+ EM_SWDBG_MAX
+} EM_SWDBG_ITEM;
+
+#elif defined(MT6228)
+typedef enum
+{
+
+ EM_SWDBG_OFF,
+ EM_SWDBG_DSP_L1_PS,
+ EM_SWDBG_L1_PS,
+ EM_SWDBG_MCU,
+ EM_SWDBG_MCU_DSP,
+ EM_SWDBG_RESET,
+ EM_SWDBG_MAX
+} EM_SWDBG_ITEM;
+
+#else
+typedef enum
+{
+
+ EM_SWDBG_OFF,
+ EM_SWDBG_DSP_L1,
+ EM_SWDBG_DSP_PS,
+ EM_SWDBG_L1_PS,
+ EM_SWDBG_MCU,
+ EM_SWDBG_MCU_DSP,
+ EM_SWDBG_RESET,
+ EM_SWDBG_MAX
+} EM_SWDBG_ITEM;
+
+#endif
+#endif /* #if (defined(MT6229) || defined(MT6227) || defined(MT6228) || defined(MT6225) || defined(MT6268T)|| defined(MT6268H) || defined(MT6230) || defined(MT6227D)) */
+
+typedef enum
+{
+ EM_USB_LOGGING_NONE,
+#ifdef __DSPIRDBG__
+ EM_USB_LOGGING_IRDBG,
+#endif
+
+
+ EM_USB_LOGGING_MAX
+} EM_USB_LOGGING_ITEM;
+
+
+//#if defined(MT6223PMU)
+/***************************************************************
+ ** PMU6223
+ ***************************************************************/
+/* Enum */
+typedef enum
+{
+ MT6223PMU_READ_REG
+ ,MT6223PMU_WRITE_REG
+ ,MT6223PMU_GET_CHR_STATUS
+ ,MT6223PMU_SET_CHR_GET_CHR_EN
+ ,MT6223PMU_SET_CHR_SET_CHR_EN
+ ,MT6223PMU_SET_CHR_GET_CHR_CUR
+ ,MT6223PMU_SET_CHR_SET_CHR_CUR
+ ,MT6223PMU_SET_CHR_GET_CHR_CUR_OFFSET
+ ,MT6223PMU_SET_CHR_SET_CHR_CUR_OFFSET
+// ,MT6223PMU_SET_CHR_GET_OV_TH_FREEZE
+// ,MT6223PMU_SET_CHR_SET_OV_TH_FREEZE
+ ,MT6223PMU_SET_CHR_GET_CV_THRESHOLD
+ ,MT6223PMU_SET_CHR_SET_CV_THRESHOLD
+ ,MT6223PMU_GET_DRIVER_INFO
+ ,MT6223PMU_SET_DRIVER_INFO
+ ,MT6223PMU_GET_LDO_VOLTAGE
+ ,MT6223PMU_SET_LDO_VOLTAGE
+ ,MT6223PMU_GET_LDO_ENABLE
+ ,MT6223PMU_SET_LDO_ENABLE
+ ,MT6223PMU_GET_BIAS_CURRENT
+ ,MT6223PMU_SET_BIAS_CURRENT
+
+ ,MT6223PMU_MAX_NUM
+}EM_MT6223PMU_REQ_ENUM;
+
+
+typedef enum
+{
+ PMU6223_CHR_STATE_CHR_DET = 0,
+ PMU6223_CHR_STATE_BAT_ON,
+ PMU6223_CHR_STATE_CV,
+ PMU6223_CHR_STATE_CHR_OVP,
+ PMU6223_CHR_STATE_CHARGING,
+ PMU6223_CHR_STATE_MAX
+}PMU6223_CHR_STATE;
+
+typedef enum
+{
+ PMU6223_CHR_CUR_OFFSET_P1 = 0,
+ PMU6223_CHR_CUR_OFFSET_P2,
+ PMU6223_CHR_CUR_OFFSET_M2,
+ PMU6223_CHR_CUR_OFFSET_M1
+}PMU6223_CHR_CUR_OFFSET;
+
+typedef enum
+{
+ PMU6223_DRIVE_INFO_VIB = 0,
+ PMU6223_DRIVE_INFO_LED
+}PMU6223_DRIVE_INFO;
+
+typedef enum
+{
+ PMU6223_LDO_VOLTAGE_VRF = 0,
+ PMU6223_LDO_VOLTAGE_VCORE,
+ PMU6223_LDO_VOLTAGE_VM,
+ PMU6223_LDO_VOLTAGE_VIO,
+ PMU6223_LDO_VOLTAGE_VA,
+ PMU6223_LDO_VOLTAGE_VTCXO,
+ PMU6223_LDO_VOLTAGE_VSIM,
+ PMU6223_LDO_VOLTAGE_VRTC1
+// PMU6223_LDO_VOLTAGE_VRTC2
+}PMU6223_LDO_VOLTAGE_TYPE;
+
+typedef enum
+{
+ PMU6223_LDO_ENABLE_VRF = 0,
+ PMU6223_LDO_ENABLE_VTCXO,
+ PMU6223_LDO_ENABLE_VSIM
+}PMU6223_LDO_ENABLE;
+
+typedef enum
+{
+ PMU6223_BIAS_CALIBRATE_VRF = 0,
+ PMU6223_BIAS_CALIBRATE_VM,
+ PMU6223_BIAS_CALIBRATE_VIO,
+ PMU6223_BIAS_CALIBRATE_VSIM,
+ PMU6223_BIAS_CALIBRATE_VCORE_CAL
+}PMU6223_BIAS_CALIBRATE_TYPE;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif /* if 0 */
+
+/***************************************************************
+ ** PMU6238
+ ***************************************************************/
+/* Enum */
+typedef enum
+{
+ MT6238PMU_READ_REG
+ ,MT6238PMU_WRITE_REG
+ ,MT6238PMU_GET_CHR_STATUS
+ ,MT6238PMU_SET_CHR_GET_CHR_EN
+ ,MT6238PMU_SET_CHR_SET_CHR_EN
+ ,MT6238PMU_SET_CHR_GET_CHR_CUR
+ ,MT6238PMU_SET_CHR_SET_CHR_CUR
+ ,MT6238PMU_SET_CHR_GET_CHR_CUR_OFFSET
+ ,MT6238PMU_SET_CHR_SET_CHR_CUR_OFFSET
+ ,MT6238PMU_SET_CHR_GET_OV_TH_FREEZE
+ ,MT6238PMU_SET_CHR_SET_OV_TH_FREEZE
+ ,MT6238PMU_SET_CHR_GET_CV_THRESHOLD
+ ,MT6238PMU_SET_CHR_SET_CV_THRESHOLD
+ ,MT6238PMU_GET_DRIVER_INFO
+ ,MT6238PMU_SET_DRIVER_INFO
+ ,MT6238PMU_GET_LDO_VOL_SEL_VBT /* MC */
+ ,MT6238PMU_SET_LDO_VOL_SEL_VBT /* MC */
+ ,MT6238PMU_GET_LDO_VOL_SEL_VCAMD /* CAMERA */
+ ,MT6238PMU_SET_LDO_VOL_SEL_VCAMD /* CAMERA */
+ ,MT6238PMU_GET_LDO_VOL_SEL_VCAMA /* SW_A */
+ ,MT6238PMU_SET_LDO_VOL_SEL_VCAMA /* SW_A */
+ ,MT6238PMU_GET_LDO_VOL_SEL_VSIM
+ ,MT6238PMU_SET_LDO_VOL_SEL_VSIM
+ ,MT6238PMU_GET_LDO_VOLTAGE_CAL
+ ,MT6238PMU_SET_LDO_VOLTAGE_CAL
+ ,MT6238PMU_GET_LDO_ENABLE
+ ,MT6238PMU_SET_LDO_ENABLE
+ ,MT6238PMU_GET_DC_CONTROL
+ ,MT6238PMU_SET_DC_CONTROL
+ ,MT6238PMU_GET_BIAS_CURRENT
+ ,MT6238PMU_SET_BIAS_CURRENT
+
+ ,MT6238PMU_MAX_NUM
+}EM_MT6238PMU_REQ_ENUM;
+
+typedef enum
+{
+ EM_MT6238PMU_OV_TH_FREEZE_AUTO = 0,
+ EM_MT6238PMU_OV_TH_FREEZE_FIXED
+} EM_MT6238PMU_OV_TH_FREEZE_TYPE;
+
+
+typedef enum
+{
+ PMU6238_CHR_CUR_OFFSET_P1 = 0,
+ PMU6238_CHR_CUR_OFFSET_P2,
+ PMU6238_CHR_CUR_OFFSET_M2,
+ PMU6238_CHR_CUR_OFFSET_M1
+}PMU6238_CHR_CUR_OFFSET;
+
+typedef enum
+{
+ PMU6238_DRIVE_INFO_VIB = 0,
+ PMU6238_DRIVE_INFO_LED
+}PMU6238_DRIVE_INFO;
+
+typedef enum
+{
+ PMU6238_LDO_VOLTAGE_VCORE = 0, /* FBADJ */
+ PMU6238_LDO_VOLTAGE_VCORE_SLEEP, /* FBADJ_SLEEP */
+ PMU6238_LDO_VOLTAGE_VRF,
+ PMU6238_LDO_VOLTAGE_VM,
+ PMU6238_LDO_VOLTAGE_VIO,
+ PMU6238_LDO_VOLTAGE_VA,
+ PMU6238_LDO_VOLTAGE_VTCXO,
+ PMU6238_LDO_VOLTAGE_VSIM,
+ PMU6238_LDO_VOLTAGE_VRTC1,
+ PMU6238_LDO_VOLTAGE_VRTC2,
+ PMU6238_LDO_VOLTAGE_VUSB,
+ PMU6238_LDO_VOLTAGE_VBT, /* VMC */
+ PMU6238_LDO_VOLTAGE_VCAMD, /* VCAMERA */
+ PMU6238_LDO_VOLTAGE_VCAMA, /* VSW_A */
+ PMU6238_LDO_VOLTAGE_VSIM2
+}PMU6238_LDO_VOLTAGE_TYPE;
+
+
+typedef enum
+{
+ PMU6238_LDO_ENABLE_VRF_ON_SEL = 0,
+ PMU6238_LDO_ENABLE_VRF_EN,
+ PMU6238_LDO_ENABLE_VTCXO_ON_SEL,
+ PMU6238_LDO_ENABLE_VTCXO_EN,
+ PMU6238_LDO_ENABLE_VUSB,
+ PMU6238_LDO_ENABLE_VBT, /* VMC */
+ PMU6238_LDO_ENABLE_VCAM_D, /* CAMERA */
+ PMU6238_LDO_ENABLE_VCAM_A, /* SW_A */
+ PMU6238_LDO_ENABLE_VSIM1,
+ PMU6238_LDO_ENABLE_VSIM2
+}PMU6238_LDO_ENABLE;
+
+
+typedef enum
+{
+ PMU6238_DC_CONTROL_GAINP = 0,
+ PMU6238_DC_CONTROL_GAIN,
+ PMU6238_DC_CONTROL_GAIND,
+ PMU6238_DC_CONTROL_DIR_CTRL_EN,
+ PMU6238_DC_CONTROL_DCVCK_SEL,
+ PMU6238_DC_CONTROL_ISEL,
+ PMU6238_DC_CONTROL_ADJCKSEL,
+ PMU6238_DC_CONTROL_MODESET,
+ PMU6238_DC_CONTROL_MODEEN,
+ PMU6238_DC_CONTROL_PFMSEL_0_3,
+ PMU6238_DC_CONTROL_PFMSEL_4_6,
+ PMU6238_DC_CONTROL_IASEL,
+ PMU6238_DC_CONTROL_SLEW_CTRL
+}PMU6238_DC_CONTROL_TYPE;
+
+typedef enum
+{
+ PMU6238_BIAS_CALIBRATE_VRF = 0,
+ PMU6238_BIAS_CALIBRATE_VM,
+ PMU6238_BIAS_CALIBRATE_VIO,
+ PMU6238_BIAS_CALIBRATE_VA,
+ PMU6238_BIAS_CALIBRATE_VTCXO,
+ PMU6238_BIAS_CALIBRATE_VSIM,
+ PMU6238_BIAS_CALIBRATE_VUSB,
+ PMU6238_BIAS_CALIBRATE_VBT,
+ PMU6238_BIAS_CALIBRATE_VCAMD,
+ PMU6238_BIAS_CALIBRATE_VCAMA,
+ PMU6238_BIAS_CALIBRATE_VSIM2
+}PMU6238_BIAS_CALIBRATE_TYPE;
+
+/***************************************************************
+ ** PMU6326
+ ***************************************************************/
+/* Enum */
+typedef enum
+{
+ MT6326PMU_READ_REG
+ ,MT6326PMU_WRITE_REG
+ ,MT6326PMU_MAX_NUM
+}EM_MT6326PMU_REQ_ENUM;
+
+/***************************************************************
+ ** PMU6253
+ ***************************************************************/
+/* Enum */
+typedef enum
+{
+ MT6253PMU_READ_REG
+ ,MT6253PMU_WRITE_REG
+ ,MT6253PMU_MAX_NUM
+}EM_MT6253PMU_REQ_ENUM;
+
+#endif /* _DEVICE_H */
+
+
diff --git a/mcu/interface/protocol/general/dmf_public_api.h b/mcu/interface/protocol/general/dmf_public_api.h
new file mode 100644
index 0000000..fc3e12a
--- /dev/null
+++ b/mcu/interface/protocol/general/dmf_public_api.h
@@ -0,0 +1,96 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * dmf_public_api.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * DMF Framework public API
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *
+ ********************************************************************************/
+
+#ifndef _DMF_PUBLIC_API_H_
+#define _DMF_PUBLIC_API_H_
+
+#include "sim_exported_enum.h"
+#include "dmf_public_def.h"
+
+#include "atp_public_defs.h"
+#include "atp_dmf_struct.h"
+
+/* DMF AT APIs */
+extern void dmf_send_at_rsp(
+ kal_uint16 ch_id,
+ protocol_id_enum ps_id,
+ kal_uint32 app_id,
+ proxy_cmd_result_enum result,
+ atp_mt_dmf_cmd_cnf_type_enum type,
+ void *msg, kal_uint32 msg_size);
+
+extern void dmf_send_at_urc(kal_uint32 app_id, protocol_id_enum ps_id, atp_mt_dmf_urc_ind_type_enum type, void *msg, kal_uint32 msg_size);
+
+extern void dmf_send_at_final_rsp(
+ kal_uint16 ch_id,
+ protocol_id_enum ps_id,
+ kal_uint32 app_id,
+ proxy_cmd_result_enum result);
+
+/*COMMON*/
+extern void dmf_info_collect_get_current_serving_cell_info(
+ protocol_id_enum ps_id, dmf_info_collect_current_serving_cell_info_struct *serving_cell);
+extern void dmf_info_collect_replace_as_cell_info(
+ protocol_id_enum ps_id, dmf_info_collect_current_serving_cell_info_struct *serving_cell);
+
+#ifdef __C2K_RAT__
+extern kal_uint8 dmf_info_collect_get_current_ps_id();
+#endif
+
+extern void dmf_kpi_nvram_write_cnf_hdlr();
+extern kal_bool dmf_info_collect_check_ps_id_valid(protocol_id_enum ps_id);
+
+
+#endif // _DMF_PUBLIC_API_H_
diff --git a/mcu/interface/protocol/general/dmf_public_def.h b/mcu/interface/protocol/general/dmf_public_def.h
new file mode 100644
index 0000000..7344c82
--- /dev/null
+++ b/mcu/interface/protocol/general/dmf_public_def.h
@@ -0,0 +1,1462 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * dmf_public_def.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * DM Framework public structure/enum definition
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 09 24 2020 jack-mh.tsai
+ * [MOLY00547250] 5G SA®I?»Ý¨D
+ *
+ * 09 18 2020 jack-mh.tsai
+ * [MOLY00570074] [Cayman][TMUS][Protocol][EchoLocate] Request to implement DataMetrics5gSa class API version 1
+ *
+ * 09 14 2020 jack-mh.tsai
+ * [MOLY00570074] [Cayman][TMUS][Protocol][EchoLocate] Request to implement DataMetrics5gSa class API version 1
+ *
+ * 08 25 2020 jack-mh.tsai
+ * [MOLY00562173] DMFªº«È¨î¤Æ»Ý¨D - ICD Backward Compatible - DMF Part
+ *
+ * 08 13 2020 titi.wu
+ * [MOLY00524839] 5G RF ®I?»Ý¨D
+ * EWSP0000141637
+ *
+ * 08 13 2020 titi.wu
+ * [MOLY00524839] 5G RF ®I?»Ý¨D
+ * EWSP0000141637
+ *
+ * 08 01 2020 kunkun.shao
+ * [MOLY00550497] [RDIT][NW KPI UTIT]Provide volte call id when report call related KPI information
+ *
+ * .
+ *
+ * 07 31 2020 kunkun.shao
+ * [MOLY00527050] [MP5 Excluded][NW KPI UTIT]modify invalid mo csfb info collect when mo csfb call happens
+ *
+ * .
+ *
+ * 07 06 2020 titi.wu
+ * [MOLY00541505] ¡i5G-A¡j¡iModem·sfeature¡j5G±µ¤J±±¨î???¦ô®I?
+ * .
+ *
+ * 06 29 2020 kunkun.shao
+ * [MOLY00536656] Modem¶Ë´óÊý¾ÝÊÕ¼¯:add scg SW part.
+ *
+ * .
+ *
+ * 05 22 2020 jack-mh.tsai
+ * [MOLY00511933] 5G¥\¯Ó®I?¤W?Éó¨î
+ *
+ * 05 18 2020 kunkun.shao
+ * [MOLY00522254] [MP5 Excluded][NW KPI UTIT][Margaux][MT6873]MT VoLTE callÔö¼ÓFail cause
+ *
+ * .
+ *
+ * 05 01 2020 kunkun.shao
+ * [MOLY00518537] [NW KPI UTIT][Margaux][MT6873]DMF add IMS related kpi handle for IMS fail
+ *
+ * .
+ *
+ * 04 22 2020 jack-mh.tsai
+ * [MOLY00516557] CS????DMFAPP??????(AT+URC 1001)(SWRD)
+ *
+ * 04 17 2020 kunkun.shao
+ * [MOLY00511342] Modem¶Ë´óÊý¾ÝÊÕ¼¯:DMF NW KPI SW DOMAIN
+ *
+ * 03 16 2020 jack-mh.tsai
+ * [MOLY00505503] [Gen97] OPPO DMF KPI requirement
+ *
+ * 01 18 2020 kunkun.shao
+ * [MOLY00475736] Modem¶Ë´óÊý¾ÝÊÕ¼¯:internal dmf
+ *
+ * 01 07 2020 jack-mh.tsai
+ * [MOLY00469943] DMF Customization Framework: DMF MISC16 1010(SWRD)
+ *
+ * 01 06 2020 jack-mh.tsai
+ * [MOLY00469943] DMF Customization Framework:Move event structure to public layer(SWRD)
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _DMF_PUBLIC_DEF_H_
+#define _DMF_PUBLIC_DEF_H_
+
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "ims_interface_md.h"
+
+#include "em_vdm_public_struct.h"
+#include "em_public_struct_xl1.h"
+#include "em_public_struct_xl3.h"
+#include "em_mcf_public_struct.h"
+#include "em_sbp_public_struct.h"
+#include "em_mm_public_struct.h"
+#include "em_emm_public_struct.h"
+#include "em_errc_public_struct.h"
+#include "em_sim_public_struct.h"
+#include "em_uas_public_struct.h"
+#include "em_gmss_public_struct.h"
+#include "em_esm_public_struct.h"
+
+
+#define DMF_INFO_COLLECT_MAX_MCF_FILE_NAME EM_MCF_FILE_MAX_NAME_LEN
+#define MAX_ICD_NL2_PDCP_CONFIGURATION_EVENT_STRUCT_V1_NUMBER_OF_RBS 37
+#define MAX_ICD_NL2_PDCP_DL_STATS_STRUCT_V1_NUMBER_OF_RBS 37
+#define MAX_ICD_NL2_PDCP_UL_STATS_STRUCT_V1_NUMBER_OF_RBS 37
+#define FLEXIBLE_ARRAY_SIZE 1
+#define ERRC_SCELL_NUM_MAX 7
+#define NL1_SCELL_CONFIG_LIST_SIZE 1
+#define MAX_ICD_NL2_RLC_DL_STATS_STRUCT_V1_NUMBER_OF_ENTITIES 75
+#define MAX_ICD_NL2_RLC_UL_STATS_STRUCT_V1_NUMBER_OF_ENTITIES 75
+#define DMF_KPI_MAX_COUNT_NUM 0xffffffff
+
+#define DMF_ESM_MAX_PT_NUM 15 //same as ESM_MAX_PT_NUM
+#define DMF_ESM_MAX_EPSB_NUM 11 //same as ESM_MAX_EPSB_NUM
+
+#define DMF_MAX(x, y) (((x) > (y)) ? (x) : (y))
+#define DMF_MIN(x, y) (((x) < (y)) ? (x) : (y))
+#define DMF_AVG(x, y) (((x) + (y)) / 2)
+
+typedef enum
+{
+ DMF_PAGING_REASON_VOLTE,
+ DMF_PAGING_REASON_SMS,
+ DMF_PAGING_REASON_DETACH,
+ DMF_PAGING_REASON_PAGING_FAIL,
+ DMF_PAGING_REASON_UNSPECIFIED,
+ DMF_PAGING_REASON_MAX,
+} dmf_info_collect_paging_reason_enum;
+
+typedef enum
+{
+ DMF_EMM_ATTACH_NONE,
+ DMF_EMM_ATTACH_REQUEST,
+ DMF_EMM_ATTACH_ACCEPT,
+ DMF_EMM_ATTACH_REJECT,
+ DMF_EMM_ATTACH_T3410_EXPIRY
+} dmf_emm_attach_event_enum;
+
+typedef enum
+{
+ DMF_EMM_ATTACH_TAU_INVALID,
+ DMF_EMM_ATTACH_TYPE_EPS_ATTACH,
+ DMF_EMM_ATTACH_TYPE_COMBINED_ATTACH,
+ DMF_EMM_ATTACH_TYPE_EMERGENCY_ATTACH,
+
+ DMF_EMM_TAU_TYPE_TAU,
+ DMF_EMM_TAU_TYPE_COMBINED_TAU,
+ DMF_EMM_TAU_TYPE_COMBINED_TAU_IMSI_ATTACH,
+ DMF_EMM_TAU_TYPE_PERIODIC_TAU,
+} dmf_emm_attach_tau_type_enum;
+
+typedef enum
+{
+ DMF_ESM_OTA_EVENT_NONE,
+ DMF_ESM_PDN_CONN_REQUEST,
+ DMF_ESM_PDN_CONN_REJECT,
+ DMF_ESM_PDN_DISCONN_REQUEST,
+ DMF_ESM_PDN_DISCONN_REJECT,
+ DMF_ESM_ACT_DEFAULT_BEARER_REQUEST,
+ DMF_ESM_ACT_DEFAULT_BEARER_ACCEPT,
+ DMF_ESM_ACT_DEFAULT_BEARER_REJECT,
+ DMF_ESM_ACT_DEDICATED_BEARER_REQUEST,
+ DMF_ESM_ACT_DEDICATED_BEARER_ACCEPT,
+ DMF_ESM_ACT_DEDICATED_BEARER_REJECT,
+ DMF_ESM_MODIFY_BEARER_REQUEST,
+ DMF_ESM_MODIFY_BEARER_ACCEPT,
+ DMF_ESM_MODIFY_BEARER_REJECT,
+ DMF_ESM_DEACT_BEARER_REQUEST,
+ DMF_ESM_DEACT_BEARER_ACCEPT,
+ DMF_ESM_BEARER_RSC_ALLOCATE_REQUEST,
+ DMF_ESM_BEARER_RSC_ALLOCATE_REJECT,
+ DMF_ESM_BEARER_RSC_MODIFY_REQUEST,
+ DMF_ESM_BEARER_RSC_MODIFY_REJECT,
+ DMF_ESM_INFO_REQUEST,
+ DMF_ESM_INFO_RESPONSE,
+ DMF_ESM_NOTIFICATION,
+ DMF_ESM_STATUS,
+} dmf_esm_ota_event_enum;
+
+typedef enum
+{
+ DMF_ESM_APP_NONE,
+ DMF_ESM_APP_IMS,
+ DMF_ESM_APP_EMERGENCY,
+} dmf_esm_app_type_enum;
+
+typedef enum
+{
+ DMF_ESM_TIMER_NONE,
+ DMF_ESM_TIMER_T3480,
+ DMF_ESM_TIMER_T3482,
+ DMF_ESM_TIMER_T3481,
+ DMF_ESM_TIMER_T3492,
+} dmf_esm_timer_enum;
+
+typedef enum
+{
+ DMF_SM_PDP_NONE,
+ DMF_SM_PDP_ACT_REQUEST,
+ DMF_SM_PDP_ACT_ACCEPT,
+ DMF_SM_PDP_ACT_REJECT,
+} dmf_sm_pdp_event_enum;
+
+
+typedef enum
+{
+ /*MT Begin*/
+ DMF_MM_MT_CS_BEGIN = 0,
+ DMF_MM_MT_CS_NONE = DMF_MM_MT_CS_BEGIN + EM_MM_MT_CS_NONE,
+ DMF_MM_MT_CS_SUCCESS = DMF_MM_MT_CS_BEGIN + EM_MM_MT_CS_SUCCESS,
+ DMF_MM_MT_CS_RR_REL_IND_RECEIVED = DMF_MM_MT_CS_BEGIN + EM_MM_RR_REL_IND_RECEIVED,
+ DMF_MM_MT_CS_FAIL_LU_ABNORMAL = DMF_MM_MT_CS_BEGIN + EM_MM_MT_CS_FAIL_LU_ABNORMAL,
+ DMF_MM_MT_CS_T3240_TIMEOUT = DMF_MM_MT_CS_BEGIN + EM_MM_T3240_TIMEOUT,
+ DMF_MM_MT_CS_PAGING_RESPONSE_SENT = DMF_MM_MT_CS_BEGIN + EM_MM_PAGING_RESPONSE_SENT,
+ DMF_MM_MT_CS_PAGING_BLOCKED_BY_ACCESS_BARRED = DMF_MM_MT_CS_BEGIN + EM_MM_PAGING_BLOCKED_BY_ACCESS_BARRED,
+ DMF_MM_MT_CS_AUTH_REJECT = DMF_MM_MT_CS_BEGIN + EM_MM_AUTH_REJECT,
+ DMF_MM_MT_CS_AUTH_FAIL = DMF_MM_MT_CS_BEGIN + EM_MM_AUTH_FAIL,
+ DMF_MM_MT_CS_PLMN_LOSS_IND_RECEIVED = DMF_MM_MT_CS_BEGIN + EM_MM_PLMN_LOSS_IND_RECEIVED,
+ DMF_MM_MT_CS_SIM_ERROR_IND_RECEIVED = DMF_MM_MT_CS_BEGIN + EM_MM_SIM_ERROR_IND_RECEIVED,
+ DMF_MM_MT_CS_CONN_EST_FAIL = DMF_MM_MT_CS_BEGIN + EM_MM_CONN_EST_FAIL,
+
+ /*MO Begin*/
+ DMF_MM_MO_CS_BEGIN = 100,
+ DMF_MM_MO_CS_NONE = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CS_NONE,
+ DMF_MM_MO_CS_SUCCESS = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CS_SUCCESS,
+ DMF_MM_MO_CS_RR_REL_IND_RECEIVED = DMF_MM_MO_CS_BEGIN + EM_MM_MO_RR_REL_IND_RECEIVED,
+ DMF_MM_MO_CS_FAIL_LU_ABNORMAL = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CS_FAIL_LU_ABNORMAL,
+ DMF_MM_MO_CS_T3240_TIMEOUT = DMF_MM_MO_CS_BEGIN + EM_MM_MO_T3240_TIMEOUT,
+ DMF_MM_MO_CS_AUTH_REJECT = DMF_MM_MO_CS_BEGIN + EM_MM_MO_AUTH_REJECT,
+ DMF_MM_MO_CS_AUTH_FAIL = DMF_MM_MO_CS_BEGIN + EM_MM_MO_AUTH_FAIL,
+ DMF_MM_MO_CS_PLMN_LOSS_IND_RECEIVED = DMF_MM_MO_CS_BEGIN + EM_MM_MO_PLMN_LOSS_IND_RECEIVED,
+ DMF_MM_MO_CS_SIM_ERROR_IND_RECEIVED = DMF_MM_MO_CS_BEGIN + EM_MM_MO_SIM_ERROR_IND_RECEIVED,
+ DMF_MM_MO_CS_CONN_EST_FAIL = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CONN_EST_FAIL,
+ DMF_MM_MO_CS_CM_SERV_REJECT = DMF_MM_MO_CS_BEGIN + EM_MM_MO_CM_SERV_REJECT,
+
+} dmf_mm_cs_call_status_enum;
+
+typedef enum
+{
+ /* MM BEGIN */
+ DMF_CSFB_CALL_MM_MTCSFB_BEGIN = 0,
+ DMF_CSFB_CALL_MM_MTCSFB_NONE = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_NONE,
+ DMF_CSFB_CALL_MM_MTCSFB_START = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_START,
+ DMF_CSFB_CALL_MM_MTCSFB_SUCCESS = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_SUCCESS,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL_PAGING_GUARD_TIMER_EXPIRED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_PAGING_GUARD_TIMER_EXPIRED,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL_T3240_TIMEOUT = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_T3240_TIMEOUT,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL_AUTH_FAIL = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_AUTH_FAIL,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL_CONN_EST_FAIL = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_CONN_EST_FAIL,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL_LAU_REJECT = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_LAU_REJECT,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL_RRC_REL_IND_RECEIVED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_RRC_REL_IND_RECEIVED,
+ DMF_CSFB_CALL_MM_MTCSFB_LAU_ACCEPT = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_LAU_ACCEPT,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL_PLMN_LOSS_IND_RECEIVED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_PLMN_LOSS_IND_RECEIVED,
+ DMF_CSFB_CALL_MM_MTCSFB_FAIL_SIM_ERROR_IND_RECEIVED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_FAIL_SIM_ERROR_IND_RECEIVED,
+ DMF_CSFB_CALL_MM_MTCSFB_PAGING_RESPONSE_SENT = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_PAGING_RESPONSE_SENT,
+ DMF_CSFB_CALL_MM_MTCSFB_PAGING_BLOCKED_BY_ACCESS_BARRED = DMF_CSFB_CALL_MM_MTCSFB_BEGIN+EM_MM_MTCSFB_PAGING_BLOCKED_BY_ACCESS_BARRED,
+
+ DMF_CSFB_CALL_MM_MOCSFB_BEGIN = 100,
+ DMF_CSFB_CALL_MM_MOCSFB_NONE = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_NONE,
+ DMF_CSFB_CALL_MM_MOCSFB_START = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_START,
+ DMF_CSFB_CALL_MM_MOCSFB_SUCCESS = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_SUCCESS,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL,
+ DMF_CSFB_CALL_MM_MOCSFB_CM_SERV_REJECT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_CM_SERV_REJECT,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL_T3240_TIMEOUT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_T3240_TIMEOUT,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL_AUTH_FAIL = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_AUTH_FAIL,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL_CONN_EST_FAIL = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_CONN_EST_FAIL,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL_LAU_REJECT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_LAU_REJECT,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL_RRC_REL_IND_RECEIVED = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_RRC_REL_IND_RECEIVED,
+ DMF_CSFB_CALL_MM_MOCSFB_LAU_ACCEPT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_LAU_ACCEPT,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL_PLMN_LOSS_IND_RECEIVED = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_PLMN_LOSS_IND_RECEIVED,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL_SIM_ERROR_IND_RECEIVED = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_SIM_ERROR_IND_RECEIVED,
+ DMF_CSFB_CALL_MM_MOCSFB_ACCESS_CLASS_BARRED = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_ACCESS_CLASS_BARRED,
+ DMF_CSFB_CALL_MM_MOCSFB_FAIL_T3230_TIMEOUT = DMF_CSFB_CALL_MM_MOCSFB_BEGIN+EM_MM_MOCSFB_FAIL_T3230_TIMEOUT,
+
+
+ /* EMM BEGIN */
+ DMF_CSFB_CALL_EMM_IGNORE_BEGIN = 200,
+ DMF_CSFB_CALL_EMM_IGNORE_NONE = DMF_CSFB_CALL_EMM_IGNORE_BEGIN + EM_EMM_CALL_IGNORE_PAGING_NONE,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_UNEXPECTED_TYPE = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_UNEXPECTED_TYPE,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_IMS_CALL_ONGOING = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_IMS_CALL_ONGOING,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_CS_NOT_ALLOW = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_CS_NOT_ALLOW,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_ID_ERROR = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_ID_ERROR,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_NOT_SUITABLE_CELL = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_NOT_SUITABLE_CELL,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_NO_CS_INSTANCE = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_NO_CS_INSTANCE,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_INTERRAT = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_INTERRAT,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_TMSI_ERROR = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_TMSI_ERROR,
+ DMF_CSFB_CALL_EMM_IGNORE_PAGING_WAIT_ATTACH_END = DMF_CSFB_CALL_EMM_IGNORE_BEGIN+EM_EMM_CALL_IGNORE_PAGING_WAIT_ATTACH_END,
+
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN = 300,
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_SUCCESS = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_SUCCESS,
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_EST_FAIL = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_EST_FAIL,
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_REL_IND = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_REL_IND,
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_RETRANS = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_RETRANS,
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_REJECT = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_REJECT,
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_T3417TO = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_T3417TO,
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_AC_BARRED= DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_AC_BARRED,
+ DMF_CSFB_CALL_EMM_FAIL_TRIG_AUTH_REJ = DMF_CSFB_CALL_EMM_FAIL_TRIG_BEGIN+EM_EMM_CALL_FAIL_TRIG_AUTH_REJ,
+} dmf_csfb_call_state_enum;
+
+
+typedef enum
+{
+ DMF_ERRC_SRVCC_FAIL_MEAS_RPTE_NO_RESPONSE,
+ DMF_ERRC_SRVCC_FAIL_MEAS_RPT_SEND_FAIL,
+ DMF_ERRC_SRVCC_FAIL_THRESHOLD_NOT_PASS,
+ DMF_ERRC_SRVCC_FAIL_TTT_RECOUNT,
+ DMF_ERRC_SRVCC_FAIL_TTT_NOT_PASS,
+ DMF_ERRC_SRVCC_BSIC_DECODE_FAIL,
+ DMF_ERRC_NOT_IN_SRVCC_DURATION = 0xff,
+} dmf_errc_srvcc_fail_type_enum;
+
+typedef enum
+{
+ DMF_IR_HO,
+ DMF_IR_RESELECT,
+ DMF_IR_REDIRECT,
+ DMF_IR_CCO,
+ DMF_HANDOVER,
+ DMF_CELL_RESELECT,
+ DMF_CELL_REDIRECT,
+ DMF_CELL_UPDATE
+} dmf_info_collect_cell_update_event_enum;
+
+typedef enum
+{
+ DMF_RAT_NONE,
+ DMF_RAT_GSM,
+ DMF_RAT_UMTS,
+ DMF_RAT_LTE,
+ DMF_RAT_NR,
+ DMF_RAT_C2K
+} dmf_info_collect_rat_enum;
+
+typedef enum
+{
+ DMF_RAT_3GPP_NONE,
+ DMF_RAT_3GPP_GSM,
+ DMF_RAT_3GPP_WCDMA,
+ DMF_RAT_3GPP_TDSCDMA,
+ DMF_RAT_3GPP_LTE,
+ DMF_RAT_3GPP_NR
+} dmf_info_collect_3gpp_rat_enum;
+
+typedef enum {
+ DMF_NO_TAU_RAU_LAU = 0,
+ DMF_LTE_TAU_REQUEST,
+ DMF_LTE_TAU_ACCEPT,
+ DMF_LTE_TAU_REJECT,
+ DMF_UMTS_RAU_REQUEST,
+ DMF_UMTS_RAU_ACCEPT,
+ DMF_UMTS_RAU_REJECT,
+ DMF_UMTS_LAU_REQUEST,
+ DMF_UMTS_LAU_ACCEPT,
+ DMF_UMTS_LAU_REJECT,
+ DMF_GSM_RAU_REQUEST,
+ DMF_GSM_RAU_ACCEPT,
+ DMF_GSM_RAU_REJECT,
+ DMF_GSM_LAU_REQUEST,
+ DMF_GSM_LAU_ACCEPT,
+ DMF_GSM_LAU_REJECT,
+} dmf_tau_rau_lau_event_enum;
+
+typedef struct{
+ kal_char plmn_id[7];
+ kal_uint16 lac;
+ kal_uint8 rac;
+ kal_uint32 tac;
+ kal_uint64 cell_id;
+ kal_uint16 specific_cell_id; //2G: BSIC, 3G: PSC, 4G:PCI dmf_info_collect_rat_enum active_rat;
+ dmf_info_collect_rat_enum active_rat;
+ dmf_info_collect_3gpp_rat_enum active_rat_3gpp;
+ kal_uint16 band;
+ kal_uint32 frequency;
+ kal_int16 sig1;
+ kal_int16 sig2;
+ kal_int16 rs_snr_in_qdb;
+ kal_uint32 dl_bandwidth;
+ kal_bool is_sib2_endc_support;
+ kal_bool is_endc_scg_connected;
+} dmf_info_collect_current_serving_cell_info_struct;
+
+typedef struct {
+
+ kal_bool is_data_sim;
+ dmf_info_collect_paging_reason_enum paging_reason;
+} dmf_event_paging_info_struct;
+
+typedef struct {
+ kal_uint32 volte_rb_idx;
+ kal_uint32 ims_disc_tmr_rpt;
+ kal_uint32 ims_ul_disc_cnt_rpt;
+ kal_uint32 ims_dl_disc_cnt_rpt;
+} dmf_event_volte_pdcp_info_struct;
+
+typedef struct
+{
+ kal_uint8 ra_preamble_last_TXpower;
+ dmf_info_collect_rat_enum ra_fail_rat;
+} dmf_event_em_emac_rach_finish_struct;
+
+typedef struct {
+ em_lte_rrc_state_enum errc_state;
+ em_lte_rrc_cause_enum errc_cause;
+} dmf_event_errc_state_struct;
+
+typedef struct {
+ EARFCN pcell_earfcn;
+ kal_uint16 pcell_band;
+ kal_uint16 pcell_pci;
+ kal_uint8 pcell_bw;
+ kal_uint8 unused[3];
+
+ kal_bool is_scell_configured[EM_SCELL_MAX_NUM];
+ EARFCN scell_earfcn[EM_SCELL_MAX_NUM];
+ kal_uint16 scell_band[EM_SCELL_MAX_NUM];
+ kal_uint16 scell_pci[EM_SCELL_MAX_NUM];
+ kal_uint8 scell_bw[EM_SCELL_MAX_NUM];
+ kal_bool scell_belongs_to_stag[EM_SCELL_MAX_NUM];
+} dmf_event_errc_conn_info_struct;
+
+typedef struct {
+ em_errc_state_enum errc_sts;
+} dmf_event_errc_state_info_struct;
+
+typedef struct {
+ kal_bool is_attach;
+ dmf_emm_attach_tau_type_enum attach_tau_type;
+ emm_cause_enum emm_cause;
+} dmf_event_emm_reject_info_struct;
+
+typedef struct {
+
+ dmf_esm_ota_event_enum esm_ota_event;
+ dmf_esm_app_type_enum app_type;
+} dmf_event_esm_ota_struct;
+
+typedef struct {
+
+ dmf_esm_timer_enum timer_id;
+ dmf_esm_app_type_enum app_type;
+} dmf_event_esm_timer_expiry_struct;
+
+
+typedef struct {
+
+ kal_uint8 nsapi;
+ kal_bool is_ms_initial;
+ dmf_sm_pdp_event_enum pdp_request_event;
+ kal_bool is_ims_signaling_pdp;
+ kal_bool is_t3380_retry;
+} dmf_event_sm_pdp_request_struct;
+
+typedef struct {
+
+ em_c2k_call_type_enum type;
+ em_1xrtt_call_fail_reason_enum reason;
+ kal_char mcc[4];
+ kal_char imsi_11_12[4];
+ kal_uint16 sid;
+ kal_uint16 nid;
+ kal_uint16 bid;
+ kal_uint16 channel; /* It defines channel number. */
+ kal_uint16 band_class; /* It defines band class. */
+ kal_uint16 pilot_pn_offset; /* It defines pilot PN offset. */
+ kal_int8 rx_power; /* It defines rx power. */
+ kal_int8 pilot_ecio; /* Pilot Ec/Io. */
+} dmf_event_c2k_call_fail_reason_struct;
+
+typedef struct {
+
+ kal_bool is_mo_csfb_call;
+ dmf_csfb_call_state_enum csfb_status;
+ kal_uint8 mm_state;
+ kal_uint8 mm_cause;
+} dmf_event_mm_csfb_call_status_struct;
+
+typedef struct {
+
+ kal_bool is_mo_cs_call;
+ dmf_mm_cs_call_status_enum cs_status;
+ kal_uint8 mm_state;
+ kal_uint8 mm_cause;
+} dmf_event_mm_cs_call_status_struct;
+
+typedef struct
+{
+ kal_bool is_mo_csfb_call;
+ dmf_csfb_call_state_enum csfb_state;
+ em_emm_cause_enum ext_service_reject_cause;
+} dmf_event_emm_csfb_call_status_struct;
+
+typedef struct
+{
+ kal_bool is_mo_call;
+ kal_uint8 call_id;
+ em_vdm_call_state_enum call_state;
+ ims_disc_cause_enum disc_cause;
+} dmf_event_vdm_call_status_struct;
+
+typedef struct
+{
+ em_mcf_trigger_type_enum trigger_type;
+ l4c_mcf_config_type_enum config_type;
+ kal_uint32 result;
+ kal_uint32 start_time;
+ kal_uint32 end_time;
+ l4c_mcf_path_type_enum path_type;
+ kal_char file_name[DMF_INFO_COLLECT_MAX_MCF_FILE_NAME];
+} dmf_event_mcf_info_struct;
+
+typedef struct
+{
+ em_l4bsbp_trigger_type_enum trigger_type;
+ em_l4bsbp_mode_type_enum mode;
+ em_l4bsbp_result_type_enum result;
+ kal_uint32 sbp_id;
+ kal_uint32 sim_sbp_id;
+ kal_uint32 start_time_tick;
+ kal_uint32 end_time_tick;
+} dmf_event_sbp_dsbp_info_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ em_info_enum em_info;
+
+ kal_uint32 error_cause_is_valid;
+ kal_uint32 error_cause;
+} dmf_event_ims_pdn_fail_cause_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ em_info_enum em_info;
+
+ kal_uint32 error_apn_is_valid;
+ kal_uint8 error_apn[100];
+
+}dmf_event_ims_pdn_fail_apn_struct;
+
+typedef struct
+{
+ kal_bool is_mo_call;
+ kal_uint8 call_id;
+ kal_uint8 call_state;
+ kal_bool is_cc_disc_cause_valid;
+ kal_uint16 cc_disc_cause;
+} dmf_event_cc_call_info_struct;
+
+typedef enum
+{
+ DMF_SIP_EVENT_ID_BEGIN = 0,
+ DMF_SIP_MO_CALL_ATTEMPT = 1, /* 1 */
+ DMF_SIP_MO_CALL_SET_UP = 2,
+ DMF_SIP_MO_CALL_ESTABLISHED = 3,
+ DMF_SIP_MO_CALL_END = 4,
+ DMF_SIP_MO_CALL_DROPED = 5,
+ DMF_SIP_MO_CALL_FAILED = 6,
+ DMF_SIP_MO_CALL_EARLY_REL = 7,
+
+ DMF_SIP_MT_CALL_ATTEMPT = 51, /* 51 */
+ DMF_SIP_MT_CALL_SET_UP = 52,
+ DMF_SIP_MT_CALL_ESTABLISHED = 53,
+ DMF_SIP_MT_CALL_END = 54,
+ DMF_SIP_MT_CALL_DROPED = 55,
+ DMF_SIP_MT_CALL_FAILED = 56,
+ DMF_SIP_MT_CALL_EARLY_REL = 57,
+ DMF_SIP_MT_IMS_SMS_FAIL = 201,
+ DMF_SIP_INITIAL_REG_REQ = 501,
+ DMF_SIP_INITIAL_REG_401_RCV = 502,
+ DMF_SIP_INITIAL_REG_WITH_IPSEC = 503,
+ DMF_SIP_INITIAL_REG_SUCC = 504,
+ DMF_SIP_INITIAL_REG_FAIL = 505,
+ DMF_SIP_ID_MAX
+} dmf_kpi_ims_event_id_enum;
+
+typedef enum
+{
+ DMF_IMS_SIP_MSG_TYPE_REQUEST = 0x00,
+ DMF_IMS_SIP_MSG_TYPE_RESPONSE = 0x01,
+ DMF_IMS_SIP_MSG_TYPE_MAX,
+} dmf_ims_sip_msg_type_enum;
+
+typedef enum
+{
+ DMF_METHOD_SIP_REGISTER,
+ DMF_METHOD_SIP_INVITE,
+ DMF_METHOD_SIP_REFER,
+ DMF_METHOD_SIP_UPDATE,
+ DMF_METHOD_SIP_CANCEL,
+ DMF_METHOD_SIP_MESSAGE,
+ DMF_METHOD_SIP_ACK,
+ DMF_METHOD_SIP_BYE,
+ DMF_METHOD_SIP_OPTIONS,
+ DMF_METHOD_SIP_SUBSCRIBE,
+ DMF_METHOD_SIP_NOTIFY,
+ DMF_METHOD_SIP_PUBLISH,
+ DMF_METHOD_SIP_INFO,
+ DMF_METHOD_SIP_PRACK,
+ DMF_METHOD_HTTP_GET,
+ DMF_METHOD_HTTP_POST,
+ DMF_METHOD_HTTP_TRACE,
+ DMF_METHOD_HTTP_HEAD,
+ DMF_METHOD_HTTP_PUT,
+ DMF_METHOD_HTTP_DELETE,
+ DMF_METHOD_HTTP_CONNECT,
+ DMF_METHOD_RTSP_OPTIONS,
+ DMF_METHOD_RTSP_REDIRECT,
+ DMF_METHOD_RTSP_DESCRIBE,
+ DMF_METHOD_RTSP_SETUP,
+ DMF_METHOD_RTSP_PLAY,
+ DMF_METHOD_RTSP_PAUSE,
+ DMF_METHOD_RTSP_TEARDOWN,
+ DMF_METHOD_RTSP_SET_PARAMETER,
+ DMF_METHOD_PXY_DEBUG,
+ DMF_METHOD_UNRECOGNIZED,
+ DMF_METHOD_NUM,
+} dmf_sip_method_enum;
+
+typedef enum
+{
+ DMF_SIP_FAIL_CAUSE_NOT_USERTRIGGERED = 0x01,
+ DMF_SIP_FAIL_CAUSE_NOT_ALERTED = 0x04,
+} dmf_ims_sip_fail_cause_enum;
+
+typedef enum
+{
+ DMF_KPI_URC_SWITCH_OFF = 0,
+ DMF_KPI_URC_SWITCH_ON, /* 1*/
+ DMF_KPI_URC_SWITCH_STATUS_QUERY,
+ DMF_KPI_NETWORK_KPI_QUERY
+} dmf_kpi_urc_query_enum;
+
+typedef enum
+{
+ DMF_GROUP_ID_BEGIN = 0,
+ DMF_GROUP_ID_CMCC_NETWORK_KPI, /* 1 */
+ DMF_GROUP_ID_CMCC_NR_NETWORK_KPI,
+ DMF_GROUP_ID_MAX
+} dmf_group_id_enum;
+
+
+ typedef enum
+ {
+ //define kpi for cmcc network group
+ DMF_KPI_CAUSE_BEGIN = 0,
+ DMF_KPI_LTE_ATTACH_SUCC_RATE = 0x00000001, /* 1 */
+ DMF_KPI_DEFAULT_EPS_BEARER_ESTABLISH_SUCC_RATE = 0x00000002,
+ DMF_KPI_ESRVCC_SUCC_RATE = 0x00000004,
+ DMF_KPI_IMS_REGISTRATION_SUCC_RATE = 0x00000008,
+ DMF_KPI_VOLTE_CALL_DROP = 0x00000010,
+ DMF_KPI_MO_VOLTE_CALL_SUCC_RATE = 0x00000020,
+ DMF_KPI_MT_VOLTE_CALL_SUCC_RATE = 0x00000040,
+ DMF_KPI_TAU_SUCC_RATE = 0x00000080,
+ DMF_KPI_MO_CSFB_SUCC_RATE = 0x00000100,
+ DMF_KPI_MT_CSFB_SUCC_RATE = 0x00000200,
+ DMF_KPI_MO_SMS_OVER_SGS_SUCC_RATE = 0x00000400,
+ DMF_KPI_MT_SMS_OVER_SGS_SUCC_RATE = 0x00000800,
+ DMF_KPI_MO_SMS_OVER_IMS_SUCC_RATE = 0x00001000,
+ DMF_KPI_MT_SMS_OVER_IMS_SUCC_RATE = 0x00002000,
+ DMF_KPI_CAUSE_MAX
+ } dmf_nw_kpi_enum;
+
+typedef enum
+{
+ //define kpi for cmcc nr network group
+ DMF_NR_NW_KPI_BEGIN = 0,
+ DMF_KPI_ADD_SCG_SUCC_RATE = 0x00000001, /* 1 */
+ DMF_NR_NW_KPI_MAX
+ } dmf_nr_nw_kpi_enum;
+
+
+typedef enum
+{
+ DMF_CMCC_EPS_ATTACH_NONE,
+ DMF_CMCC_EPS_ATTACH_REQUEST,
+ DMF_CMCC_EPS_ATTACH_SUCCESS,
+ DMF_CMCC_EPS_ATTACH_FAIL,
+} dmf_cmcc_eps_attach_event_enum;
+
+typedef enum
+{
+ DMF_CMCC_ACT_DEFAULT_EPS_BEARER_NONE,
+ DMF_CMCC_ACT_DEFAULT_EPS_BEARER_REQUEST_RECEIVED,
+ DMF_CMCC_ACT_DEFAULT_EPS_BEARER_ACCEPT_SENT,
+ DMF_CMCC_ACT_DEFAULT_EPS_BEARER_REJECT_SENT,
+} dmf_cmcc_esm_eps_bearer_event_enum;
+typedef enum
+{
+ DMF_CMCC_SRVCC_NONE,
+ DMF_CMCC_SRVCC_HO_REQ_RECEIVED,
+ DMF_CMCC_SRVCC_HO_COMPLETE_SENT,
+ DMF_CMCC_SRVCC_HO_FAIL_SENT,
+} dmf_cmcc_srvcc_event_enum;
+typedef enum
+{
+ DMF_CMCC_TAU_NONE,
+ DMF_CMCC_TAU_REQUEST_SENT,
+ DMF_CMCC_TAU_ACCEPT_RECEIVED,
+ DMF_CMCC_TAU_REJECT_RECEIVED,
+} dmf_cmcc_tau_event_enum;
+typedef enum
+{
+ DMF_CMCC_CSFB_CALL_NONE,
+ DMF_CMCC_MO_CSFB_EXT_SR_REQ_SENT,
+ DMF_CMCC_MO_CSFB_SUCCESS,
+ DMF_CMCC_MO_CSFB_FAIL,
+ DMF_CMCC_MT_CSFB_CS_SERVICE_NOTIFICATION,
+ DMF_CMCC_MT_CSFB_CS_PAGING,
+ DMF_CMCC_MT_CSFB_SUCCESS,
+ DMF_CMCC_MT_CSFB_FAIL,
+}dmf_cmcc_csfb_call_event_enum ;
+
+typedef enum
+{
+ DMF_CSFB_RESULT_NULL,
+ DMF_CSFB_RESULT_FAIL,
+ DMF_CSFB_RESULT_SUCCESS,
+}dmf_csfb_result_enum ;
+
+
+typedef enum
+{
+ DMF_CMCC_SMS_NONE,
+ DMF_CMCC_SMS_OVER_SGS_MO_SMS_START,
+ DMF_CMCC_SMS_OVER_SGS_MO_SMS_SUCCESS,
+ DMF_CMCC_SMS_OVER_SGS_MO_SMS_FAIL,
+ DMF_CMCC_SMS_OVER_SGS_MT_SMS_START,
+ DMF_CMCC_SMS_OVER_SGS_MT_SMS_SUCCESS,
+ DMF_CMCC_SMS_OVER_SGS_MT_SMS_FAIL,
+ DMF_CMCC_SMS_OVER_IMS_MO_SMS_START,
+ DMF_CMCC_SMS_OVER_IMS_MO_SMS_SUCCESS,
+ DMF_CMCC_SMS_OVER_IMS_MO_SMS_FAIL,
+ DMF_CMCC_SMS_OVER_IMS_MT_SMS_START,
+ DMF_CMCC_SMS_OVER_IMS_MT_SMS_SUCCESS,
+ DMF_CMCC_SMS_OVER_IMS_MT_SMS_FAIL,
+}dmf_cmcc_sms_event_enum ;
+
+typedef enum
+{
+ DMF_CMCC_ADD_SCG_NONE,
+ DMF_CMCC_ADD_SCG_BEGIN,
+ DMF_CMCC_ADD_SCG_SUCCESS,
+ DMF_CMCC_ADD_SCG_FAIL,
+}dmf_cmcc_add_scg_event_enum ;
+
+
+typedef struct
+{
+ dmf_cmcc_tau_event_enum tau_event;
+ kal_uint32 tau_reject_cause;
+} dmf_event_cmcc_tau_struct;
+
+typedef struct
+{
+ dmf_cmcc_csfb_call_event_enum call_event;
+ kal_uint16 fail_cause;
+} dmf_event_cmcc_csfb_call_info_struct;
+typedef struct
+{
+ dmf_cmcc_sms_event_enum sms_event;
+ kal_uint32 fail_cause;
+} dmf_event_cmcc_sms_info_struct;
+
+typedef enum {
+ DMF_ANTENNA_LOWER = 0,
+ DMF_ANTENNA_UPPER = 1,
+} dmf_ant_status_enum;
+
+typedef struct
+{
+ //em_esm_status_struct esm_status;
+ //em_esm_pt_struct esm_pt[ESM_MAX_PT_NUM];
+ //em_esm_epsbc_struct esm_epsbc[ESM_MAX_EPSB_NUM];
+ //em_esm_conn_status_struct esm_conn;
+
+#if defined(__VOLTE_SUPPORT__)
+ //em_esm_ims_status_struct esm_ims;
+#endif
+
+ // Vzw MDMI: Report events
+ kal_uint8 reported_pt_index;
+ kal_uint8 reported_epsbc_index;
+
+} dmf_event_esm_esm_info_struct;
+
+typedef struct {
+ kal_uint32 physical_cell_id:10; // range[0, 1007]
+ kal_uint32 dl_frequency_band:7; // range[1, 89]
+ kal_uint32 bwp_size:9; // range[0, 275]
+ kal_uint32 sub_carrier_spacing:3; // {0, 1, 2, 3, 4} indicates SCS={15, 30, 60, 120, 240} khz
+} dmf_event_nl1_physical_configuration_struct;
+
+typedef struct {
+ kal_uint32 resource_id:8; // range[0, 191]
+ kal_int16 rsrp;
+ kal_int8 rsrq;
+ kal_int8 sinr;
+} dmf_event_nl1_serving_cell_csirs_measurement_struct;
+
+typedef struct
+{
+ dmf_cmcc_eps_attach_event_enum attach_event;
+ kal_uint32 attach_reject_cause;
+} dmf_event_cmcc_eps_attach_struct;
+
+typedef struct
+{
+ dmf_cmcc_esm_eps_bearer_event_enum esm_eps_bearer_event;
+ kal_uint8 ebi;
+ kal_uint32 reject_cause;
+} dmf_event_cmcc_eps_bearer_struct;
+
+typedef struct
+{
+ em_errc_success_rate_kpi_proc_enum proc_id;
+ em_kpi_status_enum status;
+ kal_bool srvcc_ho_flag;
+} dmf_event_cmcc_esrvcc_struct;
+
+typedef struct
+{
+ em_ho_from_lte_type_enum ir_ho_type;
+ kal_bool srvcc_ho_flag;
+} dmf_event_cmcc_errc_mfrom_struct;
+
+
+typedef struct
+{
+ kal_uint32 srvcc_fail_cause;
+} dmf_event_cmcc_errc_srvcc_fail_struct;
+
+
+typedef struct
+{
+ kal_uint8 sip_msg_type;
+ kal_uint8 call_id;
+ kal_uint16 sip_method;
+ kal_uint32 sip_resp_code;
+ kal_uint32 event_id;
+ kal_uint32 fail_cause;
+}dmf_event_cmcc_imc_ims_struct;
+
+typedef struct
+{
+
+ kal_uint32 tracking_area_code; // Track area code
+ kal_uint16 freq_band_indicator; // Frequency band indicator
+ kal_uint32 dl_frequency; // Downlink Frequency
+ kal_uint8 serv_rsrp; // RSRP of serving cell over last measurement period
+ kal_uint8 serv_rsrq; // RSRQ of serving cell over last measurement period
+ kal_uint16 mcc; // MCC part of PLMN
+ kal_uint16 mnc; // MNC part of PLMN
+ kal_uint8 num_of_mnc_digits; // Number of digits in MNC (e.g.2/3)
+ kal_uint32 cause;
+} dmf_event_scg_failure_event_struct;
+
+typedef struct
+{
+ kal_uint32 tracking_area_code; // Track area code
+ kal_uint16 freq_band_indicator; // Frequency band indicator
+ kal_uint32 dl_frequency; // Downlink Frequency
+ kal_uint8 serv_rsrp; // RSRP of serving cell over last measurement period
+ kal_uint8 serv_rsrq; // RSRQ of serving cell over last measurement period
+ kal_uint16 mcc; // MCC part of PLMN
+ kal_uint16 mnc; // MNC part of PLMN
+ kal_uint8 num_of_mnc_digits; // Number of digits in MNC (e.g.2/3)
+ kal_uint32 cause;
+} dmf_event_radio_link_failure_event_struct;
+
+typedef struct
+{
+ kal_uint32 tracking_area_code; // Track area code
+ kal_uint16 freq_band_indicator; // Frequency band indicator
+ kal_uint32 dl_frequency; // Downlink Frequency
+ kal_uint8 serv_rsrp; // RSRP of serving cell over last measurement period
+ kal_uint8 serv_rsrq; // RSRQ of serving cell over last measurement period
+ kal_uint16 mcc; // MCC part of PLMN
+ kal_uint16 mnc; // MNC part of PLMN
+ kal_uint8 num_of_mnc_digits; // Number of digits in MNC (e.g.2/3)
+ kal_uint8 lte_num_of_scells;
+ kal_uint32 lte_pcc_earfcn;
+ kal_uint32 lte_scc_earfcn[ERRC_SCELL_NUM_MAX];
+ kal_uint8 nr_number_of_scell;
+ kal_uint16 nr_spcell_dl_frequency_band;
+ kal_uint16 nr_scell_dl_frequency_band[NL1_SCELL_CONFIG_LIST_SIZE];
+}dmf_event_other_5g_kpi_event_struct;
+
+typedef enum
+{
+ DMF_NL2_PDCP_THROUGHPUT_DL,
+ DMF_NL2_PDCP_THROUGHPUT_UL,
+ DMF_EL2_PDCP_THROUGHPUT_DL,
+ DMF_EL2_PDCP_THROUGHPUT_UL
+}dmf_pdcp_throughput_direction_enum;
+
+typedef struct {
+ dmf_pdcp_throughput_direction_enum type;
+ kal_uint32 version; // Log record structure ID
+ kal_uint32 pdcp_throughput; // DL/UL throughput measured on the PDCP layer(bps)
+} dmf_event_pdcp_throughput_struct;
+
+typedef enum {
+ DMF_CALL_EVENT_INACTIVE = 0, // call id not active
+ DMF_CALL_EVENT_MO_DIAL_NORMAL_CALL,
+ DMF_CALL_EVENT_MO_DIAL_EMERGENCY_CALL,
+ DMF_CALL_EVENT_MO_UPDATE_TO_EMERGENCY, // ATD then VDM judge it as emergency call
+ DMF_CALL_EVENT_MT_CALL_SETUP,
+ DMF_CALL_EVENT_CALL_SUCCESS,
+ DMF_CALL_EVENT_CALL_EST_FAIL,
+ DMF_CALL_EVENT_CALL_END, // Call ended with previous est success
+} dmf_call_event_enum;
+
+typedef struct
+{
+ kal_uint8 call_id;
+ dmf_call_event_enum dmf_call_event;
+} dmf_event_call_status_struct;
+
+typedef struct
+{
+ kal_uint8 ho_result;
+} dmf_event_errc_ho_fail_struct;
+
+typedef struct
+{
+ dmf_info_collect_rat_enum ra_fail_rat;
+} dmf_event_ra_fail_occur_struct;
+
+typedef struct
+{
+ kal_uint8 bar_cause;
+ kal_uint32 bar_time;
+ kal_uint32 ext_wait_time;
+ kal_uint8 est_type;
+ kal_uint8 ac_bar_type;
+} dmf_event_errc_bar_info_struct;
+
+typedef struct
+{
+ kal_uint8 timer_type;
+ kal_uint32 timer_length;
+} dmf_event_errc_reest_fail_timer_info_struct;
+
+typedef struct
+{
+ kal_uint16 pci;
+ kal_uint32 rsrp;
+ kal_uint32 rsrq;
+}dmf_event_errc_cell_info_struct;
+
+typedef struct
+{
+ kal_uint32 serving_cell_freq;
+ dmf_event_errc_cell_info_struct serving_cell;
+ kal_uint8 neighbor_cell_num;
+ dmf_event_errc_cell_info_struct neighbor_cell[3];
+} dmf_event_errc_interference_mod3_info_struct;
+
+typedef enum
+{
+ DMF_MM_AUTH_REJ,
+ DMF_GMM_AUTH_REJ,
+ DMF_EMM_AUTH_REJ
+} dmf_mm_emm_auth_type_enum;
+
+typedef struct
+{
+ dmf_mm_emm_auth_type_enum type;
+} dmf_event_mm_emm_auth_rej_info_struct;
+
+typedef struct
+{
+ kal_uint32 cid;
+ kal_uint16 err_cause;
+} dmf_event_ddm_ia_fail_info_struct;
+
+typedef struct
+{
+ kal_uint32 cid;
+ kal_uint16 err_cause;
+} dmf_event_ddm_deact_fail_info_struct;
+
+typedef struct
+{
+ kal_uint32 cid;
+ kal_uint16 err_cause;
+} dmf_event_ddm_act_fail_info_struct;
+
+typedef struct
+{
+ errc_mob_em_bw_monitoring_info_struct conn_info;
+ errc_mob_em_bw_monitoring_info_struct idle_info;
+} dmf_event_errc_bw_monitoring_info_struct;
+
+typedef struct
+{
+ sim_monitor_type event_type;
+ kal_uint32 count;
+} dmf_event_sim_monitor_info_struct;
+
+typedef struct {
+ tdd_em_rrc_conn_status_enum rrc_conn_status;
+ kal_uint8 est_cause;
+ tdd_em_rrc_cause_enum rrc_cause;
+} dmf_event_tdd_rrce_conn_status_struct;
+
+typedef struct {
+ kal_bool is_emm;
+ kal_uint16 event;
+ kal_uint16 reject_type;
+ kal_uint16 original_mm_emm_cause; // (based on is_emm) em_mm_cause_enum or em_emm_cause_enum
+ kal_uint16 converted_mm_emm_cause; // (based on is_emm) em_mm_cause_enum or em_emm_cause_enum
+ kal_bool is_ps_sim_valid;
+ kal_bool is_cs_sim_valid;
+ kal_uint8 reject_domain;
+}dmf_event_mm_emm_cause_info_struct;
+
+typedef struct
+{
+ kal_int16 rsrp;
+ kal_int16 rsrq;
+ kal_int16 sinr;
+ kal_int32 jitter;
+ kal_uint8 tx_drop_rate;
+ kal_uint8 rx_drop_rate;
+} dmf_event_volte_quality_info_struct;
+
+typedef struct
+{
+ MobEmMeasQty meas_quantity;
+ kal_int16 threshold;
+ kal_uint8 hysteresis;
+ kal_uint16 time_to_trigger;
+} dmf_a2_config_struct;
+
+typedef struct
+{
+ dmf_a2_config_struct a2_config[ERRC_EM_MAX_A2_ONLY_MEAS_CONFIG_REPORT_NUM];
+} dmf_event_errc_a2_config_event_struct;
+
+typedef struct
+{
+ MobEmMeasQty meas_quantity;
+ kal_int16 threshold;
+ MobEmMeasQty other_rat_meas_quantity;
+ kal_int16 other_rat_threshold;
+ kal_uint8 hysteresis;
+ kal_uint16 time_to_trigger;
+} dmf_b2_config_struct;
+
+typedef struct
+{
+ dmf_b2_config_struct b2_config[ERRC_EM_MAX_B2_ONLY_MEAS_CONFIG_REPORT_NUM];
+} dmf_event_errc_b2_config_event_struct;
+
+typedef struct
+{
+ em_gmss_hvolte_mode_enum hvolte_mode;
+ em_gmss_hvolte_mode_chg_cause_enum hvolte_mode_change_cause;
+ kal_bool is_silent_redial_start;
+ kal_bool is_after_silent_redial_return_lte_fail;
+} dmf_event_gmss_hvolte_info_struct;
+
+typedef struct {
+ kal_uint8 is_nr_cell_measured; // 0: No NR cell measured
+ // 1: NR cell measured
+} dmf_event_errc_ir_nr_meas_result_info_struct;
+
+typedef struct {
+ kal_uint32 ul_grant_valid:1; // 0: Not valid
+ // 1: Valid
+ kal_uint32 dci_format:1; // 0: 0_0
+ // 1: 0_1
+ kal_uint32 resource_allocation_type:1; // Resource allocation type in freq domain.
+ // 0: type 0, 1: type 1
+ kal_uint32 start_rb:9; // If resource allocation type is 0: RBGbmp LSBs;
+ // If resource allocation type is 1:
+ // The Start of RB for the assigned PUSCH.
+ // range[0, 274]
+ kal_uint32 num_rb:9; // If resource allocation type is 0: RBGbmp MSBs;
+ // If resource allocation type is 1:
+ // The length of RB for the assigned PUSCH.
+ // range[0, 275]
+ kal_uint32 slot_offset_k2:6; // Slot offset for DCI and the corresponding PUSCH.
+ // range[0, 32]
+ kal_uint32 sliv_start:4; // The start symbol index of the corresponding
+ // PUSCH. range[0, 13]
+ kal_uint32 reserved:1;
+ kal_uint32 sliv_length:4; // Symbol length of the corresponding PUSCH.
+ // range[1, 14]
+ kal_uint32 frequency_hopping_flag:1; // 0: no frequency hopping
+ // 1: frequency hopping
+ kal_uint32 modulation_type:3; // Modulation Order.
+ // 0: BPSK, 1: QPSK, 2: 16QAM, 3: 64QAM, 4: 256QAM
+ kal_uint32 mcs_index:5; // range[0, 31]
+ kal_uint32 ndi:1; // Indicate new transmission or re-transmission.
+ kal_uint32 rv:2; // Derive from MCS, range[0, 3]
+ kal_uint32 harq_id:4; // range[0, 15]
+ kal_uint32 pusch_tpc_command:2; // TPC command for scheduled PUSCH as defined in
+ // 7.1.1 of TS 38.213.
+ kal_uint32 ul_sul_indicator:1; // As defined in 7.3.1.1.1 of TS38.212.
+ // 0: The non-supplementary uplink
+ // 1: The supplementary uplink
+ kal_uint32 bandwidth_part_indicator:2; // Specific for DCI format 0_1.
+ kal_uint32 first_dai:2; // Specific for DCI format 0_1.
+ // As defined in 7.3.1.1.2 of TS38.212.
+ kal_uint32 second_dai:2; // Specific for DCI format 0_1.
+ // As defined in 7.3.1.1.2 of TS38.212.
+ kal_uint32 reserved_1:3;
+ kal_uint32 srs_resource_indicator:4; // range[0, 15]
+ kal_uint32 tpmi_indicator:3; // range[0, 5]
+ kal_uint32 number_of_layers:1; // 0: 1 layer, 1: 2 layers
+ kal_uint32 srs_request:3; // As defined in 7.3.1.1 of TS38.212.
+ kal_uint32 csi_request:6; // range[0, 63]
+ kal_uint32 ul_cbgti:8; // UL CBG transmission information bitmap.
+ // MSB correspondes to CBG#0.
+ kal_uint32 beta_offset_indicator:2; // range[0, 3]
+ kal_uint32 dmrs_sequence_initialization:1; // range[0, 1]
+ kal_uint32 reserved_2:4;
+} dmf_nl1_ul_dci_info_record_v1;
+
+typedef struct {
+ kal_uint32 dl_dci_valid:1; // 0: Not valid
+ // 1: Valid
+ kal_uint32 dci_format:1; // 0: 1_0
+ // 1: 1_1
+ kal_uint32 resource_allocation_type:1; // Resource allocation type in freq domain.
+ // 0: type 0, 1: type 1
+ kal_uint32 start_rb:9; // If resource allocation type is 0:
+ // RBGbmp LSBs;
+ // If resource allocation type is 1:
+ // The Start of RB of assigned PDSCH.
+ // range[0, 274]
+ kal_uint32 num_rb:9; // If resource allocation type is 0:
+ // RBGbmp MSBs;
+ // If resource allocation type is 1:
+ // The length of assigned PDSCH RB.
+ // range[0, 275]
+ kal_uint32 pdsch_mapping_type:1; // Time domain PDSCH mapping type.
+ // 0: type A, 1: type B
+ kal_uint32 slot_offset_k0:6; // Slot offset for DCI and the assigned PDSCH.
+ // range[0, 32]
+ kal_uint32 sliv_start:4; // The start symbol index of assigned PDSCH.
+ // range[0, 13]
+ kal_uint32 sliv_length:4; // Symbol length of the assigned PDSCH.
+ // range[1, 14]
+ kal_uint32 vrb_to_prb_mapping:1; // 0: Non-interleaved, 1: Interleaved
+ kal_uint32 ndi_1:1; // Indicate new transmission or re-transmission
+ // for TB1.
+ kal_uint32 rv_1:2; // Redundancy version for TB1. Derive from MCS.
+ // range[0, 3]
+ kal_uint32 mcs_type_1:2; // MCS type for TB1.
+ // 0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM
+ kal_uint32 ndi_2:1; // Indicate new transmission or re-transmission
+ // for TB2. Only valid for DCI format 1_1
+ // Only valid for DCI format 1_1 and when TB2
+ // is configured.
+ kal_uint32 rv_2:2; // Redundancy version for TB2. Derive from MCS.
+ // range[0, 3]
+ // Only valid for DCI format 1_1 and when TB2
+ // is configured.
+ kal_uint32 mcs_type_2:2; // MCS type for TB2.
+ // Only valid for DCI format 1_1 and when TB2
+ // is configured.
+ // 0: QPSK, 1: 16QAM, 2: 64QAM, 3: 256QAM
+ kal_uint32 harq_id:4; // range[0, 15]
+ kal_uint32 counter_dai:2; // As described in 9.1.3 of TS 38.213.
+ kal_uint32 total_dai:2; // Specific for DCI format 1_1.
+ kal_uint32 pucch_tpc_command:2; // As defined in 7.2.1 of TS 38.213.
+ kal_uint32 pdsch_harq_ack_codebook:1; // 0: Semistatic, 1: Dynamic
+ kal_uint32 pucch_resource_indicator:3; // As defined in 9.2.3 of TS 38.213.
+ // range[0, 7]
+ kal_uint32 pdsch_to_harq_feedback_timing_indicator:3; // As defined in 9.2.3 of TS 38.213.
+ // range[0, 7]
+ kal_uint32 bandwidth_part_indicator:2; // For acitve BWP change.
+ // Specific for DCI format 1_1.
+ kal_uint32 reserved:2;
+ kal_uint32 prb_bundling_size:3; // 0: bundle size n2, 1: bundle size n4,
+ // 2: wideband
+ kal_uint32 rate_matching_indicator:2; // Specific for DCI format 1_1.
+ kal_uint32 tci:3; // Transmission configuration indication for
+ // the TCI states as defined in 5.1.5 of
+ // TS 38.214.
+ // Specific for DCI format 1_1.
+ kal_uint32 srs_request:3; // As defined in 7.3.1.1 of TS 38.212.
+ // Specific for DCI format 1_1.
+ kal_uint32 cbgti:8; // CBG transmission information. As defined in
+ // 5.1.7 of TS 38.214.
+ // Specific for DCI format 1_1.
+ kal_uint32 cbgfi:1; // CBG flushing out information. As defined in
+ // 5.1.7 of TS 38.214.
+ // Specific for DCI format 1_1.
+ kal_uint32 num_ack_bit:2; // Received DL TB num. range[0, 2]
+ kal_uint32 dmrs_sequence_initialization:1; // Specific for DCI format 1_1.
+ kal_uint32 number_of_harq_process_for_pdsch:3; // 0: n2, 1: n4, 2: n6, 3: n8, 4: n10,
+ // 5: n12, 6: n16
+ kal_uint32 num_of_layers:2; // 0: 1 layer, 1: 2 layers, 2: 3 layers,
+ // 3: 4 layers
+ kal_uint32 mcs_index_1:5; // range[0, 31]
+ kal_uint32 mcs_index_2:5; // range[0, 31]
+ kal_uint32 reserved_1:22;
+} dmf_nl1_dl_dci_info_record_v2;
+
+typedef struct {
+ kal_uint32 sfn:10; // This is the SFN based on the occurrence
+ // of this record. range[0, 1023]
+ kal_uint32 subframe:4; // This is the SF based on the occurrence
+ // of this record. range[0, 9]
+ kal_uint32 slot_index:3; // Slot index within this SF. range[0, 7]
+ kal_uint32 reserved:15;
+ dmf_nl1_ul_dci_info_record_v1 ul_dci_info;
+ dmf_nl1_dl_dci_info_record_v2 dl_dci_info;
+} dmf_nl1_dci_info_record_v2;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 phys_cell_id:10; // range[0, 1007]
+ kal_uint32 carrier_index:3; // range[0, 7]
+ kal_uint32 number_of_records:5; // range[0, 20]
+ kal_uint32 reserved:6;
+ dmf_nl1_dci_info_record_v2 dci_info[FLEXIBLE_ARRAY_SIZE]; // N := Number of Records
+} dmf_event_nl1_dci_info_struct;
+
+typedef enum {
+ DMF_MM_NORMAL_LU = 0x00,
+ DMF_MM_PERIODIC_LU = 0x01,
+ DMF_MM_IMSI_ATTACH_LU = 0x02,
+ DMF_MM_NONE_ATTEMPTED
+} dmf_mm_update_type_enum;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ em_info_enum em_info;
+ kal_uint16 lu_attempt_num; //increase when LU is snet out
+ kal_uint16 lu_success_num; //increase when LU success
+ kal_uint16 lu_failure_num; //increase when LU failure
+ dmf_mm_update_type_enum lu_type;
+ em_mm_lr_status_enum lu_status;
+ em_lr_failure_cause_enum lu_failure_cause;
+}dmf_em_mm_lu_info_ind_struct;
+
+typedef struct
+{
+ kal_uint32 buffer_packet_num;
+ kal_uint32 buffer_avg_time;
+ kal_uint32 buffer_max_time;
+ kal_uint32 sent_packet_num;
+ kal_uint32 num_sdu_acked;
+ kal_uint32 num_sdu_disc_all_type;
+} dmf_event_lte_pdcp_status_struct;
+
+typedef struct
+{
+ kal_uint32 nack_num_by_nw;
+ kal_uint32 nack_num_by_ue;
+ kal_uint32 miss_num_by_ue;
+ kal_uint32 retx_num_by_ue;
+ kal_uint32 TxDataPdu;
+ kal_uint32 RxDataPdu;
+} dmf_event_el2_rlc_status_struct;
+
+typedef struct
+{
+ dmf_info_collect_rat_enum update_rat;
+ kal_bool stop_tx;
+} dmf_event_sig_info_struct;
+
+typedef struct
+{
+ dmf_info_collect_rat_enum rat;
+ kal_uint32 meas_duration_in_ms;
+} dmf_event_idle_meas_time_struct;
+
+typedef struct
+{
+ dmf_info_collect_rat_enum rat;
+ kal_uint8 drx_factor;
+ kal_uint32 drx_cnt;
+} dmf_event_drx_cnt_info_struct;
+
+typedef struct
+{
+ dmf_info_collect_rat_enum latest_oos_rat;
+} dmf_event_oos_user_unaware_recovery_info_struct;
+
+typedef struct
+{
+ em_3g_rrc_state_enum umts_rrc_state;
+} dmf_event_rrc_state_transition_struct;
+
+typedef struct
+{
+ kal_uint8 rr_state; /* NULL: 0, INACTIVE: 1, SELECTION: 2
+ * IDLE: 3, ACCESS: 4. PKT_TRANSFER: 5
+ * DEDICATED:6, RESELCTION: 7 */
+} dmf_event_rr_state_transition_struct;
+
+typedef struct
+{
+ dmf_info_collect_rat_enum rat;
+ em_kpi_status_enum status;
+ kal_uint16 proc_id;
+ dmf_info_collect_rat_enum target_rat;
+ kal_uint32 frequency;
+ kal_uint16 pci;
+} dmf_event_xas_kpi_info_struct;
+
+typedef struct
+{
+ em_errc_searching_state_enum state;
+} dmf_event_errc_search_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct
+{
+ dmf_info_collect_rat_enum latest_oos_rac_rat;
+} dmf_event_oos_delay_info_struct;
+
+typedef struct
+{
+ kal_char prev_plmn_id[7];
+ kal_char curr_plmn_id[7];
+} dmf_event_plmn_change_struct;
+
+typedef struct
+{
+ kal_bool is_new_rat;
+ dmf_info_collect_rat_enum rat;
+ kal_uint8 sig1; // sig1 for l4c (note for LTE this is rsrq, different from DMF interpretation)
+ kal_uint8 sig2;
+} dmf_event_l4c_sig_update_struct;
+
+typedef struct
+{
+ dmf_tau_rau_lau_event_enum event;
+ kal_bool is_combined_rau_lau;
+} dmf_event_tau_rau_lau_info_struct;
+
+typedef struct
+{
+ kal_uint8 esm_active_epsb_num;
+} dmf_event_esm_active_epsb_info_struct;
+
+typedef struct {
+ kal_uint32 version:8; // Log record structure ID
+ kal_uint32 sfn:10; // This is the SFN based on reporting time of this record.
+ // Range [0,1023].
+ kal_uint32 subframe:4; // This is the SF based on reporting time of this record.
+ // Range [0,9].
+ kal_uint32 serving_cell_index:3; // Indicates this metric is reporting on which serving cell
+ // (not scell index configured by RRC). range[0, 7],
+ // Values: 0:PCC, 1:SCC1, 2:SCC2, 3:SCC3, 4:SCC4, 5:SCC5, 6:SCC6, 7:SCC7
+ kal_uint32 reserved:7;
+ kal_int16 target_pwr; // range [-50, 23]
+ // Target power for the Uplink Tx record for within 100 ms
+ kal_int16 pd_pwr; // range [-50, 23]
+ // PD power for the Uplink Tx record for within 100 ms
+} dmf_event_el1_tx_pdpower_report_struct;
+
+typedef struct {
+ kal_uint8 version; // Log event structure ID
+ kal_uint8 call_status; // Indicates IMS call status
+ // 0:Inactive
+ // 1:Active
+ // 2:Attmpting
+ // 3:Hold
+ // 4:Ringing
+ kal_uint8 call_type; // Bitmask of IMS call type
+ // Bit0:Voice
+ // Bit1:Video
+ // Bit2:Text
+ // Bit3:Emergency
+ kal_uint8 rat_information; // Indicates Rat information
+ // 0:LTE
+ // 1:NR
+ // 2:Wifi
+ kal_uint8 call_direction; // Indicates Call direction
+ // 0:MO
+ // 1:MT
+ kal_uint8 call_change_state_cause; // Indicates Call change state cause
+ // 0:notAvailable
+ // 1:normalCallClearing
+ // 2:callFail
+ // 3:callDrop
+ kal_uint16 reserved;
+ kal_int8 sip_call_id[100]; // Indicates the Call-ID in SIP message.
+ kal_int8 reason_text[128]; // Indicates the text of SIP reason header.
+} dmf_ims_call_status_info_struct;
+
+typedef struct {
+ kal_int32 drx_ondurationtimer;
+ kal_int32 drx_inactivitytimer;
+ kal_int32 drx_longcycle;
+ kal_int32 drx_shortcycle;
+} dmf_errc_cdrx_info_struct;
+
+#endif // _DMF_PUBLIC_DEF_H_
diff --git a/mcu/interface/protocol/general/dmf_public_event.h b/mcu/interface/protocol/general/dmf_public_event.h
new file mode 100644
index 0000000..97869b1
--- /dev/null
+++ b/mcu/interface/protocol/general/dmf_public_event.h
@@ -0,0 +1,2446 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * dmf_public_event.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * DM Framework public event interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 09 24 2020 jack-mh.tsai
+ * [MOLY00547250] 5G SA®I?»Ý¨D
+ *
+ * 09 18 2020 jack-mh.tsai
+ * [MOLY00570074] [Cayman][TMUS][Protocol][EchoLocate] Request to implement DataMetrics5gSa class API version 1
+ *
+ * 09 14 2020 jack-mh.tsai
+ * [MOLY00570074] [Cayman][TMUS][Protocol][EchoLocate] Request to implement DataMetrics5gSa class API version 1
+ *
+ * 08 13 2020 titi.wu
+ * [MOLY00524839] 5G RF ®I?»Ý¨D
+ * EWSP0000141637
+ *
+ * 08 13 2020 titi.wu
+ * [MOLY00524839] 5G RF ®I?»Ý¨D
+ * EWSP0000141637
+ *
+ * 07 07 2020 jack-mh.tsai
+ * [MOLY00519978] °Æ¥dLTE?Ácpaging?±±®I?»Ý¨D(SWRD)
+ *
+ * 07 01 2020 jack-mh.tsai
+ * [MOLY00519978] °Æ¥dLTE?Ácpaging?±±®I?»Ý¨D(SWRD)
+ *
+ * 07 06 2020 titi.wu
+ * [MOLY00541505] ¡i5G-A¡j¡iModem·sfeature¡j5G±µ¤J±±¨î???¦ô®I?
+ * .
+ *
+ * 05 22 2020 jack-mh.tsai
+ * [MOLY00511933] 5G¥\¯Ó®I?¤W?Éó¨î
+ *
+ * 04 17 2020 kunkun.shao
+ * [MOLY00511342] Modem¶Ë´óÊý¾ÝÊÕ¼¯:DMF NW KPI SW DOMAIN
+ *
+ * 03 16 2020 jack-mh.tsai
+ * [MOLY00505503] [Gen97] OPPO DMF KPI requirement
+ *
+ * 01 18 2020 kunkun.shao
+ * [MOLY00475736] Modem¶Ë´óÊý¾ÝÊÕ¼¯:internal dmf
+ *
+ * 01 07 2020 jack-mh.tsai
+ * [MOLY00469943] DMF Customization Framework: DMF MISC16 1010(SWRD)
+ *
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _DMF_PUBLIC_EVENT_H_
+#define _DMF_PUBLIC_EVENT_H_
+
+#include "sim_exported_enum.h"
+
+
+typedef enum
+{
+ DMF_EVENT_NULL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_SRVCC_FAIL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when SRVCC Fail occurs
+ *
+ * Data Type
+ * dmf_errc_srvcc_fail_type_enum
+ *
+ * Data Size
+ * sizeof(dmf_errc_srvcc_fail_type_enum)
+ *
+ * Data Description
+ * ERRC SRVCC fail cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_ERRC_SRVCC_FAIL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_TIMER_EXPIRED
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC timer exipred
+ *
+ * Data Type
+ * em_errc_timer_enum
+ *
+ * Data Size
+ * sizeof(em_errc_timer_enum)
+ *
+ * Data Description
+ * ERRC Timer type
+ *
+ *****************************************************************************/
+ DMF_EVENT_ERRC_TIMER_EXPIRED,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_REEST
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC reestablishment occurs
+ *
+ * Data Type
+ * em_errc_reest_info_cause_enum
+ *
+ * Data Size
+ * sizeof(em_errc_reest_info_cause_enum)
+ *
+ * Data Description
+ * ERRC reestablishment cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_ERRC_REEST,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_STATE_TRANSITION
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC state transition occurs
+ *
+ * Data Type
+ * pointer to dmf_event_errc_state_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_errc_state_struct)
+ *
+ * Data Description
+ * ERRC state and cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_ERRC_STATE_TRANSITION,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MSG_ID_EM_MM_INFO_IND is received
+ *
+ * Data Type
+ * kal_uint8
+ *
+ * Data Size
+ * sizeof(kal_uint8)
+ *
+ * Data Description
+ * LU reject cause which is defined in the spec. 24.008
+ * MM INFO
+ *
+ *****************************************************************************/
+ DMF_EVENT_MM_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_LU_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MSG_ID_EM_MM_LU_INFO_IND is received
+ *
+ * Data Type
+ * em_lr_failure_cause_enum
+ *
+ * Data Size
+ * sizeof(em_lr_failure_cause_enum)
+ *
+ * Data Description
+ * LU Failure cause
+ * MM LU INFO
+ *
+ *****************************************************************************/
+ DMF_EVENT_MM_LU_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EMM_ATTACU_TAU_REJECT_OCCURS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EMM ATTACH/TAU reject occurs
+ *
+ * Data Type
+ * point to dmf_event_emm_reject_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_emm_reject_info_struct)
+ *
+ * Data Description
+ * ATTACH/TAU type, EMM cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_EMM_ATTACU_TAU_REJECT_OCCURS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EMM_AUTH_REJECT_OCCURS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EMM authentication is rejected
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_EMM_AUTH_REJECT_OCCURS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ESM_TIMER_EXPIRY
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ESM Timer is exipred
+ *
+ * Data Type
+ * pointer to dmf_event_esm_timer_expiry_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_esm_timer_expiry_struct)
+ *
+ * Data Description
+ * Expired Timer and application type
+ *
+ *****************************************************************************/
+ DMF_EVENT_ESM_TIMER_EXPIRY,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ESM_OTA_EVENT
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ESM OTA message is sent/received
+ *
+ * Data Type
+ * pointer to dmf_event_esm_ota_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_esm_ota_struct)
+ *
+ * Data Description
+ * OTA event and application type
+ *
+ *****************************************************************************/
+ DMF_EVENT_ESM_OTA_EVENT,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_SM_OTA_PDP
+ *
+ * DESCRIPTION
+ * This event is broadcasted when SM PDP CONTEXT REQUEST related OTA message is sent/received.
+ *
+ * Data Type
+ * pointer to dmf_event_sm_pdp_request_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_sm_pdp_request_struct)
+ *
+ * Data Description
+ * NSAPI/PDP OTA event/IMS or NON-IMS PDP
+ *
+ *****************************************************************************/
+ DMF_EVENT_SM_OTA_PDP,
+
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EMM_OTA_ATTACH
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EMM ATTACH related OTA message is sent/received.
+ *
+ * Data Type
+ * dmf_emm_attach_event_enum
+ *
+ * Data Size
+ * sizeof(dmf_emm_attach_event_enum)
+ *
+ * Data Description
+ * ATTACH request/accept/reject/t3340 expiry
+ *
+ *****************************************************************************/
+ DMF_EVENT_EMM_OTA_ATTACH,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_C2K_CALL_FAIL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when detecting C2K Call fail occurs
+ *
+ * Data Type
+ * pointer to dmf_event_c2k_call_fail_reason_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_c2k_call_fail_reason_struct)
+ *
+ * Data Description
+ * Provide c2k call fail reason(em_1xrtt_call_fail_reason_enum)
+ * and c2k call fail type(em_c2k_call_type_enum)
+ *
+ *****************************************************************************/
+ DMF_EVENT_C2K_CALL_FAIL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_CSFB_STATUS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MM CSFB STATUS is reported
+ *
+ * Data Type
+ * em_csfb_status_enum
+ *
+ * Data Size
+ * sizeof(em_csfb_status_enum)
+ *
+ * Data Description
+ * CSFB Status
+ *
+ *****************************************************************************/
+ DMF_EVENT_MM_CSFB_STATUS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_CSFB_CALL_STATUS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MM CSFB CALL STATUS is reported by MM for MO/MT Call
+ *
+ * Data Type
+ * pointer to dmf_event_mm_csfb_call_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_csfb_call_status_struct)
+ *
+ * Data Description
+ * Provide mm_state/mm_casue /csfb_status
+ *
+ *****************************************************************************/
+ DMF_EVENT_MM_CSFB_CALL_STATUS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_CS_CALL_STATUS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MM CS CALL STATUS is reported by MM for MO/MT Call
+ *
+ * Data Type
+ * pointer to dmf_event_mm_cs_call_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_cs_call_status_struct)
+ *
+ * Data Description
+ * Provide mm_state/mm_casue /cs_status
+ *
+ *****************************************************************************/
+ DMF_EVENT_MM_CS_CALL_STATUS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EMM_CSFB_CALL_STATUS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EMM CSFB STATUS is changed
+ *
+ * Data Type
+ * pointer to dmf_event_emm_csfb_call_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_emm_csfb_call_status_struct)
+ *
+ * Data Description
+ * Provide MO/MT Call and CSFB status
+ *
+ *****************************************************************************/
+ DMF_EVENT_EMM_CSFB_CALL_STATUS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_VDM_CALL_STATUS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when VDM CALL_STATUS is changed
+ *
+ * Data Type
+ * pointer to dmf_event_vdm_call_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_vdm_call_status_struct)
+ *
+ * Data Description
+ * Provide Dir/RAT and following VDM call domain selection state
+ * EM_VDM_CALL_STATE_DISCONNECTED,
+ * EM_VDM_CALL_STATE_CONNECTED,
+ * EM_VDM_CALL_STATE_MO_EST_ADS_EXE,
+ * EM_VDM_CALL_STATE_MO_EST_DOMAIN_ATMP,
+ * EM_VDM_CALL_STATE_MT_EST_APPROVE,
+ * EM_VDM_CALL_STATE_MT_EST_DOMAIN_ATMP
+ *****************************************************************************/
+ DMF_EVENT_VDM_CALL_STATUS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CALL_STATUS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ATP updates MSG_ID_ATP_MT_DMF_ECPI_IND or
+ * when VDM update MSG_ID_EM_VDM_CALL_INFO_IND
+ *
+ * Data Type
+ * dmf_event_call_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_call_status_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_CALL_STATUS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_2G_RACH_FAIL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Rach fail occurs in 2G
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_2G_RACH_FAIL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_2G_N200_EXP
+ *
+ * DESCRIPTION
+ * This event is broadcasted when N200 expires occurs in 2G
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_2G_N200_EXP,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_2G_HO_FAIL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Handover fails in 2G
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_2G_HO_FAIL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_2G_CONTROL_MSG
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Channel Release Control message received in 2G
+ *
+ * Data Type
+ * kal_uint8
+ *
+ * Data Size
+ * sizeof(kal_uint8)
+ *
+ * Data Description
+ * provide the RR cause received in Channel Release
+ *
+ *****************************************************************************/
+ DMF_EVENT_2G_CONTROL_MSG,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_2G_RLF_CALL_TYPE_IND
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MO/MT RLF happen in 2G
+ *
+ * Data Type
+ * em_mt_call_type_enum
+ *
+ * Data Size
+ * sizeof(em_mt_call_type_enum)
+ *
+ * Data Description
+ * provide GSM call type MO/MT
+ *
+ *****************************************************************************/
+ DMF_EVENT_2G_RLF_CALL_TYPE_IND,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CC_CALL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when there is change in call state in 2G/3G
+ *
+ * Data Type
+ * pointer to dmf_event_cc_call_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cc_call_info_struct)
+ *
+ * Data Description
+ * Provide Call ID/Dir/State/Disconnect Cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_CC_CALL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_3G_RACH_FAIL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Rach fail occurs in 3G
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_3G_RACH_FAIL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_3G3_HO_FAIL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Intra (3G to 3G) Handover Fail
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_3G3_HO_FAIL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_3G2_HO_FAIL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Inter (3G to 2G) Handover Fail
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_3G2_HO_FAIL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_3G_MT_RLF_IND
+ *
+ * DESCRIPTION
+ * This event is broadcasted when RLF occurs during MT Call in 3G
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_3G_MT_RLF_IND,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_3G_MO_RLF_IND
+ *
+ * DESCRIPTION
+ * This event is broadcasted when RLF occurs during MO Call in 3G
+ *
+ * Data Type
+ * void
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_3G_MO_RLF_IND,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_IMS_INFO
+ *
+ * DESCRIPTION
+ * To be provided
+ *
+ * Data Type
+ * To be provided
+ *
+ * Data Size
+ * To be provided
+ *
+ * Data Description
+ * To be provided
+ *
+ *****************************************************************************/
+ DMF_EVENT_IMS_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_IMS_SIP_INFO
+ *
+ * DESCRIPTION
+ * This event is boradcasted when UE send/receive a SIP
+ *
+ * Data Type
+ * To be provided
+ *
+ * Data Size
+ * To be provided
+ *
+ * Data Description
+ * To be provided
+ *
+ *****************************************************************************/
+ DMF_EVENT_IMS_SIP_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_IMS_CALL_DROP_INFO
+ *
+ * DESCRIPTION
+ * This event is boradcasted when IMS Call drop occurs
+ *
+ * Data Type
+ * To be provided
+ *
+ * Data Size
+ * To be provided
+ *
+ * Data Description
+ * To be provided
+ *
+ *****************************************************************************/
+ DMF_EVENT_IMS_CALL_DROP_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_IMS_REG_ABNORMAL_INFO
+ *
+ * DESCRIPTION
+ * This event is boradcasted when IMS abnormal registration occurs
+ *
+ * Data Type
+ * To be provided
+ *
+ * Data Size
+ * To be provided
+ *
+ * Data Description
+ * To be provided
+ *
+ *****************************************************************************/
+ DMF_EVENT_IMS_REG_ABNORMAL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_IMS_HO_INFO
+ *
+ * DESCRIPTION
+ * This event is boradcasted when IMS handover between WIFI and LTE occurs
+ *
+ * Data Type
+ * To be provided
+ *
+ * Data Size
+ * To be provided
+ *
+ * Data Description
+ * To be provided
+ *
+ *****************************************************************************/
+ DMF_EVENT_IMS_HO_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_IMS_PDN_ERROR
+ *
+ * DESCRIPTION
+ * This event is broadcasted when IMS PDN fail with failed cause
+ *
+ * Data Type
+ * pointer to dmf_event_ims_pdn_fail_cause_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_ims_pdn_fail_cause_struct)
+ *
+ * Data Description
+ * Cause of pdn failure
+ *
+ *****************************************************************************/
+ DMF_EVENT_IMS_PDN_ERROR,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_IMS_PDN_FAIL_APN
+ *
+ * DESCRIPTION
+ * This event is broadcasted when IMS PDN fail with failed APN
+ *
+ * Data Type
+ * pointer to dmf_event_ims_pdn_fail_apn_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_ims_pdn_fail_apn_struct)
+ *
+ * Data Description
+ * Apn name for PDN creation
+ *
+ *****************************************************************************/
+ DMF_EVENT_IMS_PDN_FAIL_APN,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_VOLTE_PDCP_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when VoLTE PDCP INFO is changed.
+ *
+ * Data Type
+ * dmf_event_volte_pdcp_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_volte_pdcp_info_struct)
+ *
+ * Data Description
+ * - UL/DL packet drop
+ * - PDCP discard timer value
+ *****************************************************************************/
+ DMF_EVENT_VOLTE_PDCP_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_PAGING_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when PAGING INFO is changed.
+ * Please notice that when receiving paging,
+ * we will always report DMF_PAGING_REASON_UNSPECIFIED first.
+ * If we know the exactly reason, we will report correct reason again.
+ *
+ * Data Type
+ * dmf_event_paging_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_paging_info_struct)
+ *
+ * Data Description
+ * - paging reason
+ * - is data SIM
+ *****************************************************************************/
+ DMF_EVENT_PAGING_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MCF_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_MCF_OTA_FILE_INFO_IND is received.
+ *
+ * Data Type
+ * dmf_event_mcf_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mcf_info_struct)
+ *
+ * Data Description
+ * - Trigger type
+ * - Configure type
+ * - Result
+ * - start time (unit: tick)
+ * - end time (unit: tick)
+ * - path type
+ * - file name
+ *****************************************************************************/
+ DMF_EVENT_MCF_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_SBP_DSBP_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM DSBP_INFO_IND is received.
+ *
+ * Data Type
+ * dmf_event_sbp_dsbp_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_sbp_dsbp_info_struct)
+ *
+ * Data Description
+ * - Trigger type
+ * - Mode
+ * - Result
+ * - SBP ID
+ * - SIM SBP ID
+ * - start time (unit: tick)
+ * - end time (unit: tick)
+ *****************************************************************************/
+ DMF_EVENT_SBP_DSBP_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_HO_FAIL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_ERRC_HO_FAIL_EVENT_IND is received.
+ *
+ * Data Type
+ * dmf_event_errc_ho_fail_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_errc_ho_fail_struct)
+ *
+ * Data Description
+ * - handover result
+ *****************************************************************************/
+ DMF_EVENT_ERRC_HO_FAIL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_BAR_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_ERRC_BAR_INFO_IND is received.
+ *
+ * Data Type
+ * dmf_event_errc_bar_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_errc_bar_info_struct)
+ *
+ * Data Description
+ * - bar cause
+ * - bar time
+ * - extended wait time
+ *****************************************************************************/
+ DMF_EVENT_ERRC_BAR_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_REEST_FAIL_TIMER_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_ERRC_REEST_FAIL_TIMER_INFO_IND is received.
+ *
+ * Data Type
+ * dmf_event_errc_reest_fail_timer_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_errc_reest_fail_timer_info_struct)
+ *
+ * Data Description
+ * - time type
+ * - timer length
+ *****************************************************************************/
+ DMF_EVENT_ERRC_REEST_FAIL_TIMER_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_INTERFERENCE_MOD3_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_ERRC_INTRALTE_INTERFERENCE_MOD3_IND is received.
+ *
+ * Data Type
+ * dmf_event_errc_interference_mod3_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_errc_interference_mod3_info_struct)
+ *
+ * Data Description
+ * - serving cell's pci/rsrp/rsrq/freq
+ * - neighbor cell's pci/rsrp/rsrq/freq (max: 3 neighbor cells)
+ *****************************************************************************/
+ DMF_EVENT_ERRC_INTERFERENCE_MOD3_INFO,
+
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_RESET_UL_MAX_RLF_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_ERRC_REEST_UL_MAX_RLF_INFO_IND is received.
+ *
+ * Data Type
+ * no data
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * - n/a
+ *****************************************************************************/
+ DMF_EVENT_ERRC_RESET_UL_MAX_RLF_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_SERVING_CELL_INFO_UPDATE
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_ERRC_SERVING_INFO_IND is received.
+ *
+ * Data Type
+ * NA
+ *
+ * Data Size
+ * NA
+ *
+ * Data Description
+ * NA
+ *****************************************************************************/
+ DMF_EVENT_ERRC_SERVING_CELL_INFO_UPDATE,
+
+/*****************************************************************************
+* EVENT NAME
+* DMF_EVENT_ERRC_CONN_INFO
+*
+* DESCRIPTION
+* This event is broadcasted when EM MSG_ID_EM_ERRC_CONN_INFO_IND is received.
+*
+* Data Type
+* NA
+*
+* Data Size
+* NA
+*
+* Data Description
+* NA
+*****************************************************************************/
+ DMF_EVENT_ERRC_CONN_INFO,
+
+/*****************************************************************************
+* EVENT NAME
+* DMF_EVENT_ERRC_STATE_IND
+*
+* DESCRIPTION
+* This event is broadcasted when EM MSG_ID_EM_ERRC_STATE_IND is received.
+*
+* Data Type
+* NA
+*
+* Data Size
+* NA
+*
+* Data Description
+* NA
+*****************************************************************************/
+ DMF_EVENT_ERRC_STATE_IND,
+
+/*****************************************************************************
+* EVENT NAME
+* DMF_EVENT_EL1_PHYSICAL_CONFIGURATION
+*
+* DESCRIPTION
+* This event is broadcasted when PDCP THROUGHPUT event is received.
+*
+* Data Type
+* dmf_event_el1_physical_configuration_struct
+*
+* Data Size
+* sizeof(dmf_event_el1_physical_configuration_struct)
+*
+* Data Description
+* N/A
+*****************************************************************************/
+ DMF_EVENT_EL1_PHYSICAL_CONFIGURATION,
+ DMF_EVENT_NL1_PHYSICAL_CONFIGURATION,
+ DMF_EVENT_NL1_PHYSICAL_CONFIGURATION_2,
+ DMF_EVENT_NL1_SERVING_CELL_CSIRS_MEASUREMENT,
+ DMF_EVENT_NL1_SERVING_CELL_CSIRS_MEASUREMENT_2,
+
+/*****************************************************************************
+* EVENT NAME
+* DMF_EVENT_ESM_L4C_INFO
+*
+* DESCRIPTION
+* This event is broadcasted when MSG_ID_EM_ESM_L4C_ESM_INFO_IND received
+*
+* Data Type
+* em_esm_l4c_esm_info_ind_struct
+*
+* Data Size
+* sizeof(em_esm_l4c_esm_info_ind_struct)
+*
+* Data Description
+* N/A
+*
+*****************************************************************************/
+ DMF_EVENT_ESM_L4C_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EPDCP_TIMEOUT_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_EPDCP_TMOUT_DISC_IND is received.
+ *
+ * Data Type
+ * no data
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * - n/a
+ *****************************************************************************/
+ DMF_EVENT_EPDCP_TIMEOUT_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EPDCP_OOB_DISC_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_EPDCP_OOB_DISC_IND is received.
+ *
+ * Data Type
+ * no data
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * - n/a
+ *****************************************************************************/
+ DMF_EVENT_EPDCP_OOB_DISC_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EPDCP_DATA_INACTIVE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_EPDCP_DATA_INACTV_IND is received.
+ *
+ * Data Type
+ * no data
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * - n/a
+ *****************************************************************************/
+ DMF_EVENT_EPDCP_DATA_INACTIVE_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EMAC_RACH_FINISH_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_EMAC_RACH_FINISH_IND is received.
+ *
+ * Data Type
+ * no data
+ *
+ * Data Size
+ * 0
+ *
+ * Data Description
+ * - n/a
+ *****************************************************************************/
+ DMF_EVENT_EMAC_RACH_FINISH_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_LAU_REJ_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_REG_REJ_INFO_IND is received.
+ *
+ * Data Type
+ * dmf_event_mm_lau_rej_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_lau_rej_info_struct)
+ *
+ * Data Description
+ * - lu_type;
+ * - lu_rej_cause;
+ *****************************************************************************/
+ DMF_EVENT_MM_LAU_REJ_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_RAU_REJ_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_REG_REJ_INFO_IND is received.
+ *
+ * Data Type
+ * dmf_event_mm_rau_rej_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_rau_rej_info_struct)
+ *
+ * Data Description
+ * - rau_type;
+ * - rau_rej_cause;
+ *****************************************************************************/
+ DMF_EVENT_MM_RAU_REJ_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_ATTACH_REJ_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EM MSG_ID_EM_REG_REJ_INFO_IND is received.
+ *
+ * Data Type
+ * dmf_event_mm_attach_rej_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_attach_rej_info_struct)
+ *
+ * Data Description
+ * - attach_type;
+ * - attach_rej_cause;
+ *****************************************************************************/
+ DMF_EVENT_MM_ATTACH_REJ_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_AUTH_FAILURE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MM/EMM AUTH reject occurs
+ *
+ * Data Type
+ * dmf_event_mm_emm_auth_rej_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_emm_auth_rej_info_struct)
+ *
+ * Data Description
+ * Auth failure type
+ *
+ *****************************************************************************/
+ DMF_EVENT_MM_AUTH_FAILURE_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_DDM_IA_FAIL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when IA FAIL occurs which is sent through MSG_ID_EM_DDM_IA_FAIL_INFO_IND
+ *
+ * Data Type
+ * dmf_event_ddm_ia_fail_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_ddm_ia_fail_info_struct)
+ *
+ * Data Description
+ * cid and error cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_DDM_IA_FAIL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_DDM_DEACT_FAIL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Deactive PDN FAIL occurs which is sent through MSG_ID_EM_DDM_DEACT_FAIL_INFO_IND
+ *
+ * Data Type
+ * dmf_event_ddm_deact_fail_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_ddm_deact_fail_info_struct)
+ *
+ * Data Description
+ * cid and error cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_DDM_DEACT_FAIL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_DDM_ACT_FAIL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Deactive PDN FAIL occurs which is sent through MSG_ID_EM_DDM_ACT_FAIL_INFO_IND
+ *
+ * Data Type
+ * dmf_event_ddm_act_fail_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_ddm_act_fail_info_struct)
+ *
+ * Data Description
+ * cid and error cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_DDM_ACT_FAIL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EL1_HIGH_DL_BLER_OCCUR
+ *
+ * DESCRIPTION
+ * This event is broadcasted when DL CRC fail ratio > 50% within every 10 seconds.
+ * Note, this event is reported once every 10 seconds.
+ *
+ * Data Type
+ * N/A
+ *
+ * Data Size
+ * N/A
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_EL1_HIGH_DL_BLER_OCCUR,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_BW_MONITORING_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_ERRC_BW_MONITORING_INFO_IND
+ *
+ * Data Type
+ * dmf_event_errc_bw_monitoring_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_errc_bw_monitoring_info_struct)
+ *
+ * Data Description
+ * conn & idle information
+ *
+ *****************************************************************************/
+ DMF_EVENT_ERRC_BW_MONITORING_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_SIM_MONITOR_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_SIM_MONITOR_EVENT_INFO_IND
+ *
+ * Data Type
+ * dmf_event_sim_monitor_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_sim_monitor_info_struct)
+ *
+ * Data Description
+ * event_type and count
+ *
+ *****************************************************************************/
+ DMF_EVENT_SIM_MONITOR_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EMM_NASMSG_OCCURS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_EMM_NASMSG_INFO_IND,
+ *
+ * Data Type
+ * dmf_event_emm_nasmsg_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_emm_nasmsg_info_struct)
+ *
+ * Data Description
+ * nas message type, reject type, and reject cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_EMM_NASMSG_OCCURS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_SR_REJECT_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_MM_GMM_PROC_REJ_INFO_IND,
+ * and the type is SR rej
+ *
+ * Data Type
+ * dmf_event_mm_sr_rej_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_sr_rej_info_struct)
+ *
+ * Data Description
+ * rej_type, rej_cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_MM_SR_REJECT_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_NW_DETACH_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_MM_GMM_PROC_REJ_INFO_IND,
+ * and the type is nw detach
+ *
+ * Data Type
+ * dmf_event_mm_nw_detach_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_nw_detach_info_struct)
+ *
+ * Data Description
+ * detach_type, detach_cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_MM_NW_DETACH_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_XAS_SNIFFER_OCCUR
+ *
+ * DESCRIPTION
+ * This event is broadcasted when GAS_FDD, GAS_TDD, UAS, or ERRC sniffer occur
+ *
+ * Data Type
+ * N/A
+ *
+ * Data Size
+ * N/A
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_XAS_SNIFFER_OCCUR,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_NWSEL_FULLBAND_SEARCH_OCCUR
+ *
+ * DESCRIPTION
+ * This event is broadcasted when NWSEL fullband search occur
+ *
+ * Data Type
+ * N/A
+ *
+ * Data Size
+ * N/A
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_NWSEL_FULLBAND_SEARCH_OCCUR,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_L4C_SCREEN_STATE
+ *
+ * DESCRIPTION
+ * This event is broadcasted when screen state update occur
+ *
+ * Data Type
+ * N/A
+ *
+ * Data Size
+ * N/A
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_L4C_SCREEN_STATE,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_TDD_RRCE_CONN_STATUS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_TDD_EM_RRCE_CONN_STATUS_IND,
+ *
+ * Data Type
+ * dmf_event_tdd_rrce_conn_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_tdd_rrce_conn_status_struct)
+ *
+ * Data Description
+ * rrc_conn_status, est_cause, rrc_cause;
+ *
+ *****************************************************************************/
+ DMF_EVENT_TDD_RRCE_CONN_STATUS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_CUSTOM_BAR_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted for ERRC LTE custom cell bar
+ *
+ * Data Type
+ * N/A
+ *
+ * Data Size
+ * N/A
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_ERRC_CUSTOM_BAR_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_VOICE_QUALITY_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_SPEECH_INFO_VOICE_QUALITY_EVENT_IND
+ *
+ * Data Type
+ * N/A
+ *
+ * Data Size
+ * N/A
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_VOICE_QUALITY_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_TRIG_REL_RESULT_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted for ERRC trigger rel result
+ *
+ * Data Type
+ * N/A
+ *
+ * Data Size
+ * N/A
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_ERRC_TRIG_REL_RESULT_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_DATA_INACT_TIMER_EXP_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted for ERRC data inactivity timer expiry
+ *
+ * Data Type
+ * N/A
+ *
+ * Data Size
+ * N/A
+ *
+ * Data Description
+ * N/A
+ *
+ *****************************************************************************/
+ DMF_EVENT_ERRC_DATA_INACT_TIMER_EXP_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MM_EMM_CAUSE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EMM_CAUSE_INFO or MM_CAUSE_INFO is received.
+ *
+ * Data Type
+ * dmf_event_mm_emm_cause_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mm_emm_cause_info_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_MM_EMM_CAUSE_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_VOLTE_QUALITY_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when one full set of VoLTE quality info is collected via
+ * - EM_EL1_STATUS_IND (rsrp, rsrq, sinr)
+ * - MSG_ID_EM_LTECSR_RTP_PERIODIC_RPT_CUSTOMER_IND (jitter, rx drop)
+ * - MSG_ID_EM_EL2_OV_STATUS_IND (tx drop)
+ * Data Type
+ * dmf_event_volte_quality_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_volte_quality_info_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_VOLTE_QUALITY_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_A2_CONFIG_EVENT
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_ERRC_MOB_INTRARAT_MEAS_CONFIG_INFO_IND
+ * Data Type
+ * dmf_event_errc_a2_config_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_errc_a2_config_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_ERRC_A2_CONFIG_EVENT,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ERRC_B2_CONFIG_EVENT
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_ERRC_MOB_B2_MEAS_CONFIG_INFO_IND
+ * Data Type
+ * dmf_event_errc_b2_config_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_errc_b2_config_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_ERRC_B2_CONFIG_EVENT,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_GMSS_HVOLTE_INFO_EVENT
+ *
+ * DESCRIPTION
+ * This event is broadcasted when receiving MSG_ID_EM_GMSS_HVOLTE_INFO_IND
+ * Data Type
+ * dmf_event_gmss_hvolte_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_gmss_hvolte_info_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_GMSS_HVOLTE_INFO_EVENT,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_RADIO_LINK_FAILURE_CAUSE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC RADIO LINK FAILURE is received.
+ *
+ * Data Type
+ * dmf_event_radio_link_failure_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_radio_link_failure_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_COLLECT_ERRC_MEAS_RESULT_INFO,
+
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_RADIO_LINK_FAILURE_CAUSE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC RADIO LINK FAILURE is received.
+ *
+ * Data Type
+ * dmf_event_radio_link_failure_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_radio_link_failure_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_COLLECT_ERRC_MEAS_REPORT_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_RADIO_LINK_FAILURE_CAUSE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC RADIO LINK FAILURE is received.
+ *
+ * Data Type
+ * dmf_event_radio_link_failure_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_radio_link_failure_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_COLLECT_ERRC_SERVING_CELL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_RADIO_LINK_FAILURE_CAUSE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC RADIO LINK FAILURE is received.
+ *
+ * Data Type
+ * dmf_event_radio_link_failure_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_radio_link_failure_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_RADIO_LINK_FAILURE_CAUSE_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_SCG_FAILURE_CAUSE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when SCG FAILURE is received.
+ *
+ * Data Type
+ * dmf_event_scg_failure_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_scg_failure_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_SCG_FAILURE_CAUSE_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_SECONDARY_CELL_HANDOVER_CAUSE_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when SCG FAILURE is received.
+ *
+ * Data Type
+ * dmf_event_second_cell_addition_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_second_cell_addition_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_SCG_RECONFIGURATION_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ENDC_MODE_KPI_INFO_ERRC_STATE_CHANGE
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC STATE CHANGE is received.
+ *
+ * Data Type
+ * dmf_errc_state_change_info_v1_struct
+ *
+ * Data Size
+ * sizeof(dmf_errc_state_change_info_v1_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_ERRC_STATE_CHANGE_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ENDC_MODE_KPI_INFO_NRRC_STATE_CHANGE
+ *
+ * DESCRIPTION
+ * This event is broadcasted when NRRC STATE CHANGE is received.
+ *
+ * Data Type
+ * dmf_nrrc_state_change_info_v1_struct
+ *
+ * Data Size
+ * sizeof(dmf_nrrc_state_change_info_v1_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_NRRC_STATE_CHANGE_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ENDC_MODE_KPI_INFO_NL2_RLC_TPUT_UL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when NL2 RLC TPUT UL is received.
+ *
+ * Data Type
+ * dmf_nl2_rlc_throughput_ul_v1_struct
+ *
+ * Data Size
+ * sizeof(dmf_nl2_rlc_throughput_ul_v1_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_NL2_RLC_TPUT_UL,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_ENDC_MODE_KPI_INFO_NL2_PDCP_CONFIG
+ *
+ * DESCRIPTION
+ * This event is broadcasted when NL2 PDCP CONFIG is received.
+ *
+ * Data Type
+ * dmf_nl2_pdcp_configuration_event_v1_struct
+ *
+ * Data Size
+ * sizeof(dmf_nl2_pdcp_configuration_event_v1_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_NL2_PDCP_CONFIG,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_OTHER_5G_KPI_INFO_ERRC_CA_CONFIG
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ERRC CA CONFIG is received.
+ *
+ * Data Type
+ * dmf_errc_ca_config_info_v1_struct
+ *
+ * Data Size
+ * sizeof(dmf_errc_ca_config_info_v1_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_ERRC_CA_CONFIG_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_OTHER_5G_KPI_INFO_NRRC_SERVING_CELL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when NRRC SERVING CELL is received.
+ *
+ * Data Type
+ * dmf_nrrc_serving_cell_info_v1_struct
+ *
+ * Data Size
+ * sizeof(dmf_nrrc_serving_cell_info_v1_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_NRRC_SERVING_CELL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_PDCP_THROUGHPUT_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when PDCP THROUGHPUT event is received.
+ *
+ * Data Type
+ * dmf_event_pdcp_throughput_event_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_pdcp_throughput_event_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_PDCP_THROUGHPUT_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_OTA_FAIL_REASON
+ *
+ * DESCRIPTION
+ * This event is broadcasted when OTA FAIL event is received.
+ *
+ * Data Type
+ * dmf_em_errc_reest_by_l2_ind_struct
+ *
+ * Data Size
+ * sizeof(dmf_em_errc_reest_by_l2_ind_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_OTA_FAIL_REASON,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_NL1_FBRX
+ *
+ * DESCRIPTION
+ * This event is broadcasted when NL1 FBRx event is received.
+ *
+ * Data Type
+ * dmf_event_nl1_fbrx_v1_struct
+ *
+ * Data Sizes
+ * sizeof(dmf_event_nl1_fbrx_v1_struct)
+ *
+ * Data Description
+ * N/A
+ *****************************************************************************/
+ DMF_EVENT_NL1_FBRX,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_EPS_ATTACH_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EMM ATTACH related event occurs for ATTACH
+ *
+ * Data Type
+ * dmf_event_cmcc_eps_attach_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_eps_attach_struct)
+ *
+ * Data Description
+ * attach_event - refer to the enum dmf_cmcc_eps_attach_event_enum
+ * attach_reject_cause - attch reject cause
+ *****************************************************************************/
+ DMF_EVENT_CMCC_EPS_ATTACH_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_ESM_ACT_DEFAULT_BEARER_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Default EPS Bearer Activation related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_eps_bearer_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_eps_bearer_struct)
+ *
+ * Data Description
+ * esm_eps_bearer_event - refer to the enum dmf_cmcc_esm_eps_bearer_event_enum
+ * ebi -EPS Bearer ID
+ * reject_cause - esm reject cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_CMCC_ESM_ACT_DEFAULT_BEARER_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_ERRC_SUCC_RATE_KPI_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Srvcc Handover Success Happens
+ *
+ * Data Type
+ * dmf_event_cmcc_esrvcc_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_esrvcc_struct)
+ *
+ * Data Description
+ * proc_id - refer to the enum em_errc_success_rate_kpi_proc_enum
+ * status -refer to the enum em_kpi_status_enum
+ * srvcc_ho_flag - used to remember the srvcc progress
+ *
+ *****************************************************************************/
+ DMF_EVENT_CMCC_ERRC_SUCC_RATE_KPI_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_ERRC_MFROM_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Srvcc Handover Req received
+ *
+ * Data Type
+ * dmf_event_cmcc_errc_mfrom_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_errc_mfrom_struct)
+ *
+ * Data Description
+ * ir_ho_type - refer to the enum em_ho_from_lte_type_enum
+ * srvcc_ho_flag - used to remember the srvcc progress
+ *
+ *****************************************************************************/
+ DMF_EVENT_CMCC_ERRC_MFROM_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_ERRC_SRVCC_FAIL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when Srvcc Fail Happens
+ *
+ * Data Type
+ * dmf_event_cmcc_errc_srvcc_fail_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_errc_srvcc_fail_struct)
+ *
+ * Data Description
+ * srvcc_fail_cause - used to remember the srvcc fail cause
+ *
+ *****************************************************************************/
+ DMF_EVENT_CMCC_ERRC_SRVCC_FAIL_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_IMS_REG_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when IMS registration related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_imc_ims_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_imc_ims_struct)
+ *
+ * Data Description
+ * sip_msg_type - request or response
+ * sip_method -invite or other msgs
+ * sip_resp_code -sip response code
+ * event_id -ims related event
+ *
+ *****************************************************************************/
+ DMF_EVENT_CMCC_IMS_REG_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_VOLTE_CALL_DROP_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when volte call drop related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_imc_ims_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_imc_ims_struct)
+ *
+ * Data Description
+ * sip_msg_type - request or response
+ * sip_method -invite or other msgs
+ * sip_resp_code -sip response code
+ * event_id -ims related event
+ *
+ *****************************************************************************/
+ DMF_EVENT_CMCC_VOLTE_CALL_DROP_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_MO_VOLTE_CALL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when mo volte call related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_imc_ims_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_imc_ims_struct)
+ *
+ * Data Description
+ * sip_msg_type - request or response
+ * sip_method -invite or other msgs
+ * sip_resp_code -sip response code
+ * event_id -ims related event
+ *
+ *****************************************************************************/
+ DMF_EVENT_CMCC_MO_VOLTE_CALL_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_MT_VOLTE_CALL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when mt volte call related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_imc_ims_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_imc_ims_struct)
+ *
+ * Data Description
+ * sip_msg_type - request or response
+ * sip_method -invite or other msgs
+ * sip_resp_code -sip response code
+ * event_id -ims related event
+ *
+ *****************************************************************************/
+ DMF_EVENT_CMCC_MT_VOLTE_CALL_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_TAU_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when EMM TAU related event occurs for TAU
+ *
+ * Data Type
+ * dmf_event_cmcc_tau_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_tau_struct)
+ *
+ * Data Description
+ * tau_event - refer to the enum dmf_cmcc_tau_event_enum
+ * tau_reject_cause - tau reject cause
+ *****************************************************************************/
+ DMF_EVENT_CMCC_TAU_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_MO_CSFB_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MO CSFB related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_csfb_call_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_csfb_call_info_struct)
+ *
+ * Data Description
+ * call_event - refer to the enum dmf_cmcc_csfb_call_event_enum
+ * fail_cause - csfb call fail cause
+ *****************************************************************************/
+ DMF_EVENT_CMCC_MO_CSFB_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_MT_CSFB_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MT CSFB related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_csfb_call_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_csfb_call_info_struct)
+ *
+ * Data Description
+ * call_event - refer to the enum dmf_cmcc_csfb_call_event_enum
+ * fail_cause - csfb call fail cause
+ *****************************************************************************/
+ DMF_EVENT_CMCC_MT_CSFB_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_MO_SMS_OVER_SGS_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MO_SMS_OVER_SGS related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_sms_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_sms_info_struct)
+ *
+ * Data Description
+ * sms_event - refer to the enum dmf_cmcc_sms_event_enum
+ * fail_cause - sms fail cause
+ *****************************************************************************/
+ DMF_EVENT_CMCC_MO_SMS_OVER_SGS_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_MT_SMS_OVER_SGS_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MT_SMS_OVER_SGS related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_sms_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_sms_info_struct)
+ *
+ * Data Description
+ * sms_event - refer to the enum dmf_cmcc_sms_event_enum
+ * fail_cause - sms fail cause
+ *****************************************************************************/
+ DMF_EVENT_CMCC_MT_SMS_OVER_SGS_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_MO_SMS_OVER_IMS_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MO_SMS_OVER_IMS related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_sms_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_sms_info_struct)
+ *
+ * Data Description
+ * sms_event - refer to the enum dmf_cmcc_sms_event_enum
+ * fail_cause - sms fail cause
+ *****************************************************************************/
+ DMF_EVENT_CMCC_MO_SMS_OVER_IMS_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_CMCC_MT_SMS_OVER_IMS_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MT_SMS_OVER_IMS related event occurs
+ *
+ * Data Type
+ * dmf_event_cmcc_sms_info_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_cmcc_sms_info_struct)
+ *
+ * Data Description
+ * sms_event - refer to the enum dmf_cmcc_sms_event_enum
+ * fail_cause - sms fail cause
+ *****************************************************************************/
+ DMF_EVENT_CMCC_MT_SMS_OVER_IMS_INFO,
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EL1_STATUS_EVENT
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MSG_ID_EM_EL1_STATUS_IND received
+ *
+ * Data Type
+ * dmf_event_el1_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_el1_status_struct)
+ *
+ * Data Description
+ *
+ *****************************************************************************/
+ DMF_EVENT_EL1_STATUS_EVENT,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_MAC_DRX_STATUS_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ICD_NL2_MAC_DRX_STATUS_EVENT received
+ *
+ * Data Type
+ * dmf_event_mac_drx_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mac_drx_status_struct)
+ *
+ * Data Description
+ *
+ *****************************************************************************/
+ DMF_EVENT_MAC_DRX_STATUS_INFO,
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_EL1_PUSCH_PWR_CTRL
+ *
+ * DESCRIPTION
+ * This event is broadcasted when ICD_EL1_PUSCH_POWER_CONTROL received
+ *
+ * Data Type
+ * dmf_event_el1_pusch_power_control_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_el1_pusch_power_control_struct)
+ *
+ * Data Description
+ *
+ *****************************************************************************/
+ DMF_EVENT_EL1_PUSCH_PWR_CTRL,
+ DMF_EVENT_NL1_SERVING_CELL_RSSI,
+ DMF_EVENT_NL1_SERVING_CELL_MEASUREMENT,
+ DMF_EVENT_NL1_NEIGHBOR_CELL_MEASUREMENT,
+ DMF_EVENT_EL1_PUSCH_REPORT,
+ DMF_EVENT_NL1_PUSCH_REPORT,
+ DMF_EVENT_NL1_SYNC_SSB_SNR,
+ DMF_EVENT_NL1_RACH_INFORMATION,
+ DMF_EVENT_NL1_SRS_TX_INFORMATION,
+ DMF_EVENT_NL1_PUCCH_POWER_CONTROL,
+ DMF_EVENT_NL1_PUSCH_POWER_CONTROL,
+ DMF_EVENT_NL1_DCI_INFO,
+ DMF_EVENT_NL1_DCI_STATS,
+ DMF_EVENT_NL1_CSI_REPORT,
+ DMF_EVENT_NL1_UL_THROUGHPUT,
+ DMF_EVENT_NL1_MIMO_PDSCH_THROUGHPUT,
+ DMF_EVENT_NL2_RLC_DL_STATS,
+ DMF_EVENT_NL2_RLC_UL_STATS,
+ DMF_EVENT_NL2_PDCP_DL_STATS,
+ DMF_EVENT_NL2_PDCP_UL_STATS,
+ DMF_EVENT_NL2_MAC_CELL_GROUP_CONFIG,
+ DMF_EVENT_ERRC_IR_NR_MEAS_RESULT_INFO,
+ DMF_EVENT_VGNAS_MM_STATE_VALUE,
+
+ /*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_3G_FDD_CSCE_SERV_CELL_S_STATUS
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MSG_ID_FDD_EM_CSCE_SERV_CELL_S_STATUS_IND received
+ *
+ * Data Type
+ * dmf_event_mac_drx_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mac_drx_status_struct)
+ *
+ * Data Description
+ *
+ *****************************************************************************/
+ DMF_EVENT_3G_FDD_CSCE_SERV_CELL_S_STATUS,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_3G_FDD_MEME_DCH_UMTS_CELL_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MSG_ID_FDD_EM_MEME_DCH_UMTS_CELL_INFO_IND received
+ *
+ * Data Type
+ * dmf_event_mac_drx_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mac_drx_status_struct)
+ *
+ * Data Description
+ *
+ *****************************************************************************/
+ DMF_EVENT_3G_FDD_MEME_DCH_UMTS_CELL_INFO,
+
+/*****************************************************************************
+ * EVENT NAME
+ * DMF_EVENT_C2K_L4_RTT_RADIO_INFO
+ *
+ * DESCRIPTION
+ * This event is broadcasted when MSG_ID_EM_C2K_L4_RTT_RADIO_INFO_IND received
+ *
+ * Data Type
+ * dmf_event_mac_drx_status_struct
+ *
+ * Data Size
+ * sizeof(dmf_event_mac_drx_status_struct)
+ *
+ * Data Description
+ *
+ *****************************************************************************/
+ DMF_EVENT_C2K_L4_RTT_RADIO_INFO,
+ DMF_EVENT_GSM_UTAS_INFO,
+ DMF_EVENT_C2K_EVDO_SRV_INFO,
+ DMF_EVENT_GMM_INFO,
+ DMF_EVENT_ENAS_EMM_OTA_EVENT,
+ DMF_EVENT_RAC_INFO,
+ DMF_EVENT_RAC_REG_STATE_INFO,
+ DMF_EVENT_CM_SYS_SRV_INFO,
+ DMF_EVENT_RA_FAIL_OCCUR,
+ DMF_EVENT_IMS_380_DROP_INFO,
+ DMF_EVENT_EMERG_IMS_CALL_ANONYMOUS,
+ DMF_EVENT_ERRC_SRVCC_OCCUR,
+ DMF_EVENT_MM_LU_REJECT_OCCURS,
+ DMF_EVENT_MM_LU_FAILURE_OCCURS,
+ DMF_EVENT_ESM_ACTOVE_EPSB_INFO,
+ DMF_EVENT_TCM_PDP_INFO,
+ //DMF_EVENT_LTE_UL_PDCP_ABNORMAL_INFO,
+ DMF_EVENT_OOS_DELAY_INFO,
+ DMF_EVENT_OOS_USER_UNAWARE_RECOVERY_INFO,
+ DMF_EVENT_PLMN_CHANGE,
+ DMF_EVENT_TAU_RAU_LAU_INFO,
+ DMF_EVENT_EL2_RLC_STATUS,
+ DMF_EVENT_LTE_PDCP_STATUS,
+ DMF_EVENT_RF_STATE_CHANGE,
+ DMF_EVENT_SIGN_INFO,
+ DMF_EVENT_XAS_KPI_INFO,
+ DMF_EVENT_RR_STATE_TRANSITION,
+ DMF_EVENT_RRC_STATE_TRANSITION,
+ DMF_EVENT_l4C_SIG_UPDATE,
+ DMF_EVENT_ERRC_SEARCH,
+ DMF_EVENT_RRC_SEARCH,
+ DMF_EVENT_RR_SEARCH,
+ DMF_EVENT_IDLE_MEAS_TIME,
+ DMF_EVENT_LTE_NO_SLEEP,
+ DMF_EVENT_DRX_CNT_INFO,
+ DMF_EVENT_ENAS_EMM_CONTEXT_INFO,
+ DMF_EVENT_EL1_SRVING_CELL_MEAS,
+ DMF_EVENT_NL1_TPC_REPORT,
+ DMF_EVENT_EL1_TX_PDPOWER_REPORT,
+ DMF_EVENT_UL1_RFPD_AVG_INFO,
+ DMF_EVENT_LTECSR_RECV_STAT,
+ DMF_EVENT_VGSM_OTA_EVENT,
+ DMF_EVENT_CC_CALL_MT_SETUP_INFO,
+ DMF_EVENT_MM_EMM_PAGING_INFO,
+ DMF_EVENT_C2K_CS_CALL_SETUP_INFO,
+ DMF_EVENT_C2K_CS_PAGING_INFO,
+ DMF_EVENT_IMS_CALL_STATUS_EVENT,
+ DMF_EVENT_ERRC_PAGING_INFO,
+ DMF_EVENT_C2K_STATE_TRANSITION,
+ DMF_EVENT_EMM_CALL_EVENT,
+ DMF_EVENT_EMM_REG_EVENT,
+ DMF_EVENT_VDM_SSAC_BAR_EVENT,
+ DMF_EVENT_ERRC_AC_BAR_EVENT,
+ DMF_EVENT_XAS_IDLE_OOS_EVENT,
+ DMF_EVENT_ERRC_CDRX_INFO,
+ DMF_EVENT_NRRC_RLF_PARAM_CFG_EVENT,
+ DMF_EVENT_ERRC_MEAS_CONFIG_EVENT,
+ DMF_EVENT_NL2_MAC_RACH_ATMP_COMPLETE,
+ DMF_EVENT_NRRC_RLF,
+ DMF_EVENT_NRRC_CONN_REEST,
+ DMF_EVENT_NRRC_SEARCHING_INFO,
+ DMF_EVENT_VGNAS_MM_OTA,
+ DMF_EVENT_VGNAS_MM_FAIL_CAUSE,
+ DMF_EVENT_UL1_HSPA_INFO,
+ DMF_EVENT_GL1_RXD_INFO,
+ DMF_EVENT_MAX
+} dmf_event_id_enum;
+
+typedef struct
+{
+ dmf_event_id_enum event_id;
+ protocol_id_enum ps_id;
+ void *data;
+ kal_uint32 size;
+} dmf_event_struct;
+
+#endif // _DMF_PUBLIC_EVENT_H_
diff --git a/mcu/interface/protocol/general/gas_b3_general_struct.h b/mcu/interface/protocol/general/gas_b3_general_struct.h
new file mode 100644
index 0000000..8bd5e43
--- /dev/null
+++ b/mcu/interface/protocol/general/gas_b3_general_struct.h
@@ -0,0 +1,98 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+/*******************************************************************************
+ * Modification Notice:
+ * --------------------------
+ * This software is modified by MediaTek Inc. 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:
+ * ---------
+ * gas_b3_general_struct.h
+ *
+ * Project:
+ * --------
+ * Maui_Software
+ *
+ * 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!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _GAS_B3_GENERAL_STRUCT_H
+#define _GAS_B3_GENERAL_STRUCT_H
+
+#include "kal_general_types.h"
+
+#define MULTIPLE_B3_INFO_NUM (8)
+
+typedef struct
+{
+ kal_bool is_working_freq; // TRUE: working freq, FALSE: BCCH/NBCCH freq
+ kal_uint8 index; // 0: 1850-60, 1: 1860-70, 2: 1870-75, 3: 1875-1880
+ kal_uint16 arfcn; // GSM freq
+ kal_int16 rssi; // GSM rssi
+ kal_bool is_neighbor;
+} gl1_b3_info_struct;
+
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/gas_eas_inter_core_enum.h b/mcu/interface/protocol/general/gas_eas_inter_core_enum.h
new file mode 100644
index 0000000..09fbc80
--- /dev/null
+++ b/mcu/interface/protocol/general/gas_eas_inter_core_enum.h
@@ -0,0 +1,86 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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:
+ * ---------
+ * gas_eas_inter_core_enum.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _GAS_EAS_INTER_CORE_ENUM_H
+#define _GAS_EAS_INTER_CORE_ENUM_H
+
+/* MACROS ******************************************************************/
+typedef enum {
+ IR_ERRC_INVALID,
+ IR_ERRC_IDLE,
+ IR_ERRC_CONNECTED_NON_DRX,
+ IR_ERRC_CONNECTED_DRX
+}te_ir_errc_state;
+
+typedef enum{
+ BSIC_ENH_STATUS_STOP,
+ BSIC_ENH_STATUS_START
+}te_ir_bsic_enh_status;
+
+#endif /* _GAS_EAS_INTER_CORE_ENUM_H */
diff --git a/mcu/interface/protocol/general/gas_eas_inter_core_struct.h b/mcu/interface/protocol/general/gas_eas_inter_core_struct.h
new file mode 100644
index 0000000..cb68787
--- /dev/null
+++ b/mcu/interface/protocol/general/gas_eas_inter_core_struct.h
@@ -0,0 +1,154 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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:
+ * ---------
+ * gas_eas_inter_core_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _GAS_EAS_INTER_CORE_STRUCT_H
+#define _GAS_EAS_INTER_CORE_STRUCT_H
+
+#include "as_inter_core_struct.h"
+#include "gas_eas_inter_core_enum.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ts_ir_gsm_cell_bsic_info gsm_cell_bsic_info;
+ /* This value is for SRVCC enhancement */
+ /* The RSSI is boosted by GL1 after a successful BSIC decode during a SRVCC process */
+ /* Unit: qdbm */
+ kal_int16 power_boosted;
+#ifdef UNIT_TEST
+ kal_uint32 bsic_ind_ms_diff;
+#endif /* UNIT_TEST */
+} eas_gas_gcell_bsic_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 list_ref;
+ ts_ir_gsm_cell_rssi_info gsm_cell_rssi_info;
+ kal_bool is_long_period;
+#ifdef UNIT_TEST
+ kal_uint32 meas_ind_ms_diff;
+#endif /* UNIT_TEST */
+} eas_gas_gcell_meas_ind_struct;
+
+/* LTE to GAS IR Measurement */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 list_ref;
+ te_ir_errc_state errc_state;
+ kal_int16 prio_meas_period;
+ ts_ir_gsm_cell_list gsm_cell_list;
+} eas_gas_config_gcell_prio_meas_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ te_ir_bsic_enh_status bsic_enh_status;
+}eas_gas_bsic_enh_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 list_ref;
+ te_ir_errc_state errc_state;
+ ts_ir_gsm_cell_list gsm_cell_list;
+ /* This flag is used to indicate whether measurement period should be reset
+ * immediately. (TRUE: meas is performed in the first DRX.
+ * FALSE: meas is performed in the first T-meas occasion)
+ * In current design, the following rules should be followed.
+ * (1)If num of GSM cells != 0, this flag will be set as FALSE only if tmeas,gsm measurement
+ * is triggered when priority measurement is on-going (i.e., at least
+ * one of GSM cells hits priority reselection criteria for priority
+ * based measurement reselection). For other case, this flag should
+ * be set as TRUE. If any improvement is needed, the usage limitation
+ * for this flag should be confirmed with GL1's colleague.
+ * (2) If num of GSM cells == 0, this flag will alwyas be set as FALSE;
+ */
+ kal_bool is_meas_period_reset;
+
+ /* When this flag is set to TRUE, the standby measurement will be performed every T-meas without */
+ /* multiplying by N layers. So that there will be 2 measurement results within 10s OOS period, which */
+ /* increases the successful rate of finding a candidate during OOS */
+ kal_bool prohibit_apply_n_layer;
+
+ #ifdef __LTE_RAT__
+ /*eas configures gas to make use of idle rf to decode bsic in order to speed up srvcc to geran*/
+ kal_bool is_auto_gap_valid;
+ kal_int16 b1_b2_gsm_thresh;/* b1/b2 GSM threshold in qdbm, 0xffff is invalid, other value is valid*/
+#endif
+
+} eas_gas_config_gcell_meas_req_struct;
+#endif /* _GAS_EAS_INTER_CORE_STRUCT_H */
diff --git a/mcu/interface/protocol/general/gmss_public.h b/mcu/interface/protocol/general/gmss_public.h
new file mode 100644
index 0000000..0eba656
--- /dev/null
+++ b/mcu/interface/protocol/general/gmss_public.h
@@ -0,0 +1,352 @@
+/*****************************************************************************
+* 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 _GMSS_PUBLIC_H
+#define _GMSS_PUBLIC_H
+
+#include "kal_general_types.h"
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+#include "mcd_l3_inc_struct.h"
+#include "sim_exported_enum.h"
+#include "l3_inc_enums_public.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// bits: 0|N|Lf|Lt|W|C|T|G
+#define GMSS_WM_ID_MASK_NR 0x40
+#define GMSS_WM_ID_MASK_LTE_FDD 0x20
+#define GMSS_WM_ID_MASK_LTE_TDD 0x10
+#define GMSS_WM_ID_MASK_LTE (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_LTE_TDD)
+#define GMSS_WM_ID_MASK_WCDMA 0x08
+#define GMSS_WM_ID_MASK_C2K 0x04
+#define GMSS_WM_ID_MASK_TDSCDMA 0x02
+#define GMSS_WM_ID_MASK_GSM 0x01
+
+#define GMSS_WM_LTTG (GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_TDSCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LWG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_WCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LTG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_TDSCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LWTG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_WCDMA | GMSS_WM_ID_MASK_TDSCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LWCG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_WCDMA | GMSS_WM_ID_MASK_C2K | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LWCTG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_WCDMA | GMSS_WM_ID_MASK_C2K | GMSS_WM_ID_MASK_TDSCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LFWG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_WCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LFWCG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_WCDMA | GMSS_WM_ID_MASK_C2K | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LCTG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_C2K | GMSS_WM_ID_MASK_TDSCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LTCTG (GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_C2K | GMSS_WM_ID_MASK_TDSCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LTWG (GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_WCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LTWCG (GMSS_WM_ID_MASK_LTE_TDD | GMSS_WM_ID_MASK_WCDMA | GMSS_WM_ID_MASK_C2K | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LFTG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_TDSCDMA | GMSS_WM_ID_MASK_GSM)
+#define GMSS_WM_LFCTG (GMSS_WM_ID_MASK_LTE_FDD | GMSS_WM_ID_MASK_C2K | GMSS_WM_ID_MASK_TDSCDMA | GMSS_WM_ID_MASK_GSM)
+
+#define GMSS_WM_NLTTG (GMSS_WM_ID_MASK_NR | GMSS_WM_LTTG)
+#define GMSS_WM_NLWG (GMSS_WM_ID_MASK_NR | GMSS_WM_LWG)
+#define GMSS_WM_NLTG (GMSS_WM_ID_MASK_NR | GMSS_WM_LTG)
+#define GMSS_WM_NLWTG (GMSS_WM_ID_MASK_NR | GMSS_WM_LWTG)
+#define GMSS_WM_NLWCG (GMSS_WM_ID_MASK_NR | GMSS_WM_LWCG)
+#define GMSS_WM_NLWCTG (GMSS_WM_ID_MASK_NR | GMSS_WM_LWCTG)
+#define GMSS_WM_NLFWG (GMSS_WM_ID_MASK_NR | GMSS_WM_LFWG)
+#define GMSS_WM_NLFWCG (GMSS_WM_ID_MASK_NR | GMSS_WM_LFWCG)
+#define GMSS_WM_NLCTG (GMSS_WM_ID_MASK_NR | GMSS_WM_LCTG)
+#define GMSS_WM_NLTCTG (GMSS_WM_ID_MASK_NR | GMSS_WM_LTCTG)
+#define GMSS_WM_NLTWG (GMSS_WM_ID_MASK_NR | GMSS_WM_LTWG)
+#define GMSS_WM_NLTWCG (GMSS_WM_ID_MASK_NR | GMSS_WM_LTWCG)
+#define GMSS_WM_NLFTG (GMSS_WM_ID_MASK_NR | GMSS_WM_LFTG)
+#define GMSS_WM_NLFCTG (GMSS_WM_ID_MASK_NR | GMSS_WM_LFCTG)
+
+#define GMSS_MAX_MCC_ENTRY_NUM 10
+
+/*************************************************************************
+* Area Configuration
+* -
+* -
+*************************************************************************/
+#define MAX_SIDE_NUM 10
+#define MAX_ZONE_NUM 5
+
+#ifdef UNIT_TEST
+#define GMSS_GEO_MAX_SUB_NUM 10
+#else
+#define GMSS_GEO_MAX_SUB_NUM 256
+#endif /* UNIT_TEST */
+
+typedef void *gmss_geo_sub_id;
+
+/****************************************************************************
+ Enum Declarations
+****************************************************************************/
+typedef enum
+{
+ UMTS_WCDMA_DUPLEX_MODE,
+ UMTS_TDSCDMA_DUPLEX_MODE
+} umts_duplex_mode_type;
+
+typedef enum
+{
+ LTE_FDD_DUPLEX_MODE,
+ LTE_TDD_DUPLEX_MODE,
+ LTE_FDD_TDD_DUPLEX_MODE
+} lte_duplex_mode_type;
+
+typedef enum
+{
+ NR_FDD_DUPLEX_MODE,
+ NR_TDD_DUPLEX_MODE,
+ NR_FDD_TDD_DUPLEX_MODE
+} nr_duplex_mode_type;
+
+typedef enum
+{
+ GMSS_C2K_FLAG_FALSE,
+ GMSS_C2K_FLAG_TRUE,
+ GMSS_C2K_FLAG_UNKNOWN
+
+} gmss_c2k_flag_enum;
+
+typedef enum
+{
+ GEO_SERVICE_NONE,
+ GEO_SERVICE_GPS_DATA_STATUS,
+ GEO_SERVICE_GEO_AREA_STATUS,
+ GEO_SERVICE_DISTANCE_STATUS
+} geo_service_enum;
+
+typedef enum
+{
+ GEO_EVENT_NONE,
+ GEO_EVENT_NO_VALID_GPS_DATA,
+ GEO_EVENT_VALID_GPS_DATA,
+ GEO_EVENT_ENTER_GEO_AREA,
+ GEO_EVENT_LEAVE_GEO_AREA,
+ GEO_EVENT_FAR_DISTANCE,
+ GEO_EVENT_END
+} geo_event_enum;
+
+typedef enum
+{
+ AREA_STATUS_UNKNOWN,
+ AREA_STATUS_IN,
+ AREA_STATUS_OUT
+} geo_area_status_enum;
+
+typedef enum
+{
+ DATA_STATUS_INVALID,
+ DATA_STATUS_VALID
+} gps_data_status_enum;
+
+typedef enum
+{
+ NR_AVAIL_UNKNOWN,
+ NR_AVAIL_UNAVAIL,
+ NR_AVAIL_AVAIL,
+ NR_AVAIL_MAX
+} nr_avail_enum;
+
+/****************************************************************************
+ Struct Declarations
+****************************************************************************/
+typedef struct
+{
+ kal_bool is_3g_fdd;
+ kal_bool is_3g_tdd;
+ kal_bool is_4g_fdd;
+ kal_bool is_4g_tdd;
+} gmss_duplex_mode_type_struct;
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+typedef struct
+{
+ plmn_id_struct plmn;
+ kal_bool is_available_timer_running;
+ kal_uint32 remain_tick;
+} gmss_mcc_item_struct;
+#endif
+
+typedef struct {
+ double lon;
+ double lat;
+} geo_point_struct;
+
+typedef struct {
+ geo_point_struct s; //start point
+ geo_point_struct e; //end point
+} geo_line_struct;
+
+typedef struct {
+ kal_uint8 point_num;
+ geo_point_struct point[MAX_SIDE_NUM];
+} geo_zone_struct;
+
+typedef struct
+{
+ kal_uint8 zone_num;
+ geo_zone_struct zone[MAX_ZONE_NUM];
+} geo_area_struct;
+
+typedef struct
+{
+ geo_service_enum service_type;
+ geo_area_struct area;
+ kal_uint32 distance;
+ kal_uint8 sim_interface;
+ geo_event_enum event;
+ gmss_geo_sub_id sub_id;
+} gmss_geo_data_event_container_struct;
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+typedef struct
+{
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+ kal_uint64 cell_id;
+} gmss_cell_global_id_struct;
+
+typedef struct
+{
+ nr_avail_enum level1;
+ nr_avail_enum level2;
+} gmss_nr_avail_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ gmss_nr_avail_struct nr_avail;
+} gmss_nr_avail_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ nr_avail_enum level2;
+ kal_uint8 plmn_id_list_num;
+ plmn_id_struct plmn_id[MAX_NUM_MULTI_PLMN];
+ kal_uint8 cell_id[MAX_NUM_MULTI_PLMN][5];
+} gmss_nrrc_nr_avail_update_ind_struct;
+#endif
+
+/***************************
+Function Pointer Delarations
+****************************/
+typedef void (*gmss_geo_callback_func)(gmss_geo_data_event_container_struct);
+
+/***************************
+Exported Function Prototypes
+****************************/
+kal_bool gmss_is_wcdma_mode_activated(kal_uint8 sim_index);
+kal_bool gmss_is_tdscdma_mode_activated(kal_uint8 sim_index);
+kal_bool gmss_is_ltefdd_mode_activated(void);
+kal_bool gmss_is_ltetdd_mode_activated(void);
+
+extern void gmss_set_duplex_mode(umts_duplex_mode_type mode_3g, lte_duplex_mode_type mode_4g, kal_uint8 sim_index);
+
+kal_bool gmss_is_cdma2000_supported();
+
+kal_bool gmss_is_cdma2000_supported_public();
+
+kal_bool gmss_is_mode_switch_for_cmcc_mt_csfb_required(kal_uint8 sim_idx);
+
+kal_bool gmss_is_3gpp_mpsr_ongoing(kal_uint8 sim_idx);
+
+extern kal_bool gmss_is_ct_operation(kal_uint8 sim_index);
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+/**
+ * @brief Get the MCC list stored in MCC pool maintained by GMSS
+ * @param[in] ps_id is the protocol ID of target protocol
+ * @param[out] mcc_num is the number of MCCs
+ * @param[out] mcc_list is the list of MCCs (sorted by available timer: Not running > long remain tick > short remain tick)
+ */
+void gmss_get_mcc_list(protocol_id_enum ps_id, kal_uint32 *mcc_num, gmss_mcc_item_struct mcc_list[]);
+#endif
+
+/**
+ * @brief Check if current location data is in current geographic area of assigned geo area
+ * @param[in] assigned geo_area
+ * @param[out] IN: in geo area; OUT: not in geo area, UNKOWN: unknown(e.g. gps invalid).
+ */
+extern geo_area_status_enum gmss_is_in_geo_area(geo_area_struct *geo_area);
+
+/**
+ * @brief Subscribe geographic service notifications
+ * @param[in] subscription name
+ * @param[in] callback function
+ * @param[in] subscription information
+ * @param[out] GMSS will provide unique Subscription ID. It is used to un-subscription.
+ */
+extern void gmss_geo_service_sub(kal_char *sub_name, gmss_geo_callback_func callback_func, const gmss_geo_data_event_container_struct sub_info, gmss_geo_sub_id *sub_id);
+
+/**
+ * @brief Modify geographic service notifications
+ * @param[in] Subscription ID
+ * @param[in] callback function
+ * @param[in] subscription information
+ * @param[out] TRUE: modification success. FALSE: modification fail.
+ */
+extern kal_bool gmss_geo_service_modify(gmss_geo_sub_id *sub_id, gmss_geo_callback_func callback_func, const gmss_geo_data_event_container_struct sub_info);
+
+/**
+ * @brief Unsubscribe geographic service notifications
+ * @param[in] Subscription ID
+ * @param[out] Should be NULL(Invalid Subscription ID)
+ */
+extern void gmss_geo_service_unsub(gmss_geo_sub_id *sub_id);
+
+/**
+ * @brief Get the latest GPS location in record.
+ * @param[out] GPS location
+ * @param[out] TRUE: The latest location exists. FALSE: No location exists.
+ */
+extern kal_bool gmss_geo_get_latest_loc(geo_point_struct *loc);
+
+/**
+ * @brief Get the distance between two GPS locations
+ * @param[in] GPS location A
+ * @param[in] GPS location B
+ * @param[out] The geographic distance between A and B in kilometers.
+ */
+extern double gmss_geo_get_distance_in_kilometers(const geo_point_struct *loc_a, const geo_point_struct *loc_b);
+
+#ifdef __cplusplus
+}
+#endif
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+extern void gmss_nr_map_nr_avail_query(const gmss_cell_global_id_struct *cell_global_id, kal_uint8 sim_interface, gmss_nr_avail_struct *nr_avail);
+#endif
+
+#endif /* _GMSS_PUBLIC_H_ */
+
diff --git a/mcu/interface/protocol/general/gnss_tc_common_struct.h b/mcu/interface/protocol/general/gnss_tc_common_struct.h
new file mode 100644
index 0000000..08fc8ff
--- /dev/null
+++ b/mcu/interface/protocol/general/gnss_tc_common_struct.h
@@ -0,0 +1,185 @@
+#ifndef _GNSS_TC_COMMON_STRUCT_H
+#define _GNSS_TC_COMMON_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#define GNSS_TC_TIMEID_GPS 0
+#define GNSS_TC_TIMEID_SBAS 1
+#define GNSS_TC_TIMEID_QZSS 2
+#define GNSS_TC_TIMEID_GALILEO 3
+#define GNSS_TC_TIMEID_GLONASS 4
+#define GNSS_TC_TIMEID_BDS 5
+
+#define GNSS_TC_TIMETYPE_TOD 1
+#define GNSS_TC_TIMETYPE_TOW 2
+#define GNSS_TC_TIMETYPE_UTC 3
+
+#define GNSS_TC_RAT_GSM 0x01
+#define GNSS_TC_RAT_WCDMA 0x02
+#define GNSS_TC_RAT_TDSCDMA 0x03
+#define GNSS_TC_RAT_CDMA2000 0x04
+#define GNSS_TC_RAT_LTE 0x05
+#define GNSS_TC_RAT_NR_FR1 0x06
+#define GNSS_TC_RAT_NR_FR2 0x07
+
+#define GNSS_TC_TIME_INFO_SRC_LTE_SIB8 1 /* LTE SIB8 */
+#define GNSS_TC_TIME_INFO_SRC_LTE_SIB16 2 /* LTE SIB16 */
+#define GNSS_TC_TIME_INFO_SRC_NR_SIB9 3 /* NR SIB9 */
+#define GNSS_TC_TIME_INFO_SRC_GSM_GNSS_FT 8 /* reserved for GSM - GNSS fine time */
+#define GNSS_TC_TIME_INFO_SRC_WCDMA_GNSS_FT 9 /* reserved for WCDMA - GNSS fine time */
+#define GNSS_TC_TIME_INFO_SRC_TD_SCDMA_GNSS_FT 10 /* reserved for TD-SCDMA - GNSS fine time */
+#define GNSS_TC_TIME_INFO_SRC_CDMA2000_GNSS_FT 11 /* reserved for CDMA2000 - GNSS fine time */
+#define GNSS_TC_TIME_INFO_SRC_LTE_GNSS_FT 12 /* LTE - GNSS fine time */
+#define GNSS_TC_TIME_INFO_SRC_NR_FR1_GNSS_FT 13 /* NR FR1 - GNSS fine time */
+#define GNSS_TC_TIME_INFO_SRC_NR_FR2_GNSS_FT 14 /* reserved for NR FR2 - GNSS fine time */
+
+#define GNSS_TC_BIT_TRUE 1
+#define GNSS_TC_BIT_FALSE 0
+
+#define GNSS_TC_CTRL_FLAG_STOP 0 /* Disable/request to STOP */
+#define GNSS_TC_CTRL_FLAG_START 1 /* Enable/request to START */
+#define GNSS_TC_CTRL_FLAG_TEST_MODE 2 /* Test Mode Enable */
+
+#define GNSS_TC_RX_STATE_INVALID 0 /* Invalid value, default value */
+#define GNSS_TC_RX_STATE_IDLE 1 /* Indicate rx idle state */
+#define GNSS_TC_RX_STATE_CONNECT 2 /*Indicate rx connect state */
+#define GNSS_TC_RX_STATE_OUTOFSYNC 3 /* Indicate radio link fail scenario */
+
+#pragma pack(push)
+#pragma pack(8) /* To avoid AP modem alignment issue */
+
+typedef struct
+{
+ kal_uint16 tac; /* 0...65535 */
+ kal_uint16 mnc; /* 0...999 */
+ kal_uint16 mcc; /* 0...999 */
+ kal_uint32 cellId; /* 0...0x0FFFFFFF */
+ kal_uint8 is_2_digit_mnc; /* refer to GNSS_TC_BIT_* (0...1)*/
+} globalCellId_struct;
+
+typedef struct
+{
+ kal_uint16 mnc; /* 0...999 */
+ kal_uint16 mcc; /* 0...999 */
+ kal_uint8 cellId[5]; /* The parameter is bit string of 36 bits. The MSB of 'cell_identity[0]' is the first bit of the bit string, and so on */
+ kal_uint8 is_2_digit_mnc; /* refer to GNSS_TC_BIT_* (0...1)*/
+} nrGlobalCellId_struct;
+
+typedef struct
+{
+ kal_uint8 ratMode; /* refer to GNSS_TC_RAT_* */
+ kal_uint8 isGciAvailable; /* refer to GNSS_TC_BIT_* (0: not available. 1: available.) */
+ globalCellId_struct globalCellId;
+ kal_uint8 isNrGciAvailable; /* refer to GNSS_TC_BIT_* (0: not available. 1: available.) */
+ nrGlobalCellId_struct nrGlobalCellId;
+ kal_uint8 isPciAvailable; /* refer to GNSS_TC_BIT_* (0: not available. 1: available.) */
+ kal_uint16 phyCellId; /* LTE = 0...503. NR = 0...1007 */
+ kal_uint8 isPscAvailable; /* refer to GNSS_TC_BIT_* (0: not available. 1: available.)*/
+ kal_uint16 psc; /* 0...512 */
+ kal_uint8 rxStatus; /* refer to GNSS_TC_RX_STATE_*. Indicate EL1 and NL1 rx status */
+} md_cellId_struct;
+
+typedef struct
+{
+ kal_uint16 md_frame_number; /* 0...1023 (10 milli-sec). The Frame number of target cells corresponding to the HW pulse (Used by LTE)*/
+ kal_uint8 md_subframe_number; /* 0...9 (milli-sec). The sub-frame number of target cells corresponding to the HW pulse (Used by LTE) */
+} md_sf_time_lte_struct;
+
+typedef struct
+{
+ kal_uint16 md_frame_number; /* 0...1023 (10 milli-sec). The Frame number of target cells corresponding to the HW pulse (Used by NR) */
+ kal_uint8 md_subframe_number; /* 0...9 (milli-sec). The sub-frame number of target cells corresponding to the HW pulse (Used by NR) */
+} md_sf_time_nr_struct;
+
+typedef struct
+{
+ kal_uint16 md_frame_number; /* 0...1023 (10 milli-sec). The Frame number of target cells corresponding to the HW pulse (Used by WCDMA)*/
+} md_sf_time_wcdma_struct;
+
+typedef struct
+{
+ kal_uint8 ratModeType; /* refer to GNSS_TC_RAT_* */
+ md_sf_time_lte_struct md_sf_time_lte;
+ md_sf_time_nr_struct md_sf_time_nr;
+ md_sf_time_wcdma_struct md_sf_time_wcdma;
+} md_frameInformation_struct;
+
+typedef struct
+{
+ kal_uint8 md_propogationDelay_valid; /* refer to GNSS_TC_BIT_* (0: the PropogationDelay is not valid. 1: the PropogationDelay is valid.) */
+ kal_uint32 md_currentPropogationDelay; /* 0...4294967295 nano-sec. Propagation delay time(UINT32) from a particular cell to UE. Use Time advance to determine (equal to 1/2 TA) */
+ kal_uint64 md_absTimeOfPropogationDelay; /* MD abs-time with 64 bit corresponding to md receiving md-CurrentPropogationDelay. (Used by LTE and NR) */
+ kal_uint32 md_propogationDelayUncertainty; /* 0...4294967295 nano-sec. This filed specifis the uncertainty caused by the resolution of propogation delay */
+ kal_int32 md_propogationDelayChange; /* Propogation Delay Change. To be used by WCDMA only */
+} md_propagationInformation_struct;
+
+typedef struct
+{
+ kal_uint32 md_hwInferfaceUncertainty; /* 0...4294967295 nano-sec. The fields specifies the uncertainty caused by the HW interface between MD and GNSS and the uc */
+ kal_uint64 md_subframeboundary; /* 0...0xFFFFFFFFFFFFFFFF subframe boundary corresponding to HW pulse triggered. This field only user for NR and LTE */
+ kal_int32 md_scntToFrcFractionalPart; /* -2147483648...2147483647 fractional part due to scnt convert to FRC. For Marga and after Marga, this value is 0. unit:nano-sec */
+ md_propagationInformation_struct md_propagationInfo;
+} md_pulseInformation_struct;
+
+typedef struct
+{
+ kal_uint16 md_cellHandOverNumber; /* 0...65535. Number of handovers UE experienced from cell which UE received the latest time synchronization information to the cell UE camp on currently */
+ kal_uint64 md_absTimeOrigin; /* 0...0xFFFFFFFFFFFFFFFF (milli-sec). MD abs-time with 64 bit corresponding to the latest GNSS timing feedback. (Used by LTE and NR) */
+ kal_uint64 md_absTimeStart; /* MD abs-time with 64 bit corresponding to start time of current cell UE camp on. (Used by LTE and NR) */
+ kal_uint64 md_absTimeTrigger; /* MD abs-time with 64 bit corresponding to the HW pulse.(Used by LTE and NR) */
+ kal_uint16 md_eNobeFreqDrift; /* 0...65535 (unit: 0.001ppm). This field specifies the maximum frequency bias of base station defined in 3GPP spec for each RAT. For LTE: 0.05ppm, NR: 0.05ppm */
+} md_cellUncertainty_struct;
+
+typedef struct
+{
+ kal_uint8 gnss_timeID; /* refer to GNSS_TC_TIMEID_* */
+ kal_uint16 gnss_dayNumber; /* 0...32767 (Day) */
+ kal_uint32 gnss_timeOfDay; /* 0...86399 sec */
+ kal_uint32 gnss_timeOfDayFrac_nsec; /* 0...999999999 nano-sec */
+ kal_uint8 gnss_leapSecond; /* 0...255 sec */
+} gnss_timeOfDay_struct;
+
+typedef struct
+{
+ kal_uint16 gnss_weekNum; /* unit: Week */
+ kal_uint32 gnss_timeOfWeek_ms; /* 0...604800000, unit: ms */
+ kal_uint32 gnss_timeOfWeek_subms_picosec; /* 0...999999999, uint: pico-sec */
+} gnss_timeOfWeek_struct;
+
+typedef struct
+{
+ kal_uint64 timeinfo_utc; /*Follow 38.331, counts the number of UTC seconds in 10 ms units since 00:00:00 on Gregorian calendar date 1 January, 1990. */
+ kal_uint8 dayLightSavingTime[2]; /* Indicate if and how daylight-saving time is applied to obtain the local time */
+ kal_uint8 is_leap_seconds_valid; /* Indicate the validity of leap_sconds */
+ kal_int16 leap_seconds; /* Number of leap seconds offset between GPS Time and UTC */
+ kal_int16 localTimeOffset; /* Offset between UTC and local time in units of 15 minutes.*/
+ kal_uint64 sib_time_diff; /* Time diff between pulse GPS timing and SIB frame boundary.Unit: microseconds */
+} gnss_tc_utc_time_struct;
+
+typedef struct
+{
+ kal_uint8 md_cellInfo_Valid; /* 0: the cell-Information is not valid. 1: the cell-information is valid */
+ md_cellId_struct md_cellId;
+ md_pulseInformation_struct md_pulseInfo;
+ md_frameInformation_struct md_frameInfo;
+ md_cellUncertainty_struct md_cellUncertainty;
+} cell_information_struct;
+
+typedef struct
+{
+ kal_uint8 gnss_timeInfo_valid; /* 0: the GNSS-TimeInformation is not valid. 1: the GNSS-TimeInformation is valid. */
+ kal_uint8 time_info_source; /* 0: reserved. 1: LTE SIB8. 2: LTE SIB16. 3: NR SIB9. 4-7: reserved. 8: reserved for GSM - GNSS fine time.
+ 9: reserved for WCDMA - GNSS fine time. 10: reserved for TD-SCDMA - GNSS fine time. 11: reserved for CDMA2000 - GNSS fine time.
+ 12: LTE - GNSS fine time. 13: NR FR1 - GNSS fine time. 14: reserved for NR FR2-GNSS fine time.15: reserved */
+ kal_uint8 time_infoType; /* 1: TOD time, 2: TOW time, 3: UTC time; refer to GNSS_TC_TIMETYPE_ . Indicate which time format is used */
+ gnss_timeOfDay_struct gnss_tod;
+ gnss_timeOfWeek_struct gnss_tow;
+ gnss_tc_utc_time_struct utc_time;
+ kal_uint32 gnss_timeUncertainty; /* 0...4294967295 nano-sec */
+} gnss_timeInformation_struct;
+
+#pragma pack(pop) /* Restore the alignment configuration */
+
+#endif /*_GNSS_TC_COMMON_STRUCT_H*/
+
diff --git a/mcu/interface/protocol/general/gnss_tc_lte_struct.h b/mcu/interface/protocol/general/gnss_tc_lte_struct.h
new file mode 100644
index 0000000..54ac158
--- /dev/null
+++ b/mcu/interface/protocol/general/gnss_tc_lte_struct.h
@@ -0,0 +1,40 @@
+#ifndef _GNSS_TC_LTE_STRUCT_H
+#define _GNSS_TC_LTE_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "gnss_tc_common_struct.h"
+
+
+/* GNSS_TC -> EL1 */
+/* This structure is for MSG_ID_GNSS_TC_EL1_SYNC_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ kal_uint8 ctrlFlag; /* refer to GNSS_TC_CTRL_FLAG_* .Indicate the time Sync mode. */
+ md_cellId_struct md_cellId;
+} gnss_tc_el1_sync_req_struct;
+
+/* This structure is for MSG_ID_GNSS_TC_EL1_TIME_INFO_RSP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ cell_information_struct cell_info;
+ gnss_timeInformation_struct gnss_timeInfo;
+} gnss_tc_el1_time_info_rsp_struct;
+
+/* EL1 -> GNSS_TC */
+/* This structure is for MSG_ID_GNSS_TC_EL1_SYNC_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ cell_information_struct cell_info;
+ gnss_timeInformation_struct gnss_timeInfo;
+} gnss_tc_el1_sync_cnf_struct;
+
+
+#endif /*_GNSS_TC_LTE_STRUCT_H*/
+
diff --git a/mcu/interface/protocol/general/gnss_tc_nr_struct.h b/mcu/interface/protocol/general/gnss_tc_nr_struct.h
new file mode 100644
index 0000000..507c560
--- /dev/null
+++ b/mcu/interface/protocol/general/gnss_tc_nr_struct.h
@@ -0,0 +1,63 @@
+#ifndef _GNSS_TC_NR_STRUCT_H
+#define _GNSS_TC_NR_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "gnss_tc_common_struct.h"
+
+
+/* GNSS_TC -> NL1 */
+/* This structure is for MSG_ID_GNSS_TC_NL1_SYNC_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ kal_uint8 ctrlFlag; /* refer to GNSS_TC_CTRL_FLAG_* .Indicate the time Sync mode. */
+ md_cellId_struct md_cellId;
+} gnss_tc_nl1_sync_req_struct;
+
+/* This structure is for MSG_ID_GNSS_TC_NL1_TIME_INFO_RSP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ cell_information_struct cell_info;
+ gnss_timeInformation_struct gnss_timeInfo;
+} gnss_tc_nl1_time_info_rsp_struct;
+
+
+/* NL1 -> GNSS_TC */
+/* This structure is for MSG_ID_ GNSS_TC_NL1_SYNC_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ cell_information_struct cell_info;
+ gnss_timeInformation_struct gnss_timeInfo;
+} gnss_tc_nl1_sync_cnf_struct;
+
+typedef enum {
+ NRRC_TIME_SIB_RESULT_OK =0, /* NRRC/NL1 reported useful info, check fields in lbs_errc_read_time_sib_ind_struct */
+ NRRC_TIME_SIB_RESULT_NOT_TRY =1, /* No valid SIB info, and LBS doesn??t need to try again */
+ NRRC_TIME_SIB_RESULT_RE_TRY =2, /* No valid SIB info, and LBS may try again */
+ NRRC_TIME_SIB_RESULT_TIMEOUT =3 /* While trying to read SIB for time sync, guard timer timeouts(2s), Can retry, ask ERRC for further check*/
+} nrrc_time_sib_result_enum;
+
+/* NRRC -> GNSS_TC */
+/* This structure is for MSG_ID_GNSS_TC_NRRC_READ_TIME_SIB_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ nrrc_time_sib_result_enum result;
+ kal_uint64 time_info_utc;
+ kal_bool is_day_light_saving_time_valid;
+ kal_uint8 day_light_saving_time;
+ kal_bool is_leap_seconds_valid;
+ kal_int16 leap_seconds;
+ kal_bool is_local_time_offset_valid;
+ kal_int16 local_Time_Offset;
+ kal_uint64 sib9_time_diff;
+} gnss_tc_nrrc_read_time_sib_cnf_struct;
+
+#endif /*_GNSS_TC_NR_STRUCT_H*/
+
diff --git a/mcu/interface/protocol/general/gnss_tc_wcdma_struct.h b/mcu/interface/protocol/general/gnss_tc_wcdma_struct.h
new file mode 100644
index 0000000..6b17451
--- /dev/null
+++ b/mcu/interface/protocol/general/gnss_tc_wcdma_struct.h
@@ -0,0 +1,40 @@
+#ifndef _GNSS_TC_WCDMA_STRUCT_H
+#define _GNSS_TC_WCDMA_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "gnss_tc_common_struct.h"
+
+
+/* GNSS_TC -> UL1 */
+/* This structure is for MSG_ID_GNSS_TC_UL1_SYNC_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ kal_uint8 ctrlFlag; /* refer to GNSS_TC_CTRL_FLAG_* .Indicate the time Sync mode. */
+ md_cellId_struct md_cellId;
+} gnss_tc_ul1_sync_req_struct;
+
+/* This structure is for MSG_ID_GNSS_TC_UL1_TIME_INFO_RSP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ cell_information_struct cell_info;
+ gnss_timeInformation_struct gnss_timeInfo;
+} gnss_tc_ul1_time_info_rsp_struct;
+
+/* UL1 -> GNSS_TC */
+/* This structure is for MSG_ID_GNSS_TC_UL1_SYNC_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* 0...65535 */
+ cell_information_struct cell_info;
+ gnss_timeInformation_struct gnss_timeInfo;
+} gnss_tc_ul1_sync_cnf_struct;
+
+
+#endif /*_GNSS_TC_WCDMA_STRUCT_H*/
+
diff --git a/mcu/interface/protocol/general/gpd_lib.h b/mcu/interface/protocol/general/gpd_lib.h
new file mode 100644
index 0000000..4b9ea55
--- /dev/null
+++ b/mcu/interface/protocol/general/gpd_lib.h
@@ -0,0 +1,324 @@
+/*******************************************************************************
+* 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:
+ * ---------
+ * gpd_lib.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!
+ *
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ ******************************************************************************/
+
+#ifndef GPD_LIB_H
+#define GPD_LIB_H
+/******************************************************************************/
+
+/******************************************************************************
+* SAMPLE CODE
+*******************************************************************************/
+
+// Basic
+/******************************************************************************
+// An example of combining two gpd linked lists and poll the first 3 nodes
+{
+ gpd_node* gpd_nodes_a; //gpd linked list A with 5 items
+ gpd_node* gpd_nodes_b; //gpd linked list B with 5 items
+
+ gpd_nodes_a = gpd_lib_add( gpd_nodes_a, gpd_nodes_b);
+ gpd_nodes_a = gpd_lib_poll( gpd_nodes_a, 3, &gpd_node_b);
+
+ gpd_lib_size( gpd_nodes_a); // 7
+ gpd_lib_size( gpd_nodes_b); // 3
+}
+*******************************************************************************/
+
+// List
+/******************************************************************************
+// An example of adding nodes to gpd_list and poll all items out
+{
+ gpd_list node_list; //a gpd_list
+ gpd_node* gpd_nodes; //gpd linked list with 5 items
+
+ gpd_lib_list_create ( &node_list ); // Initialize gpd_list struct
+ gpd_lib_list_add( &node_list, gpd_nodes); // add nodes into gpd_list
+
+ gpd_lib_list_size( &node_list ); // 5
+
+ gpd_nodes = gpd_lib_list_pollAll( &node_list ); // Poll all gpd nodes out
+
+ gpd_lib_size(gpd_nodes); // 5
+ gpd_lib_list_size( &node_list ); // 0
+}
+*******************************************************************************/
+
+// Iterator
+/******************************************************************************
+// An example of traversing a gpd linked list and remove nodes
+{
+ gpd_node* gpd_nodes; //The gpd linked list which is going to be traversed
+
+ gpd_itr itr;
+ gpd_node* node;
+ gpd_lib_iterator_create( &itr, &gpd_nodes ); // Create an iterator
+ while( (node = gpd_lib_iterator_next(&itr))!= NULL )
+ {
+ if ( gpd_lib_data_size(node) > 1500 )
+ {
+ node = gpd_lib_iterator_remove(&itr); // Remove gpd with 1500+ data length
+ }
+ }
+}
+*******************************************************************************/
+
+// Umts GPD Header and Tail
+/******************************************************************************
+// An example of adding and removing a header and a tail to an umts gpd node
+{
+ gpd_node* umts_dl_gpd; //A umts dl gpd node
+
+ kal_uint8 head[] = {0xAA,0xAA,0xAA};
+ kal_uint8 tail[] = {0xBB,0xBB,0xBB};
+
+ // Add header and tail
+ gpd_lib_umts_addHeader( umts_dl_gpd, head, 3 );
+ gpd_lib_umts_addTail( umts_dl_gpd, tail, 3 );
+
+ // Delete header and tail
+ gpd_lib_umts_delHeader( umts_dl_gpd, head, 3 );
+ gpd_lib_umts_delTail( umts_dl_gpd, tail, 3 );
+}
+*******************************************************************************/
+
+// Create Umts Single GPD and BD
+/******************************************************************************
+// An example of creating a single GPD with a single BD
+{
+ gpd_node* umts_dl_gpd;
+
+ kal_uint8 mem[1024];
+ kal_uint8 data[] = { 1, 2, 3, 4 };
+
+ if( gpd_lib_umts_sizeSingleGpdBd() > 1024 ) ASSERT(0);
+
+ umts_dl_gpd = gpd_lib_umts_createSingleGpdBd( mem, data, 4 );
+
+ //You get a gpd_node umts_dl_gpd
+}
+*******************************************************************************/
+
+/******************************************************************************/
+
+#include "kal_general_types.h"
+
+/******************************************************************************/
+
+//#define __GPD_LIB_DUBUG__
+
+/******************************************************************************/
+
+#define GPD_LIB_GPD_RX_HEADER_SIZE (0)
+#define GPD_LIB_GPD_RX_FOOTER_SIZE (8)
+
+/******************************************************************************/
+
+typedef struct _gpd_node
+{
+ struct
+ {
+ kal_uint32 hwo:1;
+ kal_uint32 bdp:1;
+ kal_uint32 reserved:6;
+ kal_uint32 checksum:8;
+ kal_uint32 allow_buff_size:16;
+ } w0;
+ union
+ {
+ kal_uint32* next_gpd_addr;
+ struct _gpd_node* next_gpd_node;
+ } w1;
+ union
+ {
+ kal_uint8* buff_addr;
+ kal_uint32* first_bd_addr;
+ } w2;
+ struct
+ {
+ kal_uint16 data_buff_size;
+ kal_uint16 reserved;
+ } w3;
+} gpd_node;
+
+/******************************************************************************/
+
+typedef struct _gpd_list
+{
+ gpd_node* first;
+ gpd_node* last;
+
+} gpd_list;
+
+/******************************************************************************/
+
+typedef struct _gpd_itr
+{
+ gpd_node* ptr;
+ gpd_node* pre;
+ gpd_node** root;
+
+} gpd_itr;
+
+/******************************************************************************/
+
+extern gpd_node* gpd_lib_add( gpd_node* root, gpd_node* nodes );
+extern gpd_node* gpd_lib_poll( gpd_node* root, kal_uint16 num, gpd_node** nodes );
+extern kal_uint16 gpd_lib_size( gpd_node* root );
+extern kal_bool gpd_lib_scan( gpd_node* root, kal_uint16* size, gpd_node** last );
+
+/******************************************************************************/
+
+extern gpd_list* gpd_lib_list_create( void* mem_ptr );
+extern void gpd_lib_list_add( gpd_list* list, gpd_node* nodes );
+extern gpd_node* gpd_lib_list_poll( gpd_list* list, kal_uint16 num );
+extern void gpd_lib_list_add_ex( gpd_list* list, gpd_node* first, gpd_node* last );
+extern gpd_node* gpd_lib_list_poll_ex( gpd_list* list, gpd_node** last );
+extern kal_uint16 gpd_lib_list_size( gpd_list* list );
+
+/******************************************************************************/
+
+extern gpd_itr* gpd_lib_iterator_create( void* mem_ptr, gpd_node** nodes );
+extern gpd_node* gpd_lib_iterator_next( gpd_itr* itr );
+extern kal_bool gpd_lib_iterator_hasNext( gpd_itr* itr );
+extern gpd_node* gpd_lib_iterator_remove( gpd_itr* itr );
+extern gpd_node* gpd_lib_iterator_cut( gpd_itr* itr );
+
+/******************************************************************************/
+
+#define gpd_lib_data_size(np) ((kal_uint16)((np)->w3.data_buff_size))
+#define gpd_lib_data_getAddr(np) ((kal_uint8*)((np)->w2.buff_addr))
+#define gpd_lib_data_setSize(np,size) ((np)->w3.data_buff_size = (kal_uint16)(size))
+extern kal_uint16 gpd_lib_data_totalsize( gpd_node* nodes );
+
+/******************************************************************************/
+
+extern void gpd_lib_umts_addHeader( gpd_node* node, kal_uint8* buff_ptr,
+ kal_uint16 buff_len );
+extern void gpd_lib_umts_delHeader( gpd_node* node, kal_uint8** buff_ptr );
+extern kal_uint8* gpd_lib_umts_peekHeader( gpd_node* node );
+extern void gpd_lib_umts_addTail( gpd_node* node, kal_uint8* buff_ptr,
+ kal_uint16 buff_len );
+extern void gpd_lib_umts_delTail( gpd_node* node, kal_uint8** buff_ptr );
+
+extern kal_uint8* gpd_lib_umts_getFirstBDDataPtr( gpd_node* node );
+extern kal_uint32* gpd_lib_umts_getFirstBDPeerBuffPtr( gpd_node* node );
+extern void gpd_lib_umts_clearFirstBDPeerBuffPtr( gpd_node* node );
+extern kal_uint8 gpd_lib_umts_getType( gpd_node* node );
+extern void gpd_lib_umts_setOutputAddr( gpd_node* node, kal_uint8* addr );
+
+/******************************************************************************/
+
+extern void gpd_lib_sdio_tx_initGpd(gpd_node * node);
+extern gpd_node* gpd_lib_sdio_tx_createGpd( void* mem_ptr, kal_uint8* buff_addr,
+ kal_uint16 buff_len );
+extern kal_uint8* gpd_lib_sdio_tx_getCCCIHeader( gpd_node* node );
+extern kal_uint8* gpd_lib_sdio_tx_getPayloadAddr(gpd_node * node);
+extern kal_uint16 gpd_lib_sdio_tx_getPayloadLen( gpd_node* node );
+extern kal_uint16 gpd_lib_sdio_tx_sizeGpd( void );
+
+/******************************************************************************/
+
+#if defined(__3G_NEW_DATA_PLANE_ARCH__) && defined(__GPD_LIB_TEST__)
+#include "uas_data_common.h"
+
+#define UMTSGPD_HEADER_BUFFER_SIZE 60 // used by module UPS
+#define UMTSGPD_FOOTER_BUFFER_SIZE 4 // used by module UPS
+
+typedef struct _umts_dl_gpd_flc
+{
+ umts_dl_gpd gpd;
+
+ kal_uint32 header_buffer[(UMTSGPD_HEADER_BUFFER_SIZE+3)/4];
+ kal_uint32 footer_buffer[(UMTSGPD_FOOTER_BUFFER_SIZE+3)/4];
+
+} umts_dl_gpd_flc;
+
+extern void gpd_lib_umts_initBd(umts_dl_bd * bd);
+extern void gpd_lib_umts_initGpd ( umts_dl_gpd* gpd );
+extern void gpd_lib_umts_initGpdFlc ( umts_dl_gpd_flc* gpd );
+extern void gpd_lib_umts_addBdtoGpd( umts_dl_gpd* gpd, umts_dl_bd* bd );
+extern gpd_node* gpd_lib_umts_createSingleGpdBd( void* mem_ptr,
+ kal_uint8* buff_addr, kal_uint16 buff_len );
+extern kal_uint16 gpd_lib_umts_sizeSingleGpdBd( void );
+#endif
+
+/******************************************************************************/
+#endif /* GPD_LIB_H */
+
diff --git a/mcu/interface/protocol/general/l4_ipc_msg_struct.h b/mcu/interface/protocol/general/l4_ipc_msg_struct.h
new file mode 100644
index 0000000..16c8b67
--- /dev/null
+++ b/mcu/interface/protocol/general/l4_ipc_msg_struct.h
@@ -0,0 +1,161 @@
+/*****************************************************************************
+* 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_ipc_msg_struct.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * This file is intends for IPC message 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 __L4_IPC_MSG_STRUCT_H__
+#define __L4_IPC_MSG_STRUCT_H__
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} dhcp_mbci_ip_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 SessionId;
+ kal_uint32 IPv4ConfigurationAvaliable;
+ kal_uint32 IPv6ConfigurationAvaliable;
+ kal_uint32 IPv4AddressCount;
+ kal_uint32 IPv4AddressOffset;
+ kal_uint32 IPv6AddressCount;
+ kal_uint32 IPv6AddressOffset;
+ kal_uint32 IPv4GatewayOffset;
+ kal_uint32 IPv6GatewayOffset;
+ kal_uint32 IPv4DnsServerCount;
+ kal_uint32 IPv4DnsServerOffset;
+ kal_uint32 IPv6DnsServerCount;
+ kal_uint32 IPv6DnsServerOffset;
+ kal_uint32 IPv4Mtu;
+ kal_uint32 IPv6Mtu;
+ kal_uint8 DataBuffer[88];
+} dhcp_mbci_ip_config_rsp_struct, dhcp_mbci_ip_config_ind_struct;
+
+/* for GPS desense */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 tx_freq[64]; //MAX_NUM_OF_HOPPING_FREQ defined in rr_mpal_interface.h
+} l4c_rf_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+} l4c_rf_info_req_struct;
+
+#ifndef __MTK_TARGET__
+//for L4C UT MSG_ID_L4C_REGIONAL_PHONE_MODE_REQ, align to CCCI_COMMON_ILM_4B
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint16 W0;
+} l4c_regional_phone_mode_req_struct;
+#endif //#ifndef __MTK_TARGET__
+
+#endif
diff --git a/mcu/interface/protocol/general/l4c2abm_struct.h b/mcu/interface/protocol/general/l4c2abm_struct.h
new file mode 100644
index 0000000..617e488
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c2abm_struct.h
@@ -0,0 +1,463 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * L4C2ABM_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of ABM and L4C.
+ *
+ * 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 _L4C2ABM_STRUCT_H
+#define _L4C2ABM_STRUCT_H
+//#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+
+//#include "ps2sat_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "custom_mmi_default_value.h"
+//#include "app_ltlcom.h"
+
+#include "kal_public_api.h"
+#include "tcm_api.h"
+#include "ps_public_enum.h"
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool result;
+ kal_uint16 err_cause;
+ kal_uint8 profile_id;
+ /* for __APP_SECONDARY_PDP_SUPPORT__ */
+ kal_uint8 context_id;
+ kal_uint8 qos_id; // Qos Profile ID
+ kal_bool is_qos_fulfilled; // Flag indicates whether the requested QoS is fulfilled by established bearer
+ /* ~for __APP_SECONDARY_PDP_SUPPORT__ */
+ kal_uint8 ip_addr[4];
+ kal_uint8 pri_dns_addr[4];
+ kal_uint8 sec_dns_addr[4];
+ nvram_editor_qos_struct nwk_neg_qos; //__GPRS_BEARER_REPORT_NEGOTIATED_QOS__
+} l4c_ps_abm_setup_rsp_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool result;
+ kal_uint16 err_cause;
+ kal_uint8 profile_id;
+ /* Following is for __APP_SECONDARY_PDP_SUPPORT__ */
+ kal_uint8 qos_id; // Qos Profile ID
+ kal_uint8 context_id;
+} l4c_ps_abm_disc_rsp_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 profile_id;
+ /* Following is for __APP_SECONDARY_PDP_SUPPORT__ */
+ kal_uint8 qos_id; // Qos Profile ID
+ kal_uint8 context_id;
+ kal_uint16 err_cause;
+} l4c_ps_abm_disc_ind_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool result; // result
+ kal_uint16 err_cause; // error cause
+ kal_uint8 context_id; // context ID
+} l4c_ps_abm_qos_tft_modify_rsp_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool result;
+ kal_uint16 err_cause;
+ kal_uint8 ip_addr[4];
+ kal_uint8 pri_dns_addr[4];
+ kal_uint8 sec_dns_addr[4];
+ kal_uint16 mtu;
+} l4c_cc_abm_setup_rsp_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool result;
+ kal_uint16 err_cause;
+} l4c_cc_abm_disc_rsp_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 csd_profile_id;
+ kal_uint16 err_cause;
+} l4c_cc_abm_disc_ind_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+} l4cabm_start_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool result;
+} l4c_abm_disallow_gprs_and_csd_rsp_struct;
+
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool result;
+} l4c_abm_allow_gprs_and_csd_rsp_struct;
+
+#ifdef __SATCE__
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint8 msg_len;
+ kal_uint8 nw_acct_id; //MAUI_02866379, mtk02285
+ 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;
+} l4cabm_sate_set_gprs_account_info_req_struct;
+#endif /* __SATCE__ */
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ kal_uint8 profile_type;
+#ifdef __SATCE__
+ l4cabm_sate_set_gprs_account_info_req_struct sate_account_info;
+#endif /* __SATCE__ */
+} l4cabm_set_gprs_account_info_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ kal_uint8 profile_type;
+ kal_uint8 profile_id;
+} l4cabm_get_gprs_account_info_req_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 src_id;
+ l4c_gprs_account_info_struct gprs_account_info;
+} l4cabm_get_gprs_account_info_rsp_struct;
+
+// Karen
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool result;
+ kal_uint16 err_cause;
+ kal_uint8 profile_id;
+ kal_uint8 qos_id; // Qos Profile ID
+ kal_uint8 context_id;
+ kal_bool is_qos_fulfilled; // Flag indicates whether the requested QoS is fulfilled by established bearer
+} l4c_ps_abm_reactivate_rsp_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 profile_id;
+ kal_uint8 context_id;
+ nvram_editor_qos_struct nwk_neg_qos;
+}l4c_ps_abm_pdp_modify_ind_struct; //__GPRS_BEARER_REPORT_NEGOTIATED_QOS__
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 connect_type;
+ kal_uint8 call_id;
+ kal_uint8 context_id;
+}l4c_abm_dialup_connect_ind_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 connect_type;
+ kal_uint8 call_id;
+ kal_uint8 context_id;
+}l4c_abm_dialup_connecting_ind_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 context_id;
+ kal_uint64 tx_before_reset;
+ kal_uint64 rx_before_reset;
+}l4c_ps_abm_dialup_info_ind_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 connect_type;
+ kal_uint8 call_id;
+ kal_uint8 context_id;
+}l4c_abm_dialup_disc_ind_struct;
+
+typedef struct {
+ kal_uint64 tx;
+ kal_uint64 rx;
+ kal_uint8 context_id;
+} l4c_ps_abm_single_pdp_call_history_info_struct;
+
+typedef struct {
+ kal_uint8 context_id;
+ kal_bool reset_tx;
+ kal_bool reset_rx;
+} l4c_ps_abm_single_pdp_call_history_reset_cmd_struct;
+
+typedef struct {
+ l4c_ps_abm_single_pdp_call_history_reset_cmd_struct original_cmd;
+ l4c_ps_abm_single_pdp_call_history_info_struct volume_before_reset;
+} l4c_ps_dialup_info_reset_result_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 serial_num;
+ kal_uint8 total_reset_num;
+ l4c_ps_dialup_info_reset_result_struct result[MAX_GPRS_DIALUP_NUM];
+}l4c_ps_abm_reset_dialup_info_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 status; /* l4c_rac_response_enum */
+ kal_uint8 plmn[6+1];
+ kal_uint8 gsm_state;
+ kal_uint8 gprs_state;
+ kal_uint8 gprs_status; /* l4c_gprs_status_enum */
+ kal_uint8 rat;
+ kal_uint8 cell_support_egprs;
+ kal_uint8 lac[2];
+} l4c_ps_abm_nw_attach_ind_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 connect_type;
+ kal_uint8 call_id;
+ kal_uint8 context_id;
+ kal_bool result;
+}l4c_abm_dialup_disc_rsp_struct;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 serial_num;
+ kal_uint8 total_context_id;
+ l4c_ps_abm_single_pdp_call_history_info_struct result[MAX_GPRS_DIALUP_NUM];
+}l4c_ps_abm_get_dialup_info_rsp_struct;
+
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 gprs_status;
+}l4c_abm_gprs_status_ind_struct;
+
+#endif /* ~_L4C2ABM_STRUCT_H */
+
+
diff --git a/mcu/interface/protocol/general/l4c2sm_struct.h b/mcu/interface/protocol/general/l4c2sm_struct.h
new file mode 100644
index 0000000..2d75ba8
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c2sm_struct.h
@@ -0,0 +1,115 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * L4C2SM_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of SM and L4C.
+ *
+ * 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 _L4C2SM_STRUCT_H
+#define _L4C2SM_STRUCT_H
+
+#include "kal_general_types.h"
+#include "irat_common_struct.h"
+#include "sm_esm_struct.h"
+
+
+#endif // ~ _L4C2SM_STRUCT_H
+
+
diff --git a/mcu/interface/protocol/general/l4c2tst_enum.h b/mcu/interface/protocol/general/l4c2tst_enum.h
new file mode 100644
index 0000000..f284b4a
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c2tst_enum.h
@@ -0,0 +1,89 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4c2tst_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * 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!!
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+#ifndef _L4C2TST_ENUM_H
+#define _L4C2TST_ENUM_H
+
+typedef enum
+{
+ L4C_PORT_NO_ERROR,
+ L4C_PORT_UNKNOWN_ERROR,
+ L4C_PORT_OPEN_FAIL_HOLDING_PORT, // is holding another port
+ L4C_PORT_OPEN_FAIL_PORT_ALREADY_OPEN,
+ L4C_PORT_OPEN_FAIL_PORT_NOT_FREE, //the port is currently owned by other task.
+ L4C_PORT_CLOSE_FAIL_NOT_OWNER //is not the owner of the port
+}l4c_port_result_enum;
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/l4c2tst_struct.h b/mcu/interface/protocol/general/l4c2tst_struct.h
new file mode 100644
index 0000000..3f731a8
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c2tst_struct.h
@@ -0,0 +1,137 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4c2tst_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.
+*
+********************************************************************************/
+
+
+#ifndef _L4C2TST_STRUCT_H
+#define _L4C2TST_STRUCT_H
+
+#include "dcl.h"
+#include "kal_public_defs.h"
+#include "l4c2dhl_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ DCL_DEV port;
+ kal_uint32 baud_rate;
+} l4c_open_uart_port_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+} l4c_open_uart_port_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ DCL_DEV port;
+} l4c_close_uart_port_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+} l4c_close_uart_port_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ DCL_DEV l1_port;
+ DCL_DEV ps_port;
+ kal_uint8 mode;
+} l4c_change_uart_port_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result;
+} l4c_change_uart_port_cnf_struct;
+
+#endif
+
diff --git a/mcu/interface/protocol/general/l4c2uegw_struct.h b/mcu/interface/protocol/general/l4c2uegw_struct.h
new file mode 100644
index 0000000..c9d562a
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c2uegw_struct.h
@@ -0,0 +1,140 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * L4C2UEGW_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of UEGW and L4C.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _L4C2UEGW_STRUCT_H
+#define _L4C2UEGW_STRUCT_H
+
+#ifndef _TST_SAP_H
+#include "tst_sap.h"
+#endif
+
+typedef enum {
+ VMMI_URC_CHANNEL = 0,
+ VMMI_CHANNEL_START,
+ VMMI_DEFAULT_CHANNEL = VMMI_CHANNEL_START,
+ VMMI_EIF_CHANNEL,
+ VMMI_CHANNEL_END,
+} VmmiChannelEnum;
+
+#define MAX_VMMI_SIM_NUM 2
+#define MAX_VMMI_CHANNEL_NUM (VMMI_CHANNEL_END - VMMI_CHANNEL_START) //Not include URC channel
+
+typedef struct
+{
+ tst_module_string_inject_struct tst_inject;
+ kal_uint8 ch_id;
+} l4uegw_at_response_ind_struct;
+
+typedef l4uegw_at_response_ind_struct l4vmmi_at_response_ind_struct;
+typedef l4uegw_at_response_ind_struct vmmi_atp_io_at_cmd_req_struct;
+
+#endif
+
diff --git a/mcu/interface/protocol/general/l4c2uem_struct.h b/mcu/interface/protocol/general/l4c2uem_struct.h
new file mode 100644
index 0000000..c2c1d78
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c2uem_struct.h
@@ -0,0 +1,277 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4c2uem_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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 : l4c2uem_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _L4C2UEM_STRUCT_H
+#define _L4C2UEM_STRUCT_H
+
+#include "ps_public_struct.h"
+#ifdef __MULTI_LEVEL_BACKLIGHT_SUPPORT__
+#include "custom_hw_default.h"
+#endif
+#include "kal_public_defs.h"
+
+#define MAX_MELODY_FILE_NAME 50
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} l4cuem_startup_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 response;
+ kal_uint8 cause;
+} l4cuem_startup_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 type;
+ kal_uint8 data1;
+ kal_uint8 data2;
+ kal_uint8 data3;
+} l4cuem_set_profile_req_struct;
+
+typedef struct {
+
+ kal_uint8 mode;
+ kal_uint8 melody[7];
+ kal_uint8 keytone[7];
+ kal_uint8 speech[7];
+ kal_uint8 mic;
+ kal_uint8 sidetone;
+
+} l4cuem_audio_profile_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 mode;
+ kal_uint8 melody[7];
+ kal_uint8 keytone[7];
+ kal_uint8 speech[7];
+ kal_uint8 mic;
+ kal_uint8 sidetone;
+
+} l4cuem_set_audio_profile_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 type;
+ kal_uint8 response;
+ kal_uint8 cause;
+} l4cuem_set_profile_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 response;
+ kal_uint8 cause;
+} l4cuem_set_audio_profile_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 response;
+ kal_uint8 cause;
+} l4cuem_set_audio_param_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 type;
+ kal_uint8 index;
+ kal_uint16 length;
+ kal_uint8 imelody[300];
+} l4cuem_store_imelody_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 response;
+ kal_uint8 cause;
+} l4cuem_store_imelody_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 index;
+} l4cuem_delete_imelody_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 response;
+ kal_uint8 cause;
+} l4cuem_delete_imelody_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint16 file_name[MAX_MELODY_FILE_NAME];
+ kal_uint8 play_style;
+ kal_uint16 identifier;
+}
+l4cuem_audio_play_by_name_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint16 file_name[MAX_MELODY_FILE_NAME];
+}
+l4cuem_audio_stop_by_name_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result;
+}
+l4cuem_audio_play_by_name_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result;
+}
+l4cuem_audio_stop_by_name_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+
+ kal_uint32 PWM1_freq_Level_Info[5];
+ kal_uint32 PWM1_duty_Level_Info[5];
+ kal_uint32 PWM2_freq_Level_Info[5];
+ kal_uint32 PWM2_duty_Level_Info[5];
+ kal_uint32 PWM3_freq_Level_Info[5];
+ kal_uint32 PWM3_duty_Level_Info[5];
+
+ kal_uint8 MainLCD_Contrast_Level_Info[15];
+ kal_uint8 MainLCD_Bias_Level_Info[5];
+ kal_uint8 MainLCD_Linerate_Level_Info[5];
+ kal_uint8 MainLCD_Temp_Level_Info[5];
+
+ kal_uint8 SubLCD_Contrast_Level_Info[15];
+ kal_uint8 SubLCD_Bias_Level_Info[5];
+ kal_uint8 SubLCD_Linerate_Level_Info[5];
+ kal_uint8 SubLCD_Temp_Level_Info[5];
+
+ kal_uint32 Battery_Level_Info[10];
+#ifdef __MULTI_LEVEL_BACKLIGHT_SUPPORT__
+ kal_uint32 bl_PWM_freq_Level_Info[PWM_MAX_BACKLIGHT_LEVEL];
+ kal_uint32 bl_PWM_duty_Level_Info[PWM_MAX_BACKLIGHT_LEVEL];
+#endif
+} l4cuem_set_hw_level_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 response;
+ kal_uint8 cause;
+} l4cuem_set_hw_level_cnf_struct;
+
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/l4c_as_inter_core_def.h b/mcu/interface/protocol/general/l4c_as_inter_core_def.h
new file mode 100644
index 0000000..ec3bda7
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_as_inter_core_def.h
@@ -0,0 +1,82 @@
+/*****************************************************************************
+* 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_as_inter_core_def.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!!
+ *============================================================================
+ ******************************************************************************/
+
+#ifndef __L4C_AS_INTER_CORE_DEF_H__
+#define __L4C_AS_INTER_CORE_DEF_H__
+
+#define L4C_POWER_THRESHOLD_NUM 16
+#define MAX_L4C_CUSTOM_BAR_FREQ_NUM 3
+
+#ifndef UNIT_TEST
+ #define MAX_L4C_CUSTOM_BAR_CELL_NUM 10
+#else
+ #define MAX_L4C_CUSTOM_BAR_CELL_NUM 4
+#endif
+
+#endif /* __L4C_AS_INTER_CORE_DEF_H__ */
diff --git a/mcu/interface/protocol/general/l4c_as_inter_core_struct.h b/mcu/interface/protocol/general/l4c_as_inter_core_struct.h
new file mode 100644
index 0000000..e87f4aa
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_as_inter_core_struct.h
@@ -0,0 +1,232 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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_as_inter_core_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __L4C_AS_INTER_CORE_STRUCT_H__
+#define __L4C_AS_INTER_CORE_STRUCT_H__
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "ps_public_def.h"
+#include "l4c_as_inter_core_def.h"
+
+typedef enum
+{
+ GSM_RSSI = 0,
+ UTRAN_RSCP,
+ UTRAN_ECNO,
+ LTE_RSRP,
+ LTE_RSRQ,
+ LTE_RSSNR,
+ C2K_1X_RSSI = 6,
+ C2K_1X_ECIO,
+ C2K_EVDO_RSSI,
+ C2K_EVDO_ECIO = 9,
+ MAX_SIG_TYPE,
+}sig_type_enum;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_power_level_on;
+} l4c_las_cell_power_meas_onoff_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sig_type_enum sig_type;
+ kal_uint8 rsrp_threshold_num;
+ kal_uint8 rsrq_threshold_num;
+ kal_uint8 rs_snr_threshold_num;
+ kal_int16 rsrp_threshold[L4C_POWER_THRESHOLD_NUM];
+ kal_int16 rsrq_threshold[L4C_POWER_THRESHOLD_NUM];
+ kal_int16 rs_snr_threshold[L4C_POWER_THRESHOLD_NUM]; /* Unit - qdbm */
+ kal_uint32 timer; /* Unit - ms*/
+} l4c_cell_power_threshold_config_req_struct;
+
+
+/* MSG_ID_L4C_ERRC_CUSTOM_BAR_LIST_REQ */
+/* action_enum*/
+typedef enum
+{
+ ERRC_CUSTOM_BAR_LIST_ADD,
+ ERRC_CUSTOM_BAR_LIST_DELETE,
+ ERRC_CUSTOM_BAR_LIST_QUERY
+}custom_bar_list_action_enum;
+
+/* cause_enum*/
+typedef enum
+{
+ ERRC_CUSTOM_BAR_CAUSE_IDLE_CONNECTED, //ALPS05362947
+ ERRC_CUSTOM_BAR_CAUSE_CHECK_NEIGHBOR_SIGNAL, //extended for ALPS05370680
+ ERRC_CUSTOM_BAR_CAUSE_MAX
+}custom_bar_cause_enum;
+
+typedef struct
+{
+ kal_uint32 earfcn;
+ kal_uint16 bar_time; /* Unit - sec*/
+}errc_bar_freq_info_struct;
+
+typedef struct
+{
+ kal_uint32 earfcn;
+ kal_uint16 pci;
+ kal_uint16 bar_time; /* Unit - sec*/
+}errc_bar_cell_info_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ custom_bar_list_action_enum action;
+ custom_bar_cause_enum bar_cause;
+
+ /*bar freq info*/
+ kal_bool bar_freq_list_valid;//could be ignored
+ kal_uint8 bar_freq_num;
+ errc_bar_freq_info_struct bar_freq_info[MAX_L4C_CUSTOM_BAR_FREQ_NUM];//currently, max 3 earfcn
+ /*bar cell info*/
+ kal_bool bar_cell_list_valid;//could be ignored
+ kal_uint8 bar_cell_num;
+ errc_bar_cell_info_struct bar_cell_info[MAX_L4C_CUSTOM_BAR_CELL_NUM]; // max 4 lte cells for target
+} l4c_errc_custom_bar_list_req_struct;
+
+/* MSG_ID_L4C_ERRC_CUSTOM_BAR_LIST_CNF */
+typedef l4c_errc_custom_bar_list_req_struct l4c_errc_custom_bar_list_cnf_struct;//note that, barred freq/cell info is only provided when (req_action == LIST_QUERY)
+
+/*notify L4C about customer bar list clear by modem*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} l4c_errc_custom_bar_list_clear_ntf_struct;
+
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool ims_volte_support; /* 0 - VoLTE not supported, 1 - VoLTE supported*/
+ kal_bool ims_vonr_support; /* 0 - VoNR not supported, 1 - VoNR supported*/
+} l4c_errc_ims_config_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sig_type_enum sig_type;
+ kal_uint8 num_thresholds; // the number of thresholds
+ kal_int32 array_threshold[L4C_POWER_THRESHOLD_NUM];
+}l4cas_set_power_threshold_config_common_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 ssRsrp_threshold_num;
+ kal_uint8 ssRsrq_threshold_num;
+ kal_uint8 ssSinr_threshold_num;
+ kal_int16 ssRsrp_threshold[L4C_POWER_THRESHOLD_NUM];
+ kal_int16 ssRsrq_threshold[L4C_POWER_THRESHOLD_NUM];
+ kal_int16 ssSinr_threshold[L4C_POWER_THRESHOLD_NUM]; /* Unit - qdbm */
+ kal_uint32 timer; /* Unit - ms*/
+} l4c_nrrc_cell_power_threshold_config_req_struct;
+
+
+#endif /* __L4C_AS_INTER_CORE_STRUCT_H__ */
diff --git a/mcu/interface/protocol/general/l4c_aux_struct.h b/mcu/interface/protocol/general/l4c_aux_struct.h
new file mode 100644
index 0000000..5aa7297
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_aux_struct.h
@@ -0,0 +1,266 @@
+/*****************************************************************************
+* 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_aux_struct.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _L4C_AUX_STRUCT_H
+#define _L4C_AUX_STRUCT_H
+
+//#include "ps_public_enum.h"
+//#include "l4c2uem_struct.h"
+//#include "nvram_common_defs.h"
+//#include "ps_public_struct.h"
+
+//#include "l4c2phb_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "l4c2abm_struct.h"
+//#include "l4c_common_enum.h"
+//#include "mcd_l4_common.h"
+//#include "nvram_common_defs.h"
+//#include "mmi_l3_enums.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "l1audio.h"
+
+#ifndef NVRAM_PHB_SIZE
+#define NVRAM_PHB_SIZE (54+MAX_PS_NAME_SIZE)
+#endif
+
+#ifndef PHB_EMAIL_SIZE
+#define PHB_EMAIL_SIZE 66
+#endif
+#ifndef PHB_ANR_SIZE
+#define PHB_ANR_SIZE 49
+#endif
+#ifndef GAS_MAX_ENTRIES_COUNT
+#define GAS_MAX_ENTRIES_COUNT 5
+#endif
+
+#ifndef RTT_STRING_SIZE
+#define RTT_STRING_SIZE 256
+#endif
+
+//#define DTMF_SEPARATOR rmmi_char_p
+#define MAX_DTMF_LENGTH 10
+
+#define L4C_DEFAULT_NPI 1
+#define L4C_DEFAULT_ODD_EVEN_IND 1
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 codec;
+
+} l4c_med_voice_codec_ind_struct;
+
+typedef ilm_L4C_ERTT_STRING_t l4c_audio_erttstr_struct;
+
+#endif /* l4c_aux_struct.h*/
+
+
diff --git a/mcu/interface/protocol/general/l4c_ipcore_struct.h b/mcu/interface/protocol/general/l4c_ipcore_struct.h
new file mode 100644
index 0000000..683d16a
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_ipcore_struct.h
@@ -0,0 +1,89 @@
+/*****************************************************************************
+* 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) 2017
+*
+* 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_ipcore_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct between L4C and IPCORE
+ *
+ * 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!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _L4C_IPCORE_STRUCT_H
+#define _L4C_IPCORE_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_ipcore_ul_throttle_action_enum ul_throttle_action;
+} l4c_ipcore_ul_throttle_req_struct;
+
+#endif /* _L4C_IPCORE_STRUCT_H */
diff --git a/mcu/interface/protocol/general/l4c_lbs_struct.h b/mcu/interface/protocol/general/l4c_lbs_struct.h
new file mode 100644
index 0000000..aae24d0
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_lbs_struct.h
@@ -0,0 +1,286 @@
+/*****************************************************************************
+* 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_lbs_struct.h
+ *
+ * Project:
+ * --------
+ * MT6290
+ *
+ * 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!
+ *------------------------------------------------------------------------------
+ * 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 _L4C_LBS_STRUCT_H
+#define _L4C_LBS_STRUCT_H
+
+#include "kal_general_types.h"
+#include "l3_inc_enums_public.h"
+#if defined(__AGPS_CONTROL_PLANE__) && !defined(__MMI_FMI__)
+#include "ss_asn.h"
+#endif
+
+/* A-GPS Control Plane LCS Service */
+#if defined(__AGPS_CONTROL_PLANE__) && !defined(__MMI_FMI__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ SS2_LocationNotificationArg notification;
+ kal_uint8 ss_id;
+} lbs_mtlr_begin_ind_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ SS2_LocationNotificationRes response;
+ kal_uint8 ss_id;
+} lbs_mtlr_begin_res_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 ss_id;
+} lbs_mtlr_begin_res_rsp_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ SS2_LCS_AreaEventRequestArg aerq;
+ kal_uint8 ss_id;
+} lbs_aerq_begin_ind_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 ss_id;
+} lbs_aerq_begin_res_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 ss_id;
+} lbs_aerq_begin_res_rsp_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ SS2_LCS_AreaEventReportArg aerp;
+ kal_uint8 ss_id;
+ kal_uint8 is_initial;
+ kal_uint8 rat_info; //for CISS to recognize the operating rat: 0:2/3G, 1:4G
+} lbs_aerp_begin_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint8 ss_id;
+} lbs_aerp_begin_rsp_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 ss_id;
+} lbs_aerp_end_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+} lbs_aerp_end_rsp_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ SS2_LCS_AreaEventCancellationArg aecl;
+ kal_uint8 ss_id;
+} lbs_aecl_begin_ind_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 ss_id;
+} lbs_aecl_begin_res_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 ss_id;
+} lbs_aecl_begin_res_rsp_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ SS2_LCS_MOLRArg molr;
+ kal_uint8 ss_id;
+ kal_uint8 is_initial;
+ kal_uint8 rat_info; //for CISS to recognize the operating rat: 0:2/3G, 1:4G
+} lbs_molr_begin_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ SS2_LCS_MOLRRes molr_res;
+ kal_uint8 ss_id;
+} lbs_molr_begin_rsp_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 ss_id;
+} lbs_molr_end_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+} lbs_molr_end_rsp_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 enable;
+} agps_enable_disable_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 sib15_current_deciphering_key[7];
+ kal_uint8 sib15_next_deciphering_key[7];
+ kal_uint8 sib15_ciphering_key_flag;
+} agps_key_update_req_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 is_abort_molr;
+} agps_cp_abort_req_struct;
+#endif /* defined(__AGPS_CONTROL_PLANE__) */
+
+#ifdef __AGPS_SUPPORT__
+/* below codes are for auto-test */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+} agps_auto_test_ind_struct;
+
+typedef agps_auto_test_ind_struct agps_cp_up_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 response;
+} agps_mtlr_response_ind_struct;
+/* above are for GPS auto test */
+#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 state;//0=out of service 1=in service
+} l4c_lbs_service_state_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 state;//0=local or unknown 1=roaming
+} l4c_lbs_roaming_state_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 state;//0=disconnected or unknown 1=connected
+} l4c_lbs_data_conn_state_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 rat_mode;//0=non-4G , 1=4G
+} l4c_lbs_current_rat_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 active_sim;
+ rat_enum active_rat;
+} l4c_lbs_active_sim_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool emt_ongoing;
+} l4c_lbs_emt_info_ind_struct;
+
+#endif /* l4c_lbs_struct.h*/
+
+
diff --git a/mcu/interface/protocol/general/l4c_msg_hdlr_defs.h b/mcu/interface/protocol/general/l4c_msg_hdlr_defs.h
new file mode 100644
index 0000000..d022ce5
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_msg_hdlr_defs.h
@@ -0,0 +1,818 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4c_msg_hdlr_defs.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * l4 related message / handler function mapping
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+//#ifdef __MOD_CSM__
+L4C_CNF(MSG_ID_L4CCSM_CC_STARTUP_CNF, l4ccsm_cc_startup_cnf_hdlr)
+//#ifdef __MOD_SMU__
+L4C_CNF(MSG_ID_L4CCSM_CC_ACM_RESET_CNF,l4ccsm_cc_acm_reset_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_ACMMAX_SET_CNF,l4ccsm_cc_acmmax_set_cnf_hdlr)
+//#endif /* __MOD_SMU__ */
+L4C_CNF(MSG_ID_L4CCSM_CC_LAST_CCM_RESET_CNF,l4ccsm_cc_ccm_reset_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_CRSS_CNF,l4ccsm_cc_crss_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_CALL_DEFLECTION_CNF,l4ccsm_cc_call_deflection_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_START_DTMF_CNF,l4ccsm_cc_start_dtmf_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_STOP_DTMF_CNF,l4ccsm_cc_stop_dtmf_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_CALL_ACCEPT_CNF,l4ccsm_cc_call_accept_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_CALL_MODIFY_CNF,l4ccsm_cc_call_modify_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_CALL_SETUP_CNF,l4ccsm_cc_call_setup_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_CALL_DISC_CNF,l4ccsm_cc_call_disc_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_EMERGENCY_CALL_SETUP_CNF,l4ccsm_cc_call_setup_cnf_hdlr) /* not implemented yet */
+L4C_CNF(MSG_ID_L4CCSM_CC_SAT_SETUP_CNF,l4ccsm_cc_sat_setup_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_SAT_SEND_DTMF_CNF,l4ccsm_cc_sat_send_dtmf_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CC_UPDATE_ALS_CNF,l4ccsm_cc_update_als_cnf_hdlr)
+#if defined(__IMS_SUPPORT__)
+L4C_CNF(MSG_ID_L4CCSM_CC_SRVCC_TRANSFER_CNF,l4ccsm_cc_srvcc_transfer_cnf_hdlr)
+#endif
+
+L4C_CNF(MSG_ID_L4CCSM_CISS_STARTUP_CNF,l4ccsm_ciss_startup_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_SS_PARSE_CNF,l4ccsm_ciss_ss_parse_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_CF_END_CNF,l4ccsm_ciss_cf_end_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_CW_END_CNF,l4ccsm_ciss_cw_end_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_CB_END_CNF,l4ccsm_ciss_cb_end_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_EMLPP_END_CNF,l4ccsm_ciss_emlpp_end_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_CLI_END_CNF,l4ccsm_ciss_cli_end_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_CCBS_END_CNF,l4ccsm_ciss_ccbs_end_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_PUSSR_END_CNF,l4ccsm_ciss_pussr_end_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_USSR_END_CNF,l4ccsm_ciss_ussd_end_cnf_hdlr) /* not implemented yet */
+L4C_CNF(MSG_ID_L4CCSM_CISS_USSN_END_CNF,l4ccsm_ciss_ussn_end_cnf_hdlr)
+//#ifdef __SAT__
+L4C_CNF(MSG_ID_L4CCSM_CISS_SIM_END_CNF,l4ccsm_ciss_sim_end_cnf_hdlr)
+//#endif
+
+//SSAGPS
+#ifdef __AGPS_CONTROL_PLANE__
+L4C_CNF(MSG_ID_L4CCSM_CISS_AERP_END_CNF,l4ccsm_ciss_aerp_end_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CCSM_CISS_MOLR_END_CNF,l4ccsm_ciss_molr_end_cnf_hdlr)
+#endif
+//#endif /* __MOD_CSM__ */
+
+//#ifdef __MOD_UEM__
+L4C_CNF(MSG_ID_L4CUEM_STARTUP_CNF,l4cuem_startup_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CUEM_SET_AUDIO_PROFILE_CNF,l4cuem_set_audio_profile_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CUEM_SET_AUDIO_PARAM_CNF,l4cuem_set_audio_param_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CUEM_SET_HW_LEVEL_CNF,l4cuem_set_hw_level_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CUEM_AUDIO_PLAY_BY_NAME_CNF,l4cuem_audio_play_by_name_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CUEM_AUDIO_STOP_BY_NAME_CNF,l4cuem_audio_stop_by_name_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CUEM_AUDIO_PLAY_BY_STRING_CNF,l4cuem_audio_play_by_string_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CUEM_AUDIO_STOP_BY_STRING_CNF,l4cuem_audio_stop_by_string_cnf_hdlr)
+//#endif /* __MOD_UEM__ */
+
+#ifdef __MOD_RAC__
+L4C_CNF(MSG_ID_L4CRAC_ACT_CNF,l4crac_act_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_REG_CNF,l4crac_reg_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_PS_REG_CNF,l4crac_ps_reg_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_DEREG_CNF,l4crac_dereg_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_PLMN_LIST_CNF,l4crac_plmn_list_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_CLASS_CHANGE_CNF,l4crac_class_change_cnf_hdlr)
+/* MOLY00083802 remove band related codes in RAC */
+L4C_CNF(MSG_ID_L4CRAC_RFOFF_CNF,l4crac_rfoff_cnf_hdlr)
+
+#ifdef __GEMINI__
+L4C_CNF(MSG_ID_L4CRAC_RSIM_AUTH_ABORT_CNF,l4crac_rsim_auth_abort_cnf_hdlr)
+L4C_IND(MSG_ID_L4CRAC_AUTH_FINISH_IND, l4crac_auth_finish_ind_hdlr)
+L4C_CNF(MSG_ID_L4C_AKA_RESOURCE_RELEASE_CNF,l4c_aka_resource_release_cnf_hdlr)
+L4C_IND(MSG_ID_L4CRAC_VIRTUAL_MODE_IND, l4crac_virtual_mode_ind_hdlr)
+#endif
+L4C_CNF(MSG_ID_L4CRAC_SET_ROAMING_MODE_CNF,l4crac_set_roaming_mode_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_PLMN_SEARCH_CNF,l4crac_plmn_search_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_RAT_MODE_CNF,l4crac_set_rat_mode_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_PLMN_LIST_STOP_CNF,l4crac_plmn_list_stop_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_PREFER_RAT_CNF,l4crac_set_prefer_rat_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_GET_PREFER_RAT_CNF,l4crac_get_prefer_rat_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_END_PS_DATA_SESSION_CNF,l4crac_end_ps_data_session_cnf_hdlr) //mtk02475: for Fast Dormancy
+L4C_CNF(MSG_ID_L4CRAC_CSG_LIST_CNF,l4crac_csg_list_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_CSG_LIST_STOP_CNF,l4crac_csg_list_stop_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_SMS_PREFERENCE_CNF, l4crac_set_sms_preference_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_VOICE_DOMAIN_PREFERENCE_CNF, l4crac_set_voice_domain_preference_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_UE_USAGE_SETTING_CNF, l4crac_set_ue_usage_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_UE_MODE_CNF, l4crac_set_ue_mode_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_IMS_VOICE_AVAILABILITY_CNF, l4crac_set_ims_voice_availability_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_IMS_SMS_AVAILABILITY_CNF, l4crac_set_ims_sms_availability_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_IMS_REG_STATUS_UPDATE_CNF, l4crac_ims_reg_status_update_cnf_hdlr)
+#if defined(__2STAGE_NW_SELECTION__)
+L4C_CNF(MSG_ID_L4CRAC_SUSP_RESU_UPDATE_CNF,l4crac_susp_resu_update_cnf_hdlr)
+#endif
+#ifdef __VOLTE_SUPPORT__
+L4C_CNF(MSG_ID_L4CRAC_SET_MM_IMS_VOICE_TERMINATION_CNF, l4crac_set_ims_voice_termination_cnf_hdlr)
+#endif /* __VOLTE_SUPPORT__ */
+L4C_CNF(MSG_ID_L4CRAC_SET_SMS_OVER_SGS_CNF, l4crac_set_sms_over_sgs_cnf_hdlr)
+
+L4C_CNF(MSG_ID_L4CRAC_DISABLE_EUTRAN_CNF, l4crac_disable_eutran_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_HVOLTE_MODE_CNF, l4crac_set_hvolte_mode_cnf_hdlr)
+L4C_IND(MSG_ID_L4CRAC_REG_COMBINED_CAUSE_IND, l4crac_reg_combined_cause_ind_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_GET_CUSTOM_PLMN_LIST_CNF, l4crac_get_custom_plmn_list_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_VZWMRU_UPDATE_CNF, l4crac_vzwmru_update_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_OMADM_UPDATE_CNF, l4crac_omadm_update_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_IMS_SCM_CNF, l4crac_ims_scm_info_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_GET_LAST_RAT_SELECT_IND_CNF, l4c_nw_get_latest_rat_select_ind_cnf_hdlr)
+L4C_IND(MSG_ID_L4CRAC_RAT_CHANGE_START_IND, l4crac_rat_change_start_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_RAT_CHANGE_FINISH_IND, l4crac_rat_change_finish_ind_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_VG_OPTION_UPDATE_CNF, l4crac_e5gopt_set_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_UAC_PARAM_CHECK_CNF, l4crac_uac_para_check_cnf_hdlr)
+L4C_IND(MSG_ID_L4CRAC_UAC_ALLEVIATION_IND, l4crac_uac_alleviation_ind_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SUSPEND_EGREG_UPDATE_CNF, l4crac_suspend_egreg_update_cnf_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_EMERGENCY_SERVICE_IND, l4crac_emergency_service_ind_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_EMERGENCY_SERVICE_CNF, l4crac_emergency_service_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_EMERGENCY_SERVICE_FALLBACK_CNF, l4crac_emergency_service_fallback_cnf_hdlr)
+
+L4C_CNF(MSG_ID_L4CRAC_GET_NSSAI_CNF, l4crac_get_nssai_list_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_NSSAI_CNF, l4crac_set_nssai_list_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_PREF_NSSAI_CNF, l4crac_set_pref_nssai_list_cnf_hdlr)
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+L4C_CNF(MSG_ID_L4CRAC_FPLMN_ACTION_CNF, l4crac_fplmn_action_cnf_hdlr)
+L4C_IND(MSG_ID_L4CRAC_NW_BLACK_LIST_STATE_IND, l4crac_nw_black_list_state_ind_hdlr)
+#endif
+
+#endif /* __MOD_RAC__ */
+
+
+//#ifdef __MOD_PHB__
+L4C_CNF(MSG_ID_L4CPHB_STARTUP_CNF,l4cphb_startup_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_SEARCH_CNF,l4cphb_search_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_READ_CNF,l4cphb_read_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_WRITE_CNF,l4cphb_write_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_DELETE_CNF,l4cphb_delete_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_APPROVE_CNF,l4cphb_approve_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_WRITE_USIM_CNF,l4cphb_write_usim_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_READ_USIM_CNF,l4cphb_read_usim_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_DELETE_USIM_CNF,l4cphb_delete_usim_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPHB_CHECK_WRITE_USIM_ENTRY_CNF,l4cphb_check_write_usim_entry_cnf_hdlr)
+//#endif /* __MOD_PHB__ */
+
+//#ifdef __MOD_SMU__
+L4C_CNF(MSG_ID_L4CSMU_START_CNF,l4csmu_start_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_APP_START_CNF, l4csmu_app_start_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_SECURITY_CNF,l4csmu_security_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_APP_SECURITY_CNF, l4csmu_app_security_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_SET_PERSONALIZATION_CNF,l4csmu_set_personalization_cnf_hdlr) /* SML */
+L4C_CNF(MSG_ID_L4CSMU_GET_SHARED_KEY_CNF,l4csmu_get_shared_key_cnf_hdlr) /* SML */
+L4C_CNF(MSG_ID_L4CSMU_UPDATE_SLB_CNF,l4csmu_update_slb_cnf_hdlr) /* SML */
+L4C_CNF(MSG_ID_L4CSMU_RESET_SLB_CNF,l4csmu_reset_slb_cnf_hdlr) /* SML */
+L4C_CNF(MSG_ID_L4CSMU_GET_SLB_VERSION_CNF,l4csmu_get_slb_version_cnf_hdlr) /* SML */
+L4C_CNF(MSG_ID_L4CSMU_GET_SIM_LOCK_STATUS_CNF,l4csmu_get_sim_lock_status_cnf_hdlr) /* SML */
+L4C_CNF(MSG_ID_L4CSMU_SML_EVENT_IND,l4csmu_sml_event_ind_hdlr) /* SML */
+L4C_CNF(MSG_ID_L4CSMU_SML_STATUS_CNF,l4csmu_sml_status_cnf_hdlr) /* SML */
+L4C_CNF(MSG_ID_L4CSMU_PLMN_SEL_WRITE_CNF,l4csmu_plmn_sel_write_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_SIM_ACCESS_CNF,l4csmu_sim_access_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_PUCT_WRITE_CNF,l4csmu_puct_write_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_CSP_READ_CNF,l4c_null_hdlr)
+#if defined (__SMS_DEPERSONALIZATION__)
+L4C_CNF(MSG_ID_L4CSMU_SMS_DEPERSONALIZATION_CNF,l4csmu_sms_depersonalization_cnf_hdlr)
+#endif
+L4C_CNF(MSG_ID_L4CSMU_DIAL_MODE_CNF,l4csmu_dial_mode_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_PUCT_READ_CNF,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CSMU_UICC_UNLOCK_CODE_IND,l4csmu_uicc_unlock_code_ind_hdlr)
+#ifdef __CARRIER_RESTRICTION__
+L4C_CNF(MSG_ID_L4CSMU_SET_CARRIER_RESTRICTION_CNF,l4csmu_set_carrier_restriction_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_CARRIER_RESTRICTION_STATUS_CNF,l4csmu_carrier_restriction_status_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_SET_CRRST_SECURE_DATA_CNF,l4csmu_set_crrst_secure_data_cnf_hdlr)
+#endif
+L4C_CNF(MSG_ID_L4CSMU_VZW_RSU_INITIATE_CNF,l4csmu_vzw_rsu_initiate_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_VZW_RSU_RESPONSE_CNF,l4csmu_vzw_rsu_response_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_VZW_RSU_DELAY_TIMER_CNF,l4csmu_vzw_rsu_delay_timer_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_VZW_RSU_DATA_RESET_CNF,l4csmu_vzw_rsu_data_reset_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_OP129_UPDATE_SIMLOCK_SETTING_CNF,l4csmu_op129_update_simlock_setting_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_OP129_GET_SIMLOCK_DATA_CNF,l4csmu_op129_get_simlock_data_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_GET_MODEM_CONFIG_CNF,l4csmu_get_modem_config_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_GET_API_VERSION_CNF,l4csmu_get_api_version_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_TMO_RSU_CREATE_UNLOCK_MSG_CNF,l4csmu_tmo_rsu_create_unlock_msg_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_TMO_RSU_PROCESS_MSG_CNF,l4csmu_tmo_rsu_process_msg_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_TMO_RSU_GET_SML_STATUS_CNF,l4csmu_tmo_rsu_get_sml_status_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_TMO_RSU_GET_REG_MSG_CNF,l4csmu_tmo_rsu_get_reg_msg_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_TMO_RSU_GET_ADAPTER_CONFIG_CNF,l4csmu_tmo_rsu_get_adapter_config_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMU_TMO_RSU_UPDATE_BLOB_CNF,l4csmu_tmo_rsu_update_blob_cnf_hdlr)
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+L4C_CNF(MSG_ID_L4CSMU_SET_NW_BLACK_LIST_CNF, l4csmu_set_nw_black_list_cnf_hdlr)
+L4C_IND(MSG_ID_L4CSMU_NW_BLACK_LIST_STATE_IND, l4csmu_nw_black_list_state_ind_hdlr)
+#endif
+//#endif /* __MOD_SMU__ */
+
+//#ifdef __SAT__
+L4C_CNF(MSG_ID_SAT_MENU_SELECT_CNF,l4csat_menu_select_cnf_hdlr)
+//#endif
+/* SATcE End */
+
+//#ifdef __MOD_SMSAL__
+L4C_CNF(MSG_ID_L4CSMSAL_INIT_CNF,l4csmsal_init_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_READ_CNF,l4csmsal_read_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_SEND_CNF,l4csmsal_send_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_WRITE_CNF,l4csmsal_write_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_DELETE_CNF,l4csmsal_delete_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_SEND_FROM_STORAGE_CNF,l4csmsal_send_storage_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_SEND_ABORT_CNF,l4csmsal_send_abort_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_SEND_DELIVER_REPORT_CNF,l4csmsal_send_deliver_report_cnf_hdlr)
+//#ifdef __SAT__
+L4C_CNF(MSG_ID_L4CSMSAL_SAT_SEND_CNF,l4csmsal_sat_send_cnf_hdlr)
+//#endif
+//#ifdef __CB__
+L4C_CNF(MSG_ID_L4CSMSAL_CB_UPDATE_CNF,l4csmsal_cb_update_cnf_hdlr)
+//#endif
+L4C_CNF(MSG_ID_L4CSMSAL_SET_COMMON_PARA_CNF,l4csmsal_set_common_para_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_SET_PROFILE_PARA_CNF,l4csmsal_set_profile_para_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_COPY_MSG_CNF,l4csmsal_copy_msg_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_SET_STATUS_CNF,l4csmsal_set_status_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_GET_MAILBOX_NUM_CNF,l4csmsal_get_mailbox_num_cnf_hdlr)
+#ifdef __CANCEL_LOCK_POWERON__
+L4C_CNF(MSG_ID_L4CSMSAL_INIT_ME_SMS_CNF,l4csmsal_init_me_sms_cnf_hdlr)
+#endif
+L4C_CNF(MSG_ID_L4CSMSAL_SET_MSG_WAITING_CNF,l4csmsal_set_msg_waiting_cnf_hdlr)
+#ifdef __SMS_RAW_DATA_ACCESS_SUPPORT__
+L4C_CNF(MSG_ID_L4CSMSAL_READ_RAW_DATA_CNF,l4csmsal_read_raw_data_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_WRITE_RAW_DATA_CNF,l4csmsal_write_raw_data_cnf_hdlr)
+#endif
+#if defined(__IMS_SUPPORT__) || defined(__SMS_IMS_SUPPORT__)
+L4C_CNF(MSG_ID_L4CSMSAL_IMS_SEND_CNF,l4csmsal_ims_send_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_IMS_SMS_DELIVER_CNF,l4csmsal_ims_receive_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_IMS_SMS_STATUS_CNF,l4csmsal_ims_status_report_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_IMS_SEND_SMMA_CNF,l4csmsal_ims_send_smma_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_IMS_SEND_FROM_STORAGE_CNF,l4csmsal_ims_send_from_storage_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CSMSAL_IMS_UPDATE_MSGBOX_CNF, l4csmsal_ims_update_msgbox_cnf_hdlr)
+#endif
+//#endif /* __MOD_SMSAL__ */
+
+//#ifdef __MOD_TCM__
+L4C_CNF(MSG_ID_TCM_PDP_ACTIVATE_CNF,tcm_pdp_activate_cnf_hdlr)
+L4C_CNF(MSG_ID_TCM_PDP_ACTIVATE_REJ,tcm_pdp_activate_rej_hdlr)
+
+L4C_CNF(MSG_ID_L4C_TCM_EPS_ATTACH_CNF,l4c_tcm_eps_attach_cnf_hdlr)
+L4C_CNF(MSG_ID_L4C_TCM_EPS_ATTACH_REJ,l4c_tcm_eps_attach_rej_hdlr)
+L4C_IND(MSG_ID_L4C_TCM_EPS_ATTACH_PDN_ACT_IND,l4c_tcm_eps_attach_pdn_act_ind_hdlr)
+
+L4C_CNF(MSG_ID_TCM_PDP_DEACTIVATE_CNF,tcm_pdp_deactivate_cnf_hdlr)
+L4C_CNF(MSG_ID_TCM_PDP_MODIFY_CNF,tcm_pdp_modify_cnf_hdlr)
+L4C_CNF(MSG_ID_TCM_PDP_MODIFY_REJ,tcm_pdp_modify_rej_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_START_CNF,l4ctcm_start_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_PRI_PDP_INFO_CNF,l4ctcm_set_context_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_EXTENDED_PDP_INFO_CNF,l4ctcm_set_context_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SYNC_APN_INFO_CNF, l4ctcm_set_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_SEC_PDP_INFO_CNF,l4ctcm_set_context_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_QOS_INFO_CNF,l4ctcm_set_context_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_EQOS_INFO_CNF,l4ctcm_set_context_cnf_hdlr) /* CH_Liang 2005/08/04 R99 feature */
+L4C_CNF(MSG_ID_L4CTCM_SET_EPS_QOS_INFO_CNF, l4ctcm_set_context_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_VGQOS_INFO_CNF, l4ctcm_set_context_cnf_hdlr)
+L4C_IND(MSG_ID_L4CTCM_LADN_INFO_UPDATE_IND, l4ctcm_ladn_info_update_hdlr)
+
+//L4C_CNF(MSG_ID_L4CTCM_SET_TFT_INFO_CNF,l4ctcm_set_cnf_hdlr)
+//L4C_CNF(MSG_ID_L4CTCM_SET_GPRS_STATISTICS_INFO_CNF,l4ctcm_set_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_PPP_AUTH_CNF,l4ctcm_set_context_cnf_hdlr) //tommy add 031015 for danny
+L4C_CNF(MSG_ID_L4CTCM_SET_MSQ_MODE_CNF,l4ctcm_set_cnf_hdlr) /* __MEDIATEK_SMART_QOS__ */
+L4C_CNF(MSG_ID_L4CTCM_SET_MSQ_ENTRY_CNF,l4ctcm_set_cnf_hdlr) /* __MEDIATEK_SMART_QOS__ */
+
+L4C_CNF(MSG_ID_L4CTCM_UNDEFINE_PDP_INFO_CNF,l4ctcm_set_context_cnf_hdlr) //mtk00714 w0633: AT definition
+L4C_CNF(MSG_ID_L4CTCM_SET_ACL_MODE_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_GET_ACL_ENTRIES_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_ACL_ENTRY_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_ADD_ACL_ENTRY_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_DEL_ACL_ENTRY_CNF,l4c_null_hdlr)
+#if defined(__EXT_PDP_CONTEXT_ON__) && defined(__PS_DIALUP__)
+L4C_CNF(MSG_ID_L4CPPP_ACTIVATE_CNF,l4cppp_activate_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPPP_DEACTIVATE_CNF,l4cppp_deactivate_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CPPP_RESUME_CNF,l4cppp_resume_cnf_hdlr)
+#else
+L4C_CNF(MSG_ID_L4CPPP_ACTIVATE_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CPPP_DEACTIVATE_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CPPP_RESUME_CNF,l4c_null_hdlr)
+#endif
+L4C_CNF(MSG_ID_L4CTCM_ENTER_DATA_MODE_CNF,l4ctcm_enter_data_mode_cnf_handler)
+L4C_CNF(MSG_ID_L4CTCM_LEAVE_DATA_MODE_CNF,l4ctcm_leave_data_mode_cnf_handler)
+L4C_CNF(MSG_ID_L4CTCM_SET_CGAUTH_INFO_CNF,l4ctcm_set_cgauth_info_cnf_handler)
+L4C_CNF(MSG_ID_L4CTCM_QUERY_EXT_GPRS_HISTORY_RSP,l4c_null_hdlr) // R6 optimization
+L4C_CNF(MSG_ID_L4CTCM_RESET_EXT_GPRS_HISTORY_CNF,l4c_null_hdlr) // R6 optimization
+L4C_CNF(MSG_ID_L4CTCM_GET_GPRS_STATISTICS_INFO_RSP,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_MULTIPLE_PDN_INFO_CNF,l4ctcm_set_multiple_pdn_info_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_SPECIFIC_CONTEXT_CNF,l4ctcm_set_specific_context_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CTCM_SET_EGPCO_CNF,l4ctcm_set_context_cnf_hdlr)
+
+//#endif /* __MOD_TCM__ */
+
+#ifdef __TCPIP__
+L4C_CNF(MSG_ID_L4CABM_START_CNF,l4c_ps_abm_start_cnf_hdlr) //modify in W04.11 for ask abm start after phonebook startup
+#else
+L4C_CNF(MSG_ID_L4CABM_START_CNF,l4c_null_hdlr) //modify in W04.11 for ask abm start after phonebook startup
+#endif
+
+
+
+L4C_CNF(MSG_ID_L4C_OPEN_UART_PORT_CNF,l4c_open_uart_port_cnf_hdlr)
+L4C_CNF(MSG_ID_L4C_CLOSE_UART_PORT_CNF,l4c_close_uart_port_cnf_hdlr)
+
+L4C_CNF(MSG_ID_L4C_CHANGE_UART_PORT_CNF,l4c_change_uart_port_cnf_hdlr)
+
+/*MSG from DT*/
+L4C_CNF(MSG_ID_L4CDT_DOWNLOAD_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CDT_UPLOAD_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CDT_FILELIST_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CDT_FILECOUNT_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CDT_DISKINFO_CNF,l4c_null_hdlr)
+
+#ifdef __NBR_CELL_INFO__
+L4C_CNF(MSG_ID_L4CPS_NBR_CELL_INFO_START_CNF,l4cps_nbr_cell_info_start_cnf_hdlr) /* 081107 Lexel: for Cell info */
+L4C_CNF(MSG_ID_L4CPS_NBR_CELL_INFO_STOP_CNF,l4cps_nbr_cell_info_stop_cnf_hdlr) /* 081107 Lexel: for Cell info */
+#endif
+
+/* MSG from EXT_MODEM */
+
+#if defined(__LTE_RAT__)
+
+L4C_CNF(MSG_ID_L4C_EVAL_NBR_CELL_INFO_START_CNF, l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_NBR_CELL_INFO_STOP_CNF, l4c_null_hdlr)
+L4C_IND(MSG_ID_L4C_EVAL_TIME_INFO_IND, l4c_eval_time_info_ind_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_LTECA_BAND_SETTING_CNF, l4c_eval_lteca_band_update_cnf_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_LTECA_MODE_SETTING_CNF, l4c_eval_lteca_mode_setting_cnf_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_OMADM_UPDATE_CNF, l4c_eval_omadm_update_cnf_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_MODULATION_UPDATE_CNF, l4c_eval_modulation_update_cnf_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_GET_SSAC_PARAM_CNF, l4c_eval_get_ssac_param_cnf_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_CA_BAND_COMB_LIST_CNF, l4c_nw_lteca_band_comb_list_cnf_hdlr)
+
+#ifdef __VOLTE_SUPPORT__
+L4C_IND(MSG_ID_L4C_EVAL_IMS_SYS_INFO_IND, l4c_eval_ims_sys_info_ind_hdlr)
+L4C_IND(MSG_ID_L4C_EVAL_BARRING_STATUS_IND, l4c_eval_barring_status_ind_hdlr)
+#endif /* __VOLTE_SUPPORT__ */
+L4C_IND(MSG_ID_L4C_EVAL_ERLM_REPORT_IND,l4c_eval_erlm_report_ind_hdlr)
+L4C_IND(MSG_ID_L4C_EVAL_ERLQ_REPORT_IND,l4c_eval_erlq_report_ind_hdlr)
+L4C_IND(MSG_ID_L4C_EVAL_EMM_MSG_IND,l4c_eval_emm_msg_ind_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_LTE_TM9_FDD_TDD_SETTING_CNF, l4c_eval_lte_tm9_fdd_tdd_setting_cnf_hdlr)
+L4C_IND(MSG_ID_L4C_EVAL_PHY_CFG_INFO_IND, l4c_eval_nw_physical_config_info_ind_hdlr)
+L4C_CNF(MSG_ID_L4C_EL1_OMADM_UPDATE_CNF, l4c_el1_omadm_update_cnf_hdlr)
+#endif
+
+/* NEW CNF MSG for MMDC */
+L4C_CNF(MSG_ID_L4CRAC_SET_RECOVERY_SEARCH_TIMER_CNF, l4crac_set_recovery_search_timer_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_GET_RECOVERY_SEARCH_TIMER_CNF, l4crac_get_recovery_search_timer_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_CT_MODE_CNF, l4crac_set_ct_mode_cnf_hdlr)
+
+//#ifdef __MOD_CSM__
+L4C_IND(MSG_ID_L4CCSM_CC_ATTACH_IND,l4ccsm_cc_attach_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_DETACH_IND,l4ccsm_cc_detach_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CCM_IND,l4ccsm_cc_ccm_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_MODIFY_IND,l4ccsm_cc_call_modify_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_SETUP_IND,l4ccsm_cc_call_setup_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_ALERT_IND,l4ccsm_cc_call_alert_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_CONNECT_IND,l4ccsm_cc_call_connect_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_DISC_IND,l4ccsm_cc_call_disc_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_REL_IND,l4ccsm_cc_call_rel_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_PROGRESS_IND,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_PROC_IND,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_NOTIFY_SS_IND,l4ccsm_cc_notify_ss_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_AUTO_DTMF_START_IND,l4ccsm_cc_auto_dtmf_start_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_AUTO_DTMF_COMPLETE_IND,l4ccsm_cc_auto_dtmf_compl_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CCBS_CALL_DEACTIVATE_IND,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_PREEMPT_IND,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_UART_TRANSFER_IND,l4ccsm_cc_uart_transfer_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_CSD_EST_IND,l4ccsm_cc_csd_est_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CPHS_DISPLAY_ALS_IND,l4ccsm_cphs_display_als_ind_hdlr) /* tommy 030722 add for ripple CPHS feature*/
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_INFO_IND,l4ccsm_cc_call_info_ind_hdlr) /* tommy add 031002 for aux turn off loudspeaker and adc pool */
+L4C_IND(MSG_ID_L4CCSM_CC_CPI_IND,l4ccsm_cc_cpi_ind_hdlr) //mtk00714 add 20041210 for +ECPI
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_SYNC_IND,l4ccsm_cc_call_sync_ind_hdlr) /*mtk00924 add 050727 for indicate MMI to get call info*/
+L4C_IND(MSG_ID_L4CCSM_CC_VIDEO_CALL_STATUS_IND,l4ccsm_cc_video_call_status_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CC_UPDATE_CALL_STATE_IND,l4ccsm_cc_update_call_state_ind_hdlr) /* MAUI_01315252, update call state */
+L4C_IND(MSG_ID_L4CCSM_CC_CALL_PRESENT_IND,l4ccsm_cc_call_present_ind_hdlr)
+
+
+L4C_IND(MSG_ID_L4CCSM_CISS_USSR_BEGIN_IND,l4ccsm_ciss_ussr_begin_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CISS_USSN_BEGIN_IND,l4ccsm_ciss_ussn_begin_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CISS_USSR_FAC_IND,l4ccsm_ciss_ussr_fac_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CISS_USSN_FAC_IND,l4ccsm_ciss_ussn_fac_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CISS_CB_FAC_IND,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CPHS_DISPLAY_CFU_IND,l4ccsm_cphs_display_cfu_ind_hdlr) /* tommy 030602 add for paul CPHS feature*/
+//SSAGPS
+#ifdef __AGPS_CONTROL_PLANE__
+L4C_IND(MSG_ID_L4CCSM_CISS_MTLR_BEGIN_IND,l4ccsm_ciss_mtlr_begin_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CISS_AERQ_BEGIN_IND,l4ccsm_ciss_aerq_begin_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CISS_AERP_FAC_IND,l4ccsm_ciss_aerp_fac_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CISS_AECL_BEGIN_IND,l4ccsm_ciss_aecl_begin_ind_hdlr)
+L4C_IND(MSG_ID_L4CCSM_CISS_MOLR_FAC_IND,l4ccsm_ciss_molr_fac_ind_hdlr)
+#endif
+//#endif /* __MOD_CSM__ */
+
+#ifdef __MOD_RAC__
+//L4C_IND(MSG_ID_L4CRAC_REG_IND,)
+L4C_IND(MSG_ID_L4CRAC_REG_STATE_IND,l4crac_reg_state_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_REG_CAUSE_IND,l4crac_reg_cause_ind_hdlr) // __NW_REG_CAUSE_REPORT__ mtk02285 20090310
+L4C_IND(MSG_ID_L4CRAC_INVALID_SIM_RECOVER_IND,l4crac_invalid_sim_recover_hdlr)
+// L4C_IND(MSG_ID_L4CRAC_RX_LEVEL_IND,) //rx_level, mtk02285, remove old interface
+L4C_IND(MSG_ID_L4CRAC_NW_INFO_IND,l4crac_nw_info_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_CIPHER_IND,l4crac_cipher_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_NW_ECC_IND,l4crac_nw_ecc_ind_hdlr)//mtk01616_070905: for R5 ECC category
+L4C_IND(MSG_ID_L4CRAC_PS_EVENT_REPORT_IND,l4crac_ps_event_report_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_MT_PAGE_IND,l4crac_mt_paging_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_SEND_ESR_IND,l4crac_send_esr_ind_hdlr)
+#ifdef __TC10__
+L4C_IND(MSG_ID_L4CRAC_GPRS_TRAFFIC_CHANNEL_STATUS_IND,l4crac_gprs_traffic_channel_status_ind_hdlr)
+#endif
+#ifdef __HOMEZONE_SUPPORT__
+L4C_IND(MSG_ID_L4CRAC_HZ_CELL_INFO_UPDATE_IND,l4crac_hz_cell_info_update_ind_hdlr) /* CH_Liang 2005.05.31 Homezone feature */
+L4C_IND(MSG_ID_L4CRAC_HZ_DEDICATED_MODE_IND,l4crac_hz_dedicated_mode_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_HZ_PKT_TRANSFER_MODE_IND,l4crac_hz_pkt_transfer_mode_ind_hdlr)
+#endif /* __HOMEZONE_SUPPORT__ */
+#ifdef __GEMINI__
+L4C_IND(MSG_ID_L4CRAC_SEARCH_NORMAL_FINISH_IND,l4crac_search_normal_finish_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_MMRR_SERVICE_STATUS_IND,l4crac_mmrr_service_status_ind_hdlr) // for solving emergecy call issue in Gemini
+#endif /* __GEMINI__ */
+
+#if defined(__REPORT_AVAILABLE_PLMN__)
+L4C_IND(MSG_ID_L4CRAC_PLMN_LIST_IND,l4crac_plmn_list_ind_hdlr)
+#endif
+#if defined(__2STAGE_NW_SELECTION__)
+L4C_IND(MSG_ID_L4CRAC_SUSPEND_STATUS_IND,l4crac_suspend_status_ind_hdlr)
+#endif
+
+L4C_IND(MSG_ID_L4CRAC_PLMN_STATUS_IND, l4crac_plmn_status_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_NW_FEATURE_IND, l4crac_nw_feature_ind_hdlr)
+
+#ifdef __LTE_RAT__
+L4C_IND(MSG_ID_L4CRAC_EPS_ATTACH_NEEDED_IND, l4crac_eps_attach_needed_ind_hdlr)
+
+L4C_IND(MSG_ID_L4C_EVAL_NBR_CELL_INFO_IND, l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CRAC_PEER_REJECT_IND, l4c_null_hdlr)
+#ifdef __IMS_SUPPORT__
+L4C_IND(MSG_ID_L4CRAC_UPDATE_SMS_PREFERENCE_IND, l4crac_update_sms_preference_ind_hdlr)
+L4C_IND(MSG_ID_L4C_NAS_SV_SRVCC_STATUS_UPDATE_IND, l4c_nas_sv_srvcc_status_update_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_IMS_SERVICE_IND, l4crac_ims_service_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_IMS_REG_TIMEOUT_IND, l4crac_ims_reg_timeout_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_UEMODE_PARAM_UPDATE_IND, l4crac_uemode_param_update_ind_hdlr)
+#endif /* __IMS_SUPPORT__ */
+#endif /* __LTE_RAT__ */
+
+L4C_IND(MSG_ID_L4CRAC_RAT_SELECT_IND, l4crac_rat_select_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_REPORTED_RAT_CHANGE_IND, l4crac_reported_rat_change_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_RESTART_CLEAR_CODE_33_PROC_IND, l4crac_restart_clear_code_33_proc_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_UPDATE_SMS_OVER_SGS_CFG_IND, l4crac_update_sms_over_sgs_cfg_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_LTE_BANDWIDTH_IND, l4crac_lte_bandwidth_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_C2K_SERVICE_IND, l4crac_c2k_service_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_C2K_CELL_INFO_IND, l4crac_c2k_cell_info_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_1X_CONN_STATUS_IND, l4crac_1x_conn_status_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_EMC_DETACH_IND,l4crac_emc_detach_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_ACTIVE_RAT_IND, l4crac_active_rat_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_SUSPEND_EGREG_UPDATE_IND, l4crac_suspend_egreg_update_ind_hdlr)
+
+//#if defined(__FAST_ROAMING_SEARCH__)
+L4C_IND(MSG_ID_L4CRAC_PLMN_FOUND_IND, l4crac_plmn_found_ind_hdlr) /*First found PLMN information, Sent even before camping*/
+//#endif
+L4C_IND(MSG_ID_L4CRAC_NON_3GPP_NW_POLICIES_IND,l4crac_non_3gpp_nw_policies_ind_hdlr) /* Non-3GPP NW provided policies IE */
+L4C_IND(MSG_ID_L4CRAC_ILLEGAL_ME_IND, l4crac_illegal_me_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_VGMM_PROC_FAILURE_IND, l4crac_vgmm_proc_failure_ind_hdlr)
+
+L4C_REQ(MSG_ID_L4BNW_L4C_SUSPEND_EGREG_UPDATE_REQ, l4crac_suspend_egreg_update_req_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_CAMP_UI_IND,l4crac_camp_ui_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_NW_REG_REJ_IND, l4crac_nw_reg_rej_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_NAS_SV_T3402_STOP_IND, l4crac_nas_sv_t3402_stop_ind_hdlr)
+
+#endif /* __MOD_RAC__ */
+
+#ifdef __CDMA2000_RAT__
+L4C_IND(MSG_ID_L4C_CSS_ACTIVE_RAT_IND, l4c_css_active_rat_ind_hdlr)
+#endif
+
+L4C_IND(MSG_ID_L4CRAC_NRRC_STATE_IND, l4crac_nrrc_state_ind_hdlr)
+
+/* SIM BEGIN */
+L4C_IND(MSG_ID_L4CSMU_SECURITY_IND,l4csmu_security_cnf_hdlr)
+L4C_IND(MSG_ID_L4CSMU_MMRR_READY_IND,l4csmu_mmrr_ready_ind_hdlr) // 030822 tommy add for power on enhance for Paul
+L4C_IND(MSG_ID_L4CSMU_MMI_INFO_IND,l4csmu_mmi_info_ind_hdlr) // 030609 tommy add for CPHS feature for Paul
+L4C_IND(MSG_ID_L4CSMU_APP_READY_IND,l4csmu_app_ready_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMU_EVENT_IND,l4csmu_event_ind_hdlr)
+#if defined (__SMS_DEPERSONALIZATION__)
+L4C_IND(MSG_ID_L4CSMU_SML_STATUS_NOTIFY_IND,l4csmu_sml_status_notify_ind_hdlr)
+#endif
+L4C_IND(MSG_ID_L4CSMU_ICCID_READY_IND,l4csmu_iccid_ready_ind_hdlr)
+
+/* SAT BEGIN */
+//#ifdef __SAT__
+L4C_IND(MSG_ID_SAT_DSPL_TEXT_IND,l4csat_dspl_text_ind_hdlr)
+L4C_IND(MSG_ID_SAT_GET_INKEY_IND,l4csat_get_inkey_ind_hdlr)
+L4C_IND(MSG_ID_SAT_GET_INPUT_IND,l4csat_get_input_ind_hdlr)
+L4C_IND(MSG_ID_SAT_SETUP_MENU_IND,l4csat_setup_menu_ind_hdlr)
+L4C_IND(MSG_ID_SAT_SELECT_ITEM_IND,l4csat_select_item_ind_hdlr)
+L4C_IND(MSG_ID_SAT_PLAY_TONE_IND,l4csat_play_tone_ind_hdlr)
+L4C_IND(MSG_ID_SAT_SETUP_CALL_IND,l4csat_setup_call_ind_hdlr)
+L4C_IND(MSG_ID_SAT_SEND_SMS_IND,l4csat_send_sms_ind_hdlr)
+L4C_IND(MSG_ID_SAT_SEND_SS_IND,l4csat_send_ss_ind_hdlr)
+L4C_IND(MSG_ID_SAT_SEND_USSD_IND,l4csat_send_ussd_ind_hdlr)
+L4C_IND(MSG_ID_SAT_MMI_INFO_IND,l4csat_mmi_info_ind_hdlr)
+/* tommy 030602 add for paul new indication */
+L4C_IND(MSG_ID_SAT_SETUP_IDLE_DSPL_IND,l4csat_setup_idle_dspl_ind_hdlr)
+L4C_IND(MSG_ID_SAT_RUN_AT_COMMAND_IND,l4csat_run_at_command_ind_hdlr)
+L4C_IND(MSG_ID_SAT_SEND_DTMF_IND,l4csat_send_dtmf_ind_hdlr)
+L4C_IND(MSG_ID_SAT_LANG_NOTIFY_IND,l4csat_lang_notify_ind_hdlr)
+L4C_IND(MSG_ID_SAT_LAUNCH_BROWSER_IND,l4csat_launch_browser_ind_hdlr)
+L4C_IND(MSG_ID_SAT_NO_OTHER_CMD_IND,l4csat_no_other_cmd_ind_hdlr)
+L4C_IND(MSG_ID_SAT_REFRESH_NOTIFY_IND,l4csat_refresh_notify_ind_hdlr)
+#ifdef __TC10__
+L4C_IND(MSG_ID_SAT_REFRESH_NOTI_IND,l4csat_refresh_noti_ind_hdlr)
+L4C_IND(MSG_ID_SAT_REFRESH_VOTING_IND,l4csat_refresh_voting_ind_hdlr)
+L4C_IND(MSG_ID_SAT_CALL_CTRL_RESULT_NOTI_IND,l4csat_call_ctrl_result_noti_ind_hdlr)
+#endif
+/* End Benson SATcE */
+//#endif /* __SAT__ */
+
+
+//#ifdef __CB__
+L4C_IND(MSG_ID_L4CSMSAL_CB_MSG_TEXT_IND,l4csmsal_cb_msg_text_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_CB_MSG_PDU_IND,l4csmsal_cb_msg_pdu_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_CB_DL_IND,l4c_null_hdlr)
+//#endif /* __CB__ */
+L4C_IND(MSG_ID_L4CSMSAL_MT_SMS_FINAL_ACK_IND,l4csmsal_mt_sms_final_ack_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_MEM_FULL_IND,l4csmsal_mem_full_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_MEM_EXCEED_IND,l4csmsal_mem_exceed_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_MEM_AVAILABLE_IND,l4csmsal_mem_available_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_MSG_WAITING_IND,l4csmsal_msg_waiting_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_ENHANCED_VOICE_MAIL_IND,l4csmsal_enhanced_voice_mail_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_NEW_MSG_PDU_IND,l4csmsal_new_msg_pdu_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_NEW_MSG_TEXT_IND,l4csmsal_new_msg_text_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_NEW_MSG_INDEX_IND,l4csmsal_new_msg_index_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_APP_DATA_IND,l4csmsal_app_data_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_SYNC_MSG_IND,l4csmsal_sync_msg_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_STARTUP_READ_MSG_IND,l4csmsal_startup_read_msg_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_STARTUP_BEGIN_IND,l4csmsal_startup_begin_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_STARTUP_FINISH_IND,l4csmsal_startup_finish_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_FDN_CHECK_IND,l4csmsal_fdn_check_ind_hdlr)
+#if defined (__SMS_DEPERSONALIZATION__)
+L4C_IND(MSG_ID_L4CSMSAL_SMS_DEPERSONALIZATION_IND,l4csmsal_depersonalization_ind_hdlr)
+#endif
+#ifdef __HOMEZONE_SUPPORT__
+L4C_IND(MSG_ID_L4CSMSAL_HZ_CB_MSG_IND,l4csmsal_hz_cb_msg_ind_hdlr) /* temp use */
+#endif
+L4C_IND(MSG_ID_L4CSMSAL_CB_GS_CHANGE_IND,l4csmsal_cb_gs_change_ind_hdlr)
+
+
+//#ifdef __MOD_TCM__
+L4C_IND(MSG_ID_TCM_PDP_ACTIVATE_IND,tcm_pdp_activate_ind_hdlr)
+#ifdef __TURN_ON_GENERAL_SECONDARY_PDP__
+L4C_IND(MSG_ID_TCM_SEC_PDP_ACTIVATE_IND,tcm_sec_pdp_activate_ind_hdlr)
+#endif
+L4C_IND(MSG_ID_TCM_PDP_DEACTIVATE_IND,tcm_pdp_deactivate_ind_hdlr)
+L4C_IND(MSG_ID_TCM_PDP_MODIFY_IND,tcm_pdp_modify_ind_hdlr) // __GPRS_BEARER_REPORT_NEGOTIATED_QOS__
+L4C_IND(MSG_ID_TCM_MOBILITY_STATUS_IND,l4c_null_hdlr) // mtk02126: NOT USED
+L4C_IND(MSG_ID_TCM_EVENT_REP_IND,l4c_null_hdlr) // mtk02126: Only found in comments
+//#if defined(__SP_RIL_SUPPORT__) //TCM should wrapped the code more well
+L4C_IND(MSG_ID_L4CTCM_PS_EVENT_REPORT_IND,l4ctcm_ps_event_report_ind_hdlr)
+//#endif
+#if defined(__HSDPA_SUPPORT__)
+L4C_IND(MSG_ID_L4CTCM_BEARER_CAPABILITY_IND,l4ctcm_bearer_capability_ind_hdlr) //hspa_mmi_h2, mtk02285
+#endif
+#if defined(__EXT_PDP_CONTEXT_ON__) && defined(__PS_DIALUP__)
+L4C_IND(MSG_ID_L4CPPP_DEACTIVATE_IND,l4cppp_deactivate_ind_hdlr)
+L4C_IND(MSG_ID_L4CPPP_ESCAPE_IND,l4cppp_escape_ind_hdlr)
+#else
+L4C_IND(MSG_ID_L4CPPP_DEACTIVATE_IND,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CPPP_ESCAPE_IND,l4c_null_hdlr)
+#endif
+L4C_IND(MSG_ID_L4CPPP_PPPTYPEPDP_ACTIVATED_IND,l4c_null_hdlr) // Carlson 2009.04.18 PPP Type PDP Dialup Feature
+#if defined(__EXT_PDP_CONTEXT_ON__) && defined(__PS_DIALUP__)
+L4C_IND(MSG_ID_L4CPPP_IPV4V6_FALLBACK_IND,l4cppp_ipv4v6_fallback_ind_hdlr)
+L4C_IND(MSG_ID_L4CPPP_INITIAL_IP_TYPE_IND,l4cppp_initial_ip_type_ind_hdlr)
+#else
+L4C_IND(MSG_ID_L4CPPP_IPV4V6_FALLBACK_IND,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4CPPP_INITIAL_IP_TYPE_IND,l4c_null_hdlr)
+#endif
+
+//#endif /* __MOD_TCM__ */
+
+L4C_IND(MSG_ID_L4CPHB_STARTUP_BEGIN_IND,l4cphb_startup_begin_ind_hdlr)
+L4C_IND(MSG_ID_FLC_STATUS_REPORT_IND,l4c_null_hdlr)
+
+#ifdef __NBR_CELL_INFO__
+L4C_IND(MSG_ID_L4CPS_NBR_CELL_INFO_IND,l4cps_nbr_cell_info_ind_hdlr) /* 081107 Lexel: for Cell info*/
+#endif
+
+L4C_IND(MSG_ID_L4CPS_GAS_CELL_POWER_LEVEL_IND,l4cps_gas_cell_power_level_ind_hdlr) //rx_level, mtk02285
+#ifdef __UMTS_RAT__
+L4C_IND(MSG_ID_L4CPS_UAS_CELL_POWER_LEVEL_IND,l4cps_uas_cell_power_level_ind_hdlr)
+#endif
+#ifdef __LTE_RAT__
+L4C_IND(MSG_ID_L4C_EVAL_CELL_POWER_LEVEL_IND, l4c_eval_cell_power_level_ind_hdlr)
+L4C_IND(MSG_ID_L4C_EVAL_CONNECTED_DRB_IND, l4c_eval_connected_drb_ind_hdlr)
+
+#endif
+
+#ifdef __NR_RAT__
+L4C_IND(MSG_ID_L4C_NRRC_CELL_POWER_LEVEL_IND, l4c_nrrc_cell_power_level_ind_hdlr)
+L4C_CNF(MSG_ID_L4C_NRRC_CA_BAND_COMB_LIST_CNF, l4c_nw_nrrc_band_comb_list_cnf_hdlr)
+L4C_IND(MSG_ID_L4C_NRRC_DRB_INFO_IND, l4c_nrrc_drb_info_ind_hdlr)
+#endif /* __NR_RAT__ */
+
+#ifdef __IMS_SUPPORT__
+L4C_IND(MSG_ID_L4CPS_GAS_AUTO_FAST_RETURN_IND, l4cps_gas_auto_fast_return_ind_hdlr)
+L4C_IND(MSG_ID_L4CPS_UAS_AUTO_FAST_RETURN_IND, l4cps_uas_auto_fast_return_ind_hdlr)
+#endif
+
+/* MSG from EXT_MODEM */
+
+#if defined(__NO_PSDATA_SEND_SCRI__) || defined(__FAST_DORMANCY__)
+L4C_IND(MSG_ID_L4CRAC_END_PS_DATA_SESSION_IND, l4crac_end_ps_data_session_ind_hdlr)
+#endif
+
+#if defined(__ACMT_SUPPORT__)
+L4C_IND(MSG_ID_L4C_PROTOCOL_REJ_IND, l4c_protocol_rej_ind_hdlr)
+#endif
+
+L4C_REQ(MSG_ID_L4C_OPEN_UART_PORT_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_L4C_CLOSE_UART_PORT_REQ,l4c_null_hdlr)
+
+L4C_REQ(MSG_ID_L4C_CHANGE_UART_PORT_REQ,l4c_null_hdlr)
+
+#if defined(__IMS_SUPPORT__) || defined(__SMS_IMS_SUPPORT__)
+L4C_IND(MSG_ID_L4CSMSAL_IMS_NEW_MSG_PDU_IND,l4csmsal_ims_new_msg_pdu_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_IMS_NEW_MSG_TEXT_IND,l4csmsal_ims_new_msg_text_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_IMS_DELIVER_REPORT_ACK_IND, l4csmsal_ims_deliver_report_ack_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_IMS_DELIVER_REPORT_NACK_IND, l4csmsal_ims_deliver_report_nack_ind_hdlr)
+L4C_IND(MSG_ID_L4CSMSAL_IMS_SEND_SMMA_IND, l4csmsal_ims_send_smma_ind_hdlr)
+#endif
+
+L4C_IND(MSG_ID_L4C_MED_VOICE_CODEC_IND,l4c_med_voice_codec_ind_hdlr)
+
+//SS LBS
+#ifdef __AGPS_CONTROL_PLANE__ //the following msg will be forwarded to l4c_lbs_message_dispatch()
+L4C_REQ(MSG_ID_LBS_MTLR_BEGIN_RES_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_LBS_AERQ_BEGIN_RES_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_LBS_AERP_BEGIN_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_LBS_AERP_END_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_LBS_AECL_BEGIN_RES_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_LBS_MOLR_BEGIN_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_LBS_MOLR_END_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_AGPS_ENABLE_DISABLE_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_AGPS_KEY_UPDATE_REQ,l4c_null_hdlr)
+L4C_REQ(MSG_ID_AGPS_CP_ABORT_REQ,l4c_null_hdlr)
+#endif
+//#ifdef __AGPS_SUPPORT__
+L4C_REQ(MSG_ID_L4C_LBS_SERVICE_STATE_REQ,l4c_lbs_service_state_req_hdlr)
+L4C_REQ(MSG_ID_L4C_LBS_ROAMING_STATE_REQ,l4c_lbs_roaming_state_req_hdlr)
+L4C_REQ(MSG_ID_L4C_LBS_DATA_CONN_STATE_REQ,l4c_lbs_data_conn_state_req_hdlr)
+L4C_REQ(MSG_ID_L4C_LBS_CURRENT_RAT_REQ,l4c_lbs_current_rat_req_hdlr)
+L4C_REQ(MSG_ID_L4C_LBS_ACTIVE_SIM_REQ,l4c_lbs_active_sim_req_hdlr)
+//#endif
+
+#ifdef __CDMA2000_RAT__
+L4C_IND(MSG_ID_L4CRAC_GMSS_STOP_SEARCH_IND, l4crac_gmss_stop_search_ind_hdlr)
+#else
+L4C_IND(MSG_ID_L4CRAC_GMSS_STOP_SEARCH_IND, l4c_null_hdlr)
+#endif
+L4C_IND(MSG_ID_L4C_C2K_UT_CHECK_CONTEXT_IND,l4c_null_hdlr)
+L4C_IND(MSG_ID_L4C_C2K_UT_CHECK_LWCG_CONTEXT_IND, l4c_null_hdlr)
+
+L4C_CNF(MSG_ID_SAT_PROFILE_ACTIVATE_CNF, l4c_sat_profile_activate_cnf_hdlr)
+
+L4C_IND(MSG_ID_SAT_UICC_STATE_IND,l4c_sat_uicc_state_ind_hdlr)
+
+L4C_CNF(MSG_ID_SAT_PROFILE_WRITE_CNF, l4c_sat_profile_write_cnf_hdlr)
+
+L4C_CNF(MSG_ID_TCM_PAM_SET_VZW_APN_TABLE_CNF,l4ctcm_set_cnf_hdlr) /* VzW support */
+L4C_CNF(MSG_ID_TCM_PAM_SET_VZW_PARAMS_CNF,l4ctcm_set_cnf_hdlr) /* VzW support */
+L4C_CNF(MSG_ID_TCM_PAM_GET_VZW_APN_TABLE_CNF,l4ctcm_get_vzw_apn_table_cnf_hdlr) /* VzW support */
+L4C_CNF(MSG_ID_TCM_PAM_GET_VZW_PARAMS_CNF,l4ctcm_get_vzw_params_cnf_hdlr) /* VzW support */
+L4C_CNF(MSG_ID_TCM_PAM_GET_APN_BLOCKING_TIMER_LENGTH_CNF,l4c_ps_get_apn_rdp_cnf_hdlr) /* VzW support */
+L4C_IND(MSG_ID_TCM_PAM_CANCEL_APN_BLOCKING_TIMER_IND,l4c_ps_cancel_apn_blocking_ind_hdlr)
+
+L4C_CNF(MSG_ID_L4CRAC_CLEAR_MRU_CNF,l4crac_clear_mru_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_MRU_CNF,l4crac_set_mru_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_AUX_PLMN_CNF,l4crac_set_aux_plmn_cnf_hdlr)
+L4C_IND(MSG_ID_L4CRAC_DUPLEX_MODE_CHANGE_IND,l4crac_duplex_mode_change_ind_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_DUPLEX_MODE_CHANGE_CNF,l4crac_duplex_mode_change_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_SET_WM_POLICY_CNF,l4c_null_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_ACTIVE_SIM_CNF, l4crac_active_sim_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_DUPLEX_MODE_REQUIRED_CNF,l4crac_duplex_mode_required_cnf_hdlr)
+
+L4C_IND(MSG_ID_L4CTCM_ECC_REJ_BY_NW_IN_ATTACH_IND,l4ctcm_ecc_rej_by_nw_in_attach_ind)
+
+L4C_REQ(MSG_ID_L4C_PS_UT_ALREADY_ASSERT_IND,l4c_null_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_C2K_CSFB_START_IND,l4crac_c2k_csfb_start_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_HVOLTE_MODE_CHANGE_IND,l4crac_hvolte_mode_change_ind_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_GMSS_SET_PLMN_BARRING_TIMER_CNF, l4crac_gmss_set_plmn_barring_timer_cnf_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_GMSS_GET_PLMN_BARRING_TIMER_CNF, l4crac_gmss_get_plmn_barring_timer_cnf_hdlr)
+L4C_IND(MSG_ID_L4CRAC_IMS_CALL_END_STATUS_IND,l4crac_ims_call_end_status_ind_hdlr)
+
+L4C_IND(MSG_ID_L4C_RATCM_LBM_INFO_IND,l4c_rb_test_mode_info_ind_hdlr)
+L4C_IND(MSG_ID_L4C_EVAL_LBM_INFO_IND,l4c_rb_test_mode_info_ind_hdlr)
+L4C_CNF(MSG_ID_L4CRAC_RESET_OTA_CTXT_CNF, l4crac_reset_ota_ctxt_cnf_hdlr)
+
+L4C_REQ(MSG_ID_L4BNW_L4C_PS_TYPE_CONFIG_REQ, l4c_nw_l4bnw_ps_type_config_req_hdlr)
+L4C_REQ(MSG_ID_L4BNW_L4C_PS_REATTACH_CONFIG_REQ, l4c_nw_ps_reattach_config_req_hdlr)
+
+L4C_IND(MSG_ID_L4C_PEER_PLMN_FOUND_IND,l4c_peer_plmn_found_ind_hdlr)
+L4C_REQ(MSG_ID_L4BPWR_L4C_OP01_LOCK_REQ,l4c_op01_lock_req_hdlr)
+L4C_REQ(MSG_ID_L4BNW_L4C_IMEI_MEID_LOCK_REQ,l4c_imei_meid_lock_req_hdlr)
+
+
+L4C_IND(MSG_ID_L4CRAC_PS_BEARER_IND, l4crac_ps_bearer_ind_hdlr)
+
+L4C_IND(MSG_ID_L4C_NRRC_TIME_INFO_IND, l4c_nrrc_time_info_ind_hdlr)
+
+L4C_IND(MSG_ID_L4C_MSPM_GEMINI_STATUS_UPDATE_IND, l4c_mspm_gemini_status_update_ind_hdlr)
+
+// ATP
+L4C_REQ(MSG_ID_ATP_L4C_EN3GPECP_REQ, l4c_atp_en3gpecp_req_hdlr)
+L4C_REQ(MSG_ID_ATP_L4C_E5GOPT_SET_REQ, l4c_atp_e5gopt_set_req_hdlr)
+L4C_REQ(MSG_ID_ATP_L4C_E5GOPT_READ_REQ, l4c_atp_e5gopt_read_req_hdlr)
+L4C_REQ(MSG_ID_ATP_L4C_ANBR_REQ, l4c_atp_anbr_req_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_C2K_SILENT_REDIAL_IND,l4crac_c2k_silent_redial_ind_hdlr)
+
+// L4BPWR
+L4C_REQ(MSG_ID_L4BPWR_L4C_POWER_ON_SIM_REQ, l4c_l4bpwr_power_on_sim_req_hdlr)
+#if defined(__NR_SA__) && defined(__NR_PLUS_L_ONLY__)
+L4C_REQ(MSG_ID_L4BPWR_L4C_5GOPT_SET_REQ, l4c_l4bpwr_5gopt_set_req_hdlr)
+#endif
+
+L4C_IND(MSG_ID_L4CRAC_CSFB_PAGE_IND, l4crac_csfb_page_ind_hdlr)
+L4C_IND(MSG_ID_L4CRAC_CSFB_RESULT_IND, l4crac_csfb_result_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CSMU_SML_LOCK_STATUS_UPDATE_IND,l4csmu_sml_lock_status_update_ind_hdlr)
+
+L4C_REQ(MSG_ID_L4BPWR_L4C_SERVICE_MODE_REQ, l4c_l4bpwr_service_mode_req_hdlr)
+L4C_REQ(MSG_ID_L4BNW_L4C_SERVICE_MODE_REQ, l4c_l4bnw_service_mode_req_hdlr)
+
+L4C_IND(MSG_ID_L4C_NRRC_SCG_EVENT_IND, l4c_nrrc_scg_event_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_TRY_SWITCH_RAT_RESULT_IND, l4crac_try_switch_rat_result_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CRAC_CAP_UPDATE_IND, l4crac_cap_update_ind_hdlr)
+
+L4C_IND(MSG_ID_L4CAS_CELL_POWER_THRESHOLD_IND, l4cas_cell_power_thres_ind_hdlr)
+
+L4C_CNF(MSG_ID_SASE_L4C_VG_OPTION_CHECK_RSP, l4c_sase_vg_option_check_rsp_hdlr)
+L4C_REQ(MSG_ID_SASE_L4C_VG_OPTION_UPDATE_REQ, l4c_sase_vg_option_update_req_hdlr)
+#ifdef __NG_ECALL_SUPPORT__
+L4C_CNF(MSG_ID_L4C_EVAL_ECALL_TEST_CALL_ATTACH_CNF, l4c_eval_ecall_test_call_attach_cnf_hdlr)
+L4C_CNF(MSG_ID_L4C_EVAL_ECALL_ABORT_TEST_CALL_ATTACH_CNF, l4c_eval_ecall_abort_test_call_attach_cnf_hdlr)
+#endif
diff --git a/mcu/interface/protocol/general/l4c_mt_struct.h b/mcu/interface/protocol/general/l4c_mt_struct.h
new file mode 100644
index 0000000..0d14a99
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_mt_struct.h
@@ -0,0 +1,64 @@
+/*****************************************************************************
+* 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_mt_struct.h
+ *
+ *
+ * Description:
+ * ------------
+ * This file defines message structures of L4C_MT interface
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+#ifndef _L4C_MT_STRUCT_H_
+#define _L4C_MT_STRUCT_H_
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_screen_on;
+
+} l4c_mt_screen_state_ind_struct;
+
+
+#endif /* _L4C_MT_STRUCT_H_ */
diff --git a/mcu/interface/protocol/general/l4c_ps_msg_hdlr_defs.h b/mcu/interface/protocol/general/l4c_ps_msg_hdlr_defs.h
new file mode 100644
index 0000000..d702da8
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_ps_msg_hdlr_defs.h
@@ -0,0 +1,61 @@
+
+ /* MSG_ID */ /* test_mode */ /* read_mode */ /* set_mode */ /* active_mode */
+// M1: H
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGACT_REQ, l4c_ps_null_test_mode, l4c_ps_cgact_read_mode, l4c_ps_cgact_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGDCONT_REQ, l4c_ps_null_test_mode, l4c_ps_cgdcont_read_mode, l4c_ps_cgdcont_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGPADDR_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgpaddr_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGEREP_REQ, l4c_ps_null_test_mode, l4c_ps_cgerep_read_mode, l4c_ps_cgerep_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGAUTH_REQ, l4c_ps_null_test_mode, l4c_ps_cgauth_read_mode, l4c_ps_cgauth_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_ECNCFG_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_ecncfg_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_PSBEARER_REQ, l4c_ps_psbearer_read_mode, l4c_ps_psbearer_read_mode, l4c_ps_psbearer_set_mode, l4c_ps_psbearer_read_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EGPCO_REQ, l4c_ps_null_test_mode, l4c_ps_egpco_read_mode, l4c_ps_egpco_set_mode, l4c_ps_null_active_mode)
+
+// M2: M
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EGACT_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_egact_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGDSCONT_REQ, l4c_ps_null_test_mode, l4c_ps_cgdscont_read_mode, l4c_ps_cgdscont_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGTFT_REQ, l4c_ps_null_test_mode, l4c_ps_cgtft_read_mode, l4c_ps_cgtft_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EGDELPF_REQ, l4c_ps_null_test_mode, l4c_ps_egdelpf_read_mode, l4c_ps_egdelpf_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EGLNKPF_REQ, l4c_ps_null_test_mode, l4c_ps_eglnkpf_read_mode, l4c_ps_eglnkpf_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EGFB_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_egfb_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_VZWAPNE_REQ, l4c_ps_null_test_mode, l4c_ps_vzwapne_read_mode, l4c_ps_vzwapne_set_mode, l4c_ps_vzwapne_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_VZWAPNETMR_REQ,l4c_ps_null_test_mode, l4c_ps_vzwapnetmr_read_mode,l4c_ps_vzwapnetmr_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EGDCONT_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_egdcont_set_mode, l4c_ps_null_active_mode)
+//EGPCAP
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGSCONTRDP_REQ,l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgscontrdp_set_mode, l4c_ps_cgscontrdp_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGEQOSRDP_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgeqosrdp_set_mode, l4c_ps_cgeqosrdp_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGTFTRDP_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgtftrdp_set_mode, l4c_ps_cgtftrdp_active_mode)
+//
+
+// M3: L
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGCMOD_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgcmod_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGEQMIN_REQ, l4c_ps_null_test_mode, l4c_ps_cgeqmin_read_mode, l4c_ps_cgeqmin_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGEQREQ_REQ, l4c_ps_null_test_mode, l4c_ps_cgeqreq_read_mode, l4c_ps_cgeqreq_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGANS_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgans_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGAUTO_REQ, l4c_ps_null_test_mode, l4c_ps_cgauto_read_mode, l4c_ps_cgauto_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EGPAU_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_egpau_set_mode, l4c_ps_null_active_mode)
+
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGPIAF_REQ, l4c_ps_null_test_mode, l4c_ps_cgpiaf_read_mode, l4c_ps_cgpiaf_set_mode, l4c_ps_null_active_mode)
+
+//
+
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGEQOS_REQ, l4c_ps_null_test_mode, l4c_ps_cgeqos_read_mode, l4c_ps_cgeqos_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGDEL_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgdel_set_mode, l4c_ps_null_active_mode)
+
+// M3: EM
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGQMIN_REQ, l4c_ps_null_test_mode, l4c_ps_cgqmin_read_mode, l4c_ps_cgqmin_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGQREQ_REQ, l4c_ps_null_test_mode, l4c_ps_cgqreq_read_mode, l4c_ps_cgqreq_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGSDATA_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgsdata_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_ACTTEST_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_acttest_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CGEQNEG_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_cgeqneg_set_mode, l4c_ps_null_active_mode)
+
+// Other:
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EDALLOW_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_edallow_set_mode, l4c_ps_null_active_mode)
+
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EAPNSYNC_REQ, l4c_ps_null_test_mode, l4c_ps_eapnsync_read_mode, l4c_ps_eapnsync_set_mode, l4c_ps_eapnsync_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EVZWAPFCIA_REQ, l4c_ps_null_test_mode, l4c_ps_evzwapfcia_read_mode,l4c_ps_evzwapfcia_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_EGGRNTRSPT_REQ, l4c_ps_null_test_mode, l4c_ps_eggrntrspt_read_mode,l4c_ps_eggrntrspt_set_mode, l4c_ps_null_active_mode)
+
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_C5GQOS_REQ, l4c_ps_null_test_mode, l4c_ps_c5gqos_read_mode, l4c_ps_c5gqos_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_C5GQOSRDP_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_c5gqosrdp_set_mode, l4c_ps_c5gqosrdp_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_CLADN_REQ, l4c_ps_null_test_mode, l4c_ps_cladn_read_mode, l4c_ps_cladn_set_mode, l4c_ps_null_active_mode)
+L4C_PS_REQ(MSG_ID_L4BPDN_L4C_ESCONTIND_REQ, l4c_ps_null_test_mode, l4c_ps_null_read_mode, l4c_ps_escontind_set_mode, l4c_ps_null_active_mode)
diff --git a/mcu/interface/protocol/general/l4c_rsat_msg_struct.h b/mcu/interface/protocol/general/l4c_rsat_msg_struct.h
new file mode 100644
index 0000000..be42671
--- /dev/null
+++ b/mcu/interface/protocol/general/l4c_rsat_msg_struct.h
@@ -0,0 +1,122 @@
+/*****************************************************************************
+* 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_rsat_msg_struct.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * This file is intends for RSAT message structures.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+#ifndef __L4C_RSAT_MSG_STRUCT_H__
+#define __L4C_RSAT_MSG_STRUCT_H__
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 is_sms_packed_required;
+ kal_uint8 no_addr;
+ kal_uint8 addr[MAX_CC_ADDR_BCD_LEN];
+ kal_uint8 tpdu_length;
+ kal_uint8 tpdu[175];
+} mmi_sat_send_sms_stage1_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 input[MAX_DIGITS_USSD];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 type_of_modification;
+} mmi_sat_send_ss_stage1_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 input[MAX_DIGITS_USSD];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 type_of_modification;
+} mmi_sat_send_ussd_stage1_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ 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;
+} mmi_sat_call_setup_stage1_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dtmf_digit[MAX_CC_DTMF_BCD_LEN];
+ kal_uint8 no_digit;
+} mmi_sat_send_dtmf_stage1_req_struct;
+
+#endif
diff --git a/mcu/interface/protocol/general/l4crac_enums.h b/mcu/interface/protocol/general/l4crac_enums.h
new file mode 100644
index 0000000..2b2cedf
--- /dev/null
+++ b/mcu/interface/protocol/general/l4crac_enums.h
@@ -0,0 +1,152 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l4rac_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for enum definition between RAC and L4C.
+ *
+ * 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!!
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4CRAC_ENUMS_H
+#define _L4CRAC_ENUMS_H
+
+#include "ps_public_enum.h"
+
+typedef enum
+{
+ MS_CLASS_A,
+ MS_CLASS_B,
+ MS_CLASS_CG,
+ MS_CLASS_CC
+} ms_mobile_class_enum;
+
+typedef enum
+{
+ REG_LA_RA_CHANGED,
+ REG_NO_PLMN,
+ REG_ON_PLMN,
+ REG_LIMITED_SERVICE
+} reg_status_cause_enum;
+
+//#ifdef __GEMINI__
+typedef enum
+{
+ L4C_SERVICE_INACTIVE_DUE_TO_RR_SUSPEND = 0,
+ L4C_SERVICE_ACTIVE = 1
+}l4c_rac_mmrr_service_status_enum;//GEMINI, 20080217
+//#endif
+
+typedef enum
+{
+ NOT_PREFER_SMS_OVER_IP,
+ PREFER_SMS_OVER_IP
+} l4c_rac_sms_preference_enum;
+
+#endif /* _L4CRAC_ENUMS_H */
+
+
diff --git a/mcu/interface/protocol/general/l5_common.h b/mcu/interface/protocol/general/l5_common.h
new file mode 100644
index 0000000..2251a47
--- /dev/null
+++ b/mcu/interface/protocol/general/l5_common.h
@@ -0,0 +1,252 @@
+#ifndef _L5_COMMON_H_
+#define _L5_COMMON_H_
+
+#include "kal_public_defs.h"
+#include "md_sap.h"
+#include "svc_sap.h"
+#include "dcl.h"
+#include "dcl_uart.h"
+
+#define L5_LOCAL_PARA_HDR \
+ LOCAL_PARA_HDR \
+ kal_uint32 l5seq_id;
+
+#define L5_LOCAL_PARA_HDR8 \
+ LOCAL_PARA_HDR \
+ kal_uint8 l5seq_id8;
+
+#define L5IO_L5U_LOCAL_PARA_HDR \
+ LOCAL_PARA_HDR \
+ kal_uint32 l5seq_id;
+
+#define L5IO_L5U_LOCAL_PARA_HDR8 \
+ LOCAL_PARA_HDR \
+ kal_uint8 l5seq_id8;
+
+typedef struct {
+ L5IO_L5U_LOCAL_PARA_HDR
+} l5io_l5u_struct;
+
+typedef struct {
+ L5IO_L5U_LOCAL_PARA_HDR8
+} l5io_l5u_struct8;
+
+//////////////////////////////////////////////////////////////////////////////////////
+#define GMC_LOCAL_PARA_HDR \
+ LOCAL_PARA_HDR \
+ kal_uint32 src_id;
+
+typedef struct {
+ GMC_LOCAL_PARA_HDR
+ kal_char config_type[32];
+ kal_uint8 buffer_type; // 0 : local param buffer, 1 : peer buffer
+ kal_uint32 buffer_length;
+ kal_uint8 buffer[4096];
+} l5_general_modem_configure_set_req_struct;
+
+typedef struct {
+ GMC_LOCAL_PARA_HDR
+ kal_uint8 buffer_type; // 0 : local param buffer, 1 : peer buffer
+ kal_uint32 buffer_length;
+ kal_uint8 buffer[4096];
+} l5_general_modem_configure_set_cnf_struct;
+
+typedef struct {
+ GMC_LOCAL_PARA_HDR
+ kal_char config_type[32];
+} l5_general_modem_configure_get_req_struct;
+
+typedef struct {
+ GMC_LOCAL_PARA_HDR
+ kal_uint8 buffer_type; // 0 : local param buffer, 1 : peer buffer
+ kal_uint32 buffer_length;
+ kal_uint8 buffer[4096];
+} l5_general_modem_configure_get_cnf_struct;
+
+#define L5_RES_SEG_NUM (0x3FFFF)
+//18 bit for every user
+typedef enum {
+ //common result put here
+ L5_RES_COMMON_BEGIN = 0x00000000,
+ L5_RES_COMMON_SUCCESS = L5_RES_COMMON_BEGIN,
+ L5_RES_COMMON_END = L5_RES_COMMON_BEGIN + L5_RES_SEG_NUM,
+ //L5IO common result put in here(except XXXH's cause)
+ L5_RES_L5IO_BEGIN,
+ L5_RES_L5IO_END = L5_RES_L5IO_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_CAT_BEGIN,
+ L5_RES_CAT_END = L5_RES_CAT_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_CC_BEGIN,
+ L5_RES_CC_END = L5_RES_CC_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_NW_BEGIN,
+ L5_RES_NW_END = L5_RES_NW_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_PDN_BEGIN,
+ INVALID_PARA = L5_RES_PDN_BEGIN + 0x01,
+ NOT_FIND_APN_TO_ACT = L5_RES_PDN_BEGIN + 0x02,
+ NO_APN_INFO_TO_ABORT = L5_RES_PDN_BEGIN + 0x03,
+ APN_PROFILE_IS_DISABLED = L5_RES_PDN_BEGIN + 0x04,
+ NOT_FIND_CALL_INFO = L5_RES_PDN_BEGIN + 0x05,
+ REACH_MAX_USER = L5_RES_PDN_BEGIN + 0x06,
+ PROFILE_COUNT_ERROR = L5_RES_PDN_BEGIN + 0x07,
+ WRONG_APN_TYPE_OR_NO_APN = L5_RES_PDN_BEGIN + 0x08,
+ BUILT_IN_APN_NOT_READY = L5_RES_PDN_BEGIN + 0x09,
+ L5UPDN_ACT_CALL_RES = L5_RES_PDN_BEGIN + 0x70,
+ L5UPDN_FAIL_ABORT = L5UPDN_ACT_CALL_RES + 0x01,
+ L5UPDN_SUCC_ABORT = L5UPDN_ACT_CALL_RES + 0x02,
+ L5UPDN_FAIL_CONT = L5UPDN_ACT_CALL_RES + 0x03,
+ L5UPDN_SUCC_CONT = L5UPDN_ACT_CALL_RES + 0x04,
+ L5UPDN_REUSE = L5UPDN_ACT_CALL_RES + 0x05,
+ L5UPDN_ERROR_END = L5_RES_PDN_BEGIN + 0x7F,
+ L5_RES_PDN_END = L5_RES_PDN_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_RF_BEGIN,
+ L5_RES_RF_END = L5_RES_RF_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_SIM_BEGIN,
+ L5_RES_SIM_END = L5_RES_SIM_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_SMS_BEGIN,
+ L5_RES_SMS_U_BEGIN = L5_RES_SMS_BEGIN,
+ L5_RES_SMS_U_UNKNOWN_ACK_MODE = L5_RES_SMS_U_BEGIN,
+ L5_RES_SMS_U_INVALID_MEMORY_INDEX,
+ L5_RES_SMS_U_MMS_TYPE_ERROR,
+ L5_RES_SMS_U_STATUS_NOT_SUPPORT,
+ L5_RES_SMS_U_FAILURE,
+ L5_RES_SMS_U_FILTER_NOT_SUPPORTED,
+ L5_RES_SMS_U_FORMAT_NOT_SUPPORTED,
+ L5_RES_SMS_U_SET_SCA_INVALID,
+ L5_RES_SMS_U_NOT_INITIALIZED,
+ L5_RES_SMS_U_INVALID_SMSC_ADDRESS,
+ L5_RES_SMS_U_INVALID_PDU,
+ L5_RES_SMS_U_PREFER_STORAGE_NO_SUPPORT,
+ L5_RES_SMS_U_MMS_TYPE_INVALID,
+ L5_RES_SMS_U_SEND_TWO_SOURCE_EXIST,
+ L5_RES_SMS_U_OP_ONLY_ALLOWED_WITH_AT_IN_NON_PDU_MODE,
+ L5_RES_SMS_U_UNKNOWN_CPMS,
+ L5_RES_SMS_U_UNKNOWN_CNMI,
+ L5_RES_SMS_U_CPMS_UNSYNC,
+ L5_RES_SMS_U_SEND_C5GUSMS_FAIL,
+ L5_RES_SMS_U_MEMORY_FULL,
+ L5_RES_SMS_U_SEND_EMEMS_FAIL,
+ L5_RES_SMS_U_END = L5_RES_SMS_BEGIN + 0xFFFF,
+ //SMS AT is fixed with TS27.005
+ L5_RES_SMS_AT_BEGIN,
+ L5_RES_SMS_AT_UNASSIGNED_UNALLOCATED_NUMBER_1 = L5_RES_SMS_AT_BEGIN + 1,
+ L5_RES_SMS_AT_OPERATOR_DETERMINED_BARRING_8 = L5_RES_SMS_AT_BEGIN + 8,
+ L5_RES_SMS_AT_CALL_BARRED_10 = L5_RES_SMS_AT_BEGIN + 10,
+ L5_RES_SMS_AT_SHORT_MESSAGE_TRANSFER_REJECTED_21 = L5_RES_SMS_AT_BEGIN + 21,
+ L5_RES_SMS_AT_DESTINATION_OUT_OF_SERVICE_27 = L5_RES_SMS_AT_BEGIN + 27,
+ L5_RES_SMS_AT_UNIDENTIFIED_SUBSCRIBER_28 = L5_RES_SMS_AT_BEGIN + 28,
+ L5_RES_SMS_AT_FACILITY_REJECTED_29 = L5_RES_SMS_AT_BEGIN + 29,
+ L5_RES_SMS_AT_UNKNOWN_SUBSCRIBER_30 = L5_RES_SMS_AT_BEGIN + 30,
+ L5_RES_SMS_AT_NETWORK_OUT_OF_ORDER_38 = L5_RES_SMS_AT_BEGIN + 38,
+ L5_RES_SMS_AT_TEMPORARY_FAILURE_41 = L5_RES_SMS_AT_BEGIN + 41,
+ L5_RES_SMS_AT_CONGESTION_42 = L5_RES_SMS_AT_BEGIN + 42,
+ L5_RES_SMS_AT_RESOURCES_UNAVAILABLE_UNSPECIFIED_47 = L5_RES_SMS_AT_BEGIN + 47,
+ L5_RES_SMS_AT_REQUESTED_FACILITY_NOT_SUBSCRIBED_50 = L5_RES_SMS_AT_BEGIN + 50,
+ L5_RES_SMS_AT_REQUESTED_FACILITY_NOT_IMPLEMENTED_69 = L5_RES_SMS_AT_BEGIN + 69,
+ L5_RES_SMS_AT_INVALID_SHORT_MESSAGE_TRANSFER_REFERENCE_VALUE_81 = L5_RES_SMS_AT_BEGIN + 81,
+ L5_RES_SMS_AT_INVALID_MESSAGE_UNSPECIFIED_95 = L5_RES_SMS_AT_BEGIN + 95,
+ L5_RES_SMS_AT_INVALID_MANDATORY_INFORMATION_96 = L5_RES_SMS_AT_BEGIN + 96,
+ L5_RES_SMS_AT_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED_97 = L5_RES_SMS_AT_BEGIN + 97,
+ L5_RES_SMS_AT_MESSAGE_NOT_COMPATIBLE_WITH_SHORT_MESSAGE_PROTOCOL_STATE_98 = L5_RES_SMS_AT_BEGIN + 98,
+ L5_RES_SMS_AT_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED_99 = L5_RES_SMS_AT_BEGIN + 99,
+ L5_RES_SMS_AT_PROTOCOL_ERROR_UNSPECIFIED_111 = L5_RES_SMS_AT_BEGIN + 111,
+ L5_RES_SMS_AT_INTERWORKING_UNSPECIFIED_127 = L5_RES_SMS_AT_BEGIN + 127,
+ L5_RES_SMS_AT_TELEMATIC_INTERWORKING_NOT_SUPPORTED_0x80 = L5_RES_SMS_AT_BEGIN + 0x80, //0x80-0x8F: TP-PID errors
+ L5_RES_SMS_AT_SHORT_MESSAGE_TYPE_0_NOT_SUPPORTED_0x81 = L5_RES_SMS_AT_BEGIN + 0x81,
+ L5_RES_SMS_AT_CANNOT_REPLACE_SHORT_MESSAGE_0x82 = L5_RES_SMS_AT_BEGIN + 0x82,
+ L5_RES_SMS_AT_UNSPECIFIED_TP_PID_ERROR_0x8F = L5_RES_SMS_AT_BEGIN + 0x8F,
+ L5_RES_SMS_AT_DATA_CODING_SCHEME_ALPHABET_NOT_SUPPORTED_0x90 = L5_RES_SMS_AT_BEGIN + 0x90, //0x90-0x9F: TP-DCS errors
+ L5_RES_SMS_AT_MESSAGE_CLASS_NOT_SUPPORTED_0x91 = L5_RES_SMS_AT_BEGIN + 0x91,
+ L5_RES_SMS_AT_UNSPECIFIED_TP_DCS_ERROR_0x9F = L5_RES_SMS_AT_BEGIN + 0x9F,
+ L5_RES_SMS_AT_COMMAND_CANNOT_BE_ACTIONED_0xA0 = L5_RES_SMS_AT_BEGIN + 0xA0, //0xA0-0xAF: TP-Command errors
+ L5_RES_SMS_AT_COMMAND_UNSUPPORTED_0xA1 = L5_RES_SMS_AT_BEGIN + 0xA1,
+ L5_RES_SMS_AT_UNSPECIFIED_TP_COMMAND_ERROR_0xAF = L5_RES_SMS_AT_BEGIN + 0xAF,
+ L5_RES_SMS_AT_TPDU_NOT_SUPPORTED_0xB0 = L5_RES_SMS_AT_BEGIN + 0xB0,
+ L5_RES_SMS_AT_SC_BUSY_0xC0 = L5_RES_SMS_AT_BEGIN + 0xC0,
+ L5_RES_SMS_AT_NO_SC_SUBSCRIPTION_0xC1 = L5_RES_SMS_AT_BEGIN + 0xC1,
+ L5_RES_SMS_AT_SC_SYSTEM_FAILURE_0xC2 = L5_RES_SMS_AT_BEGIN + 0xC2,
+ L5_RES_SMS_AT_INVALID_SME_ADDRESS_0xC3 = L5_RES_SMS_AT_BEGIN + 0xC3,
+ L5_RES_SMS_AT_DESTINATION_SME_BARRED_0xC4 = L5_RES_SMS_AT_BEGIN + 0xC4,
+ L5_RES_SMS_AT_SM_REJECTED_DUPLICATE_SM_0xC5 = L5_RES_SMS_AT_BEGIN + 0xC5,
+ L5_RES_SMS_AT_TP_VPF_NOT_SUPPORTED_0xC6 = L5_RES_SMS_AT_BEGIN + 0xC6,
+ L5_RES_SMS_AT_TP_VP_NOT_SUPPORTED_0xC7 = L5_RES_SMS_AT_BEGIN + 0xC7,
+ L5_RES_SMS_AT_SIM_SMS_STORAGE_FULL_0xD0 = L5_RES_SMS_AT_BEGIN + 0xD0,
+ L5_RES_SMS_AT_NO_SMS_STORAGE_CAPABILITY_IN_SIM_0xD1 = L5_RES_SMS_AT_BEGIN + 0xD1,
+ L5_RES_SMS_AT_ERROR_IN_MS_0xD2 = L5_RES_SMS_AT_BEGIN + 0xD2,
+ L5_RES_SMS_AT_MEMORY_CAPACITY_EXCEEDED_0xD3 = L5_RES_SMS_AT_BEGIN + 0xD3,
+ L5_RES_SMS_AT_SIM_APPLICATION_TOOLKIT_BUSY_0xD4 = L5_RES_SMS_AT_BEGIN + 0xD4,
+ L5_RES_SMS_AT_SIM_DATA_DOWNLOAD_ERROR_0xD5 = L5_RES_SMS_AT_BEGIN + 0xD5,
+ L5_RES_SMS_AT_SPECIFIC_APPLICATION_ERROR_0xE0 = L5_RES_SMS_AT_BEGIN + 0xE0, //0xE0-0xEF: Specific to an application
+ L5_RES_SMS_AT_UNSPECIFIED_ERROR_CAUSE_0xFF = L5_RES_SMS_AT_BEGIN + 0xFF,
+ L5_RES_SMS_AT_ME_FAILURE_300 = L5_RES_SMS_AT_BEGIN + 300,
+ L5_RES_SMS_AT_SMS_SERVICE_OF_ME_RESERVED_301 = L5_RES_SMS_AT_BEGIN + 301,
+ L5_RES_SMS_AT_OPERATION_NOT_ALLOWED_302 = L5_RES_SMS_AT_BEGIN + 302,
+ L5_RES_SMS_AT_OPERATION_NOT_SUPPORTED_303 = L5_RES_SMS_AT_BEGIN + 303,
+ L5_RES_SMS_AT_INVALID_PDU_MODE_PARAMETER_304 = L5_RES_SMS_AT_BEGIN + 304,
+ L5_RES_SMS_AT_INVALID_TEXT_MODE_PARAMETER_305 = L5_RES_SMS_AT_BEGIN + 305,
+ L5_RES_SMS_AT_SIM_NOT_INSERTED_310 = L5_RES_SMS_AT_BEGIN + 310,
+ L5_RES_SMS_AT_SIM_PIN_REQUIRED_311 = L5_RES_SMS_AT_BEGIN + 311,
+ L5_RES_SMS_AT_PH_SIM_PIN_REQUIRED_312 = L5_RES_SMS_AT_BEGIN + 312,
+ L5_RES_SMS_AT_SIM_FAILURE_313 = L5_RES_SMS_AT_BEGIN + 313,
+ L5_RES_SMS_AT_SIM_BUSY_314 = L5_RES_SMS_AT_BEGIN + 314,
+ L5_RES_SMS_AT_SIM_WRONG_315 = L5_RES_SMS_AT_BEGIN + 315,
+ L5_RES_SMS_AT_SIM_PUK_REQUIRED_316 = L5_RES_SMS_AT_BEGIN + 316,
+ L5_RES_SMS_AT_SIM_PIN2_REQUIRED_317 = L5_RES_SMS_AT_BEGIN + 317,
+ L5_RES_SMS_AT_SIM_PUK2_REQUIRED_318 = L5_RES_SMS_AT_BEGIN + 318,
+ L5_RES_SMS_AT_MEMORY_FAILURE_320 = L5_RES_SMS_AT_BEGIN + 320,
+ L5_RES_SMS_AT_INVALID_MEMORY_INDEX_321 = L5_RES_SMS_AT_BEGIN + 321,
+ L5_RES_SMS_AT_MEMORY_FULL_322 = L5_RES_SMS_AT_BEGIN + 322,
+ L5_RES_SMS_AT_SMSC_ADDRESS_UNKNOWN_330 = L5_RES_SMS_AT_BEGIN + 330,
+ L5_RES_SMS_AT_NO_NETWORK_SERVICE_331 = L5_RES_SMS_AT_BEGIN + 331,
+ L5_RES_SMS_AT_NETWORK_TIMEOUT_332 = L5_RES_SMS_AT_BEGIN + 332,
+ L5_RES_SMS_AT_NO_CNMA_ACKNOWLEDGEMENT_EXPECTED_340 = L5_RES_SMS_AT_BEGIN + 340,
+ L5_RES_SMS_AT_UNKNOWN_ERROR_500 = L5_RES_SMS_AT_BEGIN + 500,
+ L5_RES_SMS_AT_END = L5_RES_SMS_AT_BEGIN + 0xFFFF,
+ L5_RES_SMS_END = L5_RES_SMS_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_SS_BEGIN,
+ L5_RES_SS_END = L5_RES_SS_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_SWITCH_BEGIN,
+ L5_RES_SWITCH_END = L5_RES_SWITCH_BEGIN + L5_RES_SEG_NUM,
+ L5_RES_SYS_BEGIN,
+ L5_RES_SYS_ERR_OPERATION_NOT_ALLOWED,
+ L5_RES_SYS_ERR_PEROID_EXCEED,
+ L5_RES_SYS_END = L5_RES_SYS_BEGIN + L5_RES_SEG_NUM,
+ //common l5u result put here
+ L5_RES_L5U_BEGIN,
+ L5_RES_L5U_SIM_NOT_INSERT,
+ L5_RES_L5U_AT_CMD_ENCODE_FAIL,
+ L5_RES_L5U_AT_CNF_DECODE_FAIL,
+ L5_RES_L5U_AT_CNF_TYPE_ERROR,
+ L5_RES_L5U_FAIL,
+ L5_RES_L5U_END = L5_RES_L5U_BEGIN + L5_RES_SEG_NUM,
+} l5_res_enum;
+
+typedef struct {
+ kal_bool is_standard;
+ kal_char name[32];
+ union {
+ kal_uint8 c[16];
+ kal_uint32 i[4];
+ } uuid;
+ kal_uint32 cid_count;
+ void *cid_table_ptr;
+
+ kal_uint32 is_custom_service;
+ kal_uint32 has_custom_service;
+} mbci_service_t;
+
+typedef kal_uint32 (*DSS_SERVICE_OPEN)(UART_PORT port);
+typedef kal_uint32 (*DSS_SERVICE_CLOSE)(UART_PORT port);
+
+typedef struct {
+ kal_char name[32];
+ union {
+ kal_uint8 c[16];
+ kal_uint32 i[4];
+ } uuid;
+
+ DSS_SERVICE_OPEN open_func;
+ DSS_SERVICE_CLOSE close_func;
+} mbci_dss_service_t;
+
+typedef void (*CUSTOM_L5_TIMER_CB)(void *cb_priv);
+
+#endif
diff --git a/mcu/interface/protocol/general/l5_public_utility.h b/mcu/interface/protocol/general/l5_public_utility.h
new file mode 100644
index 0000000..2fe55c5
--- /dev/null
+++ b/mcu/interface/protocol/general/l5_public_utility.h
@@ -0,0 +1,64 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * l5_public_utility.h
+ *
+ *
+ * Description:
+ * ------------
+ * This file contains the function prototype for
+ * AT PROXY module utility functions.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+
+#ifndef _L5_PUBLIC_UTILITY_H
+#define _L5_PUBLIC_UTILITY_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+#include "sim_exported_enum.h"
+
+kal_uint8 l5io_get_urc_report_mode_by_ps_id(protocol_id_enum ps_id, atp_urc_report_mode_enum urc_type);
+kal_uint32 l5_get_l5seqid();
+kal_uint8 l5_get_current_rat_mode(kal_uint8 ps_id);
+#endif /* _l5_PUBLIC_UTILITY_H */
diff --git a/mcu/interface/protocol/general/l5_structs.h b/mcu/interface/protocol/general/l5_structs.h
new file mode 100644
index 0000000..63ee5c0
--- /dev/null
+++ b/mcu/interface/protocol/general/l5_structs.h
@@ -0,0 +1,276 @@
+/*****************************************************************************
+* 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 _L5_STRUCTS_H_
+#define _L5_STRUCTS_H_
+
+#include "ps_public_struct.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "kal_public_api.h"
+#include "atp_public_defs.h"
+#ifndef __MTK_TARGET__
+#include "dcl_uart.h"
+#endif
+#include "l5_common.h"
+
+#define L5_TABLE_DATA_SIZE (20)
+#define L5_L5IO_MBCI_MAX_PENDING_NUM (16)
+#define L5_L5IO_MBCI_MAX_CONTROL_TRANSFER (4096)
+#define L5_L5IO_MBCI_SUPPORT_VERSION (0x0100)
+#define L5_L5IO_MBCI_SUPPORT_EXT_VERSION (0x0300)
+
+#define L5SEQ_ID_URC (0xffffffff)
+/**********L5IO<->L5U***************/
+
+#define L5IO_AT_CMD_REQ_LOCAL_PARA_HDR\
+ L5IO_L5U_LOCAL_PARA_HDR \
+ atp_channel_enum md_ch_id;
+
+#define L5IO_AT_CMD_CNF_LOCAL_PARA_HDR\
+ L5IO_L5U_LOCAL_PARA_HDR \
+ atp_channel_enum md_ch_id; \
+ proxy_cmd_result_enum result; \
+ atp_err_id_enum cause; \
+ kal_bool stuff;
+
+#define L5IO_AT_URC_IND_LOCAL_PARA_HDR\
+ L5IO_L5U_LOCAL_PARA_HDR \
+ atp_channel_enum md_ch_id; \
+ kal_bool stuff;
+
+typedef struct {
+ L5IO_AT_CMD_REQ_LOCAL_PARA_HDR
+}l5io_at_cmd_req_struct;
+
+typedef struct {
+ L5IO_AT_CMD_CNF_LOCAL_PARA_HDR
+}l5io_at_cmd_cnf_struct;
+
+typedef struct {
+ L5IO_AT_URC_IND_LOCAL_PARA_HDR
+}l5io_at_urc_ind_struct;
+
+/**********L5U<->ATP***************/
+
+#define L5U_ATP_CMD_REQ_LOCAL_PARA_HDR\
+ LOCAL_PARA_HDR \
+ atp_channel_enum md_ch_id;
+
+#define L5U_ATP_CMD_CNF_LOCAL_PARA_HDR\
+ LOCAL_PARA_HDR \
+ atp_channel_enum md_ch_id; \
+ proxy_cmd_result_enum result; \
+ atp_err_id_enum cause; \
+ kal_bool stuff;
+
+#define L5U_ATP_URC_IND_LOCAL_PARA_HDR\
+ LOCAL_PARA_HDR \
+ atp_channel_enum md_ch_id; \
+ kal_bool stuff;
+
+
+typedef struct {
+ L5U_ATP_CMD_REQ_LOCAL_PARA_HDR
+}l5u_atp_at_cmd_req_struct;
+
+
+
+typedef struct {
+ L5U_ATP_CMD_CNF_LOCAL_PARA_HDR
+}l5u_atp_at_cmd_cnf_struct;
+
+typedef struct {
+ L5U_ATP_URC_IND_LOCAL_PARA_HDR
+}l5u_atp_at_urc_ind_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ UART_PORT port;
+ kal_uint8 client_name[16];
+}l5io_l5io_mipc_dump_struct;
+typedef l5io_l5io_mipc_dump_struct l5io_l5io_mipc_recv_dump_struct;
+typedef l5io_l5io_mipc_dump_struct l5io_l5io_mipc_send_dump_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 is_frag_msg;
+ kal_uint16 mbim_ver;
+ kal_uint16 mbim_ext_ver;
+}l5io_l5io_mbci_dump_struct;
+typedef l5io_l5io_mbci_dump_struct l5io_l5io_mbci_recv_dump_struct;
+typedef l5io_l5io_mbci_dump_struct l5io_l5io_mbci_send_dump_struct;
+
+/***** UT begin *****/
+#define L5IO_UT_MAX_UART_LENGTH (128)
+
+/* MSG_ID_L5IO_UT_AT_CMD_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 ch_id;
+ kal_bool stuff;
+ kal_uint8 at_string[L5IO_UT_MAX_UART_LENGTH];
+} l5io_ut_at_cmd_cnf_struct;
+
+#ifndef __MTK_TARGET__
+/* MSG_ID_L5IO_UT_UART_RTR_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ UART_PORT port;
+ kal_uint16 at_length;
+ kal_uint8 at_string[L5IO_UT_MAX_UART_LENGTH];
+} l5io_ut_uart_rtr_ind_struct;
+
+/* MSG_ID_L5IO_UT_UART_RTW_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ UART_PORT port;
+} l5io_ut_uart_rtw_ind_struct;
+
+/* MSG_ID_L5IO_UT_AT_CMD_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 ch_id;
+ kal_uint8 at_string[L5IO_UT_MAX_UART_LENGTH];
+} l5io_ut_at_cmd_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mode[ATP_REPORT_MODE_MAX];
+} l5io_ut_urc_report_mode_ind_struct;
+
+//MSG_ID_L5_UT_IO_CONTEXT_REQ
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 cid;
+ kal_uint16 head;
+ kal_uint16 length;
+ kal_uint8 data[ATP_MAX_DATA_QUEUE_LENGTH];
+ kal_uint8 uart_sim_mapping[ATP_CHANNEL_NUMBER];
+} l5io_ut_io_context_req_struct;
+
+#endif /* __MTK_TARGET__ */
+/***** UT end *****/
+
+#define MAX_CELL_NUM_3G (1)
+#define MAX_CELL_NUM_4G (8)
+#define MAX_CELL_NUM_5G (8)
+
+typedef struct {
+ kal_bool activated;
+ kal_uint32 ul_arfcn;
+ kal_uint32 dl_arfcn;
+ kal_uint32 dl_center_frequency;
+ //kal_uint32 ul_center_frequency;
+ kal_uint32 ul_bandwidth;
+ kal_uint32 dl_bandwidth;
+ kal_bool is_connected;
+ kal_uint32 pci;
+} l5_cell_info1_t; //if changed, need to notify L5IO
+
+typedef struct {
+ kal_bool configured;
+ kal_int16 rsrp; //in dbm,range[-162, 22], -32768 means invalid
+ kal_int8 rsrq; //in db,range[-40, 10], -128 means invalid
+ kal_int8 sinr; //in db,range[-20, 40], -128 means invalid
+ kal_int16 rssi; //in dbm,range[-150, -10], -32768 means invalid
+ kal_uint32 pci;
+} l5_cell_info2_t; //if changed, no need to notify L5IO
+
+
+extern kal_uint32 eifconfig[1];
+
+
+
+typedef enum
+{
+ L5IO_TABLE_CMD_MODE_QUEUE, // AT commands in Whitelist need to be queued
+ L5IO_TABLE_CMD_MODE_EXE, // AT commands in Whitelist need to be executed
+ L5IO_TABLE_CMD_MODE_ERROR, // AT commands in Whitelist need to return Error
+ L5IO_TABLE_CMD_MODE_NONBLOCK,
+
+} l5io_table_cmd_mode_enum;
+
+typedef struct
+{
+ kal_uint16 cmd_id;
+ atp_cmd_mode_enum cmd_mode;
+ l5io_table_cmd_mode_enum mode;
+
+} l5io_list_table_item;
+
+typedef struct
+{
+ kal_uint8 urc[L5_TABLE_DATA_SIZE];
+ atp_urc_report_mode_enum rpt_mode;
+
+} l5io_urc_rpt_mode_chk_tbl_item;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 src_id;
+ kal_char apn[APN_STRING_LEN];
+}l5updn_get_disabled_apn_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 src_id;
+ kal_bool disabled; // TRUE means apn is disabled
+}l5updn_get_disabled_apn_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ctx_id;
+ kal_uint32 mbim_msg_len;
+} mbim_l5io_mbci_command_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ctx_id;
+ kal_uint32 mbim_msg_len;
+} mbim_l5io_mbci_command_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ctx_id;
+ kal_uint32 mbim_msg_len;
+} mbim_l5io_mbci_status_ind_struct;
+
+#endif
diff --git a/mcu/interface/protocol/general/l5mipc_struct.h b/mcu/interface/protocol/general/l5mipc_struct.h
new file mode 100644
index 0000000..e770dc8
--- /dev/null
+++ b/mcu/interface/protocol/general/l5mipc_struct.h
@@ -0,0 +1,127 @@
+#ifndef _L5MIPC_STRUCT_H_
+#define _L5MIPC_STRUCT_H_
+
+#include "l5_common.h"
+
+/** Filter rule */
+#define IPC_FILTER_BY_PROTOCOL (0x0001 << 0)
+#define IPC_FILTER_BY_SRC_PORT (0x0001 << 1)
+#define IPC_FILTER_BY_DST_PORT (0x0001 << 2)
+#define IPC_FILTER_BY_SRC_IPV4 (0x0001 << 3)
+#define IPC_FILTER_BY_DST_IPV4 (0x0001 << 4)
+#define IPC_FILTER_BY_SRC_IPV6 (0x0001 << 5)
+#define IPC_FILTER_BY_DST_IPV6 (0x0001 << 6)
+#define IPC_FILTER_BY_ICMPV4_TYPE (0x0001 << 7)
+#define IPC_FILTER_BY_ICMPV6_TYPE (0x0001 << 8)
+#define IPC_FILTER_BY_EBI (0x0001 << 9)
+#define IPC_FILTER_BY_PDN_ID (0x0001 << 10)
+#define IPC_FILTER_BY_NETIF_ID (0x0001 << 11)
+#define IPC_FILTER_BY_TCP_FLAGS (0x0001 << 12)
+#define IPC_FILTER_BY_SPI (0x0001 << 13)
+
+#define IPC_IP_TYPE_IPV4 1
+#define IPC_IP_TYPE_IPV6 2
+
+/*
+ * IANA IP Protocol Numbers.
+ * Ref: http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
+ */
+#define IPC_HDR_PROT_IPV6_HOP 0 /* IPv6 Hop-by-Hop Option */
+#define IPC_HDR_PROT_ICMP 1 /* Internet Control Message */
+#define IPC_HDR_PROT_IPV4_ENC 4 /* IPv4 encapsulation */
+#define IPC_HDR_PROT_TCP 6 /* Transmission Control */
+#define IPC_HDR_PROT_UDP 17 /* User Datagram */
+#define IPC_HDR_PROT_IPV6_ENC 41 /* IPv6 encapsulation */
+#define IPC_HDR_PROT_IPV6_ROUTE 43 /* Routing Header for IPv6 */
+#define IPC_HDR_PROT_IPV6_FRAG 44 /* Fragment Header for IPv6 */
+#define IPC_HDR_PROT_ESP 50 /* Encap Security Payload */
+#define IPC_HDR_PROT_AH 51 /* Authentication Header */
+#define IPC_HDR_PROT_ICMPV6 58 /* ICMP for IPv6 */
+#define IPC_HDR_PROT_IPV6_NONEXT 59 /* No Next Header for IPv6 */
+#define IPC_HDR_PROT_IPV6_DEST 60 /* Destination Options for IPv6 */
+
+/*
+ * TCP_FLAG.
+ */
+#define IPC_HDR_TCP_FLAG_FIN 0x01
+#define IPC_HDR_TCP_FLAG_SYN 0x02
+#define IPC_HDR_TCP_FLAG_RST 0x04 // Reset
+#define IPC_HDR_TCP_FLAG_PUSH 0x08
+#define IPC_HDR_TCP_FLAG_ACK 0x10
+#define IPC_HDR_TCP_FLAG_URG 0x20 // Urgent
+#define IPC_HDR_TCP_FLAG_ECE 0x40 // ECN Echo
+#define IPC_HDR_TCP_FLAG_CWR 0x80 // Congestion Window Reduced
+#define IPC_HDR_TCP_FLAG_NS 0x100 // ECN-nonce concealment protection (added to header by RFC 3540)
+
+typedef struct {
+ L5IO_L5U_LOCAL_PARA_HDR
+
+ kal_uint8 nccmni_net_if; //kal_uint8
+ kal_uint8 reserve1;
+ kal_uint16 nccmni_seq;
+
+ kal_uint32 valid_field; //mandatory, a bitmap, refer to IPC_FILTER_BY_XXX
+ kal_uint8 ip_type; //IPC_IP_TYPE_IPV4 or IPC_IP_TYPE_IPV6
+ kal_uint8 ctrl_protocol; //IPC_HDR_PROT_XXX
+ kal_uint16 src_port;
+ kal_uint16 dst_port;
+ kal_uint16 tcp_flags; //IPC_HDR_TCP_FLAG_XXX
+ kal_uint32 spi; //
+ union{
+ kal_uint8 addr8[4];
+ kal_uint32 addr32;
+ } src_ipv4; // Source IPv4 address to filter.
+ union{
+ kal_uint8 addr8[4];
+ kal_uint32 addr32;
+ } dst_ipv4; // Destination IPv4 address to filter.
+
+ union{
+ kal_uint8 addr8[16];
+ kal_uint32 addr32[4];
+ } src_ipv6; // Source IPv6 address to filter.
+ union{
+ kal_uint8 addr8[16];
+ kal_uint32 addr32[4];
+ } dst_ipv6; // Destination IPv6 address to filter.
+
+ kal_uint8 icmpv4_type; // Type field of ICMPv4 header to filter.
+ kal_uint8 icmpv6_type; // Type field of ICMPv6 header to filter.
+ kal_uint16 reserve2;
+ kal_uint32 features;
+} l5io_set_filter_req_struct;
+
+typedef struct {
+ L5IO_L5U_LOCAL_PARA_HDR
+
+ kal_uint8 nccmni_net_if; //kal_uint8
+ kal_uint8 reserve1;
+ kal_uint16 nccmni_seq;
+
+ kal_int32 filter_id; //>=0: filter id, <0: set failed
+} l5io_set_filter_cnf_struct;
+
+typedef struct {
+ L5IO_L5U_LOCAL_PARA_HDR
+
+ kal_uint8 nccmni_net_if; //kal_uint8
+ kal_uint8 reserve1;
+ kal_uint16 nccmni_seq;
+
+ kal_int32 is_deregister_all_filter; //0: deregister the filter id only, 1: deregister all filter
+ kal_int32 filter_id; //filter id to deregister
+} l5io_reset_filter_req_struct;
+
+typedef struct {
+ L5IO_L5U_LOCAL_PARA_HDR
+
+ kal_uint8 nccmni_net_if; //kal_uint8
+ kal_uint8 reserve1;
+ kal_uint16 nccmni_seq;
+
+ kal_int32 is_success; //1: succes
+} l5io_reset_filter_cnf_struct;
+
+
+#endif
+
diff --git a/mcu/interface/protocol/general/las_utility.h b/mcu/interface/protocol/general/las_utility.h
new file mode 100644
index 0000000..ec01abd
--- /dev/null
+++ b/mcu/interface/protocol/general/las_utility.h
@@ -0,0 +1,111 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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:
+ * ---------
+ * las_utility.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * Description:
+ * ------------
+ * Common header file for utility function provided by LAS.
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+#ifndef __LAS_UTILITY_H__
+#define __LAS_UTILITY_H__
+
+extern kal_uint8 las_get_gas_sys_mode_by_sim_index(kal_uint8 sim_index);
+
+#endif /* __LAS_UTILITY_H__ */
diff --git a/mcu/interface/protocol/general/lbs_gnss_tc_struct.h b/mcu/interface/protocol/general/lbs_gnss_tc_struct.h
new file mode 100644
index 0000000..acda334
--- /dev/null
+++ b/mcu/interface/protocol/general/lbs_gnss_tc_struct.h
@@ -0,0 +1,98 @@
+#ifndef _LBS_GNSS_TC_STRUCT_H
+#define _LBS_GNSS_TC_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "gnss_tc_common_struct.h"
+#include "ps_public_utility.h"
+
+#pragma pack(push)
+#pragma pack(8) /* To avoid AP modem alignment issue */
+
+typedef struct
+{
+ kal_uint16 transactionID; /* 0...65535 */
+ kal_uint8 ctrlFlag; /* 0: Disable/request to STOP. 1: Enable/request to START. 2: Test Mode Enable */
+ kal_uint32 pulsePeriod; /* 100~300000 msec, effective when ctrlFlag:2 */
+ kal_uint16 pulseNumber; /* 0,1~7200. 0: Periodic mode, 1~7200 none-Periodic Number of pulse */
+} mnl_md_time_sync_req_struct;
+
+typedef struct
+{
+ kal_uint16 transactionID; /* 0...65535 */
+} mnl_md_time_sync_rsp_struct;
+
+typedef struct
+{
+ kal_uint16 transactionID; /* 0...65535 */
+ cell_information_struct cell_info;
+ gnss_timeInformation_struct gnss_timeInfo;
+} mnl_md_time_info_rsp_struct;
+
+typedef struct
+{
+ kal_uint16 transactionID; /* 0...65535 */
+} mnl_md_time_sync_cnf_struct;
+
+typedef struct
+{
+ kal_uint16 transactionID; /* 0...65535 */
+ cell_information_struct cell_info;
+ gnss_timeInformation_struct gnss_timeInfo;
+} mnl_md_time_sync_ind_struct;
+
+#pragma pack(pop) /* Restore the alignment configuration */
+
+/* LBS -> GNSS_TC */
+/* This structure is for MSG_ID_LBS_GNSS_TC_TIME_SYNC_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ mnl_md_time_sync_req_struct timeSyncReq;
+} lbs_gnss_tc_time_sync_req_struct;
+
+/* This structure is for MSG_ID_LBS_GNSS_TC_TIME_SYNC_RSP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ mnl_md_time_sync_rsp_struct timeSyncRsp;
+} lbs_gnss_tc_time_sync_rsp_struct;
+
+/* This structure is for MSG_ID_LBS_GNSS_TC_TIME_INFO_RSP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ mnl_md_time_info_rsp_struct timeInfoRsp;
+} lbs_gnss_tc_time_info_rsp_struct;
+
+/* This structure is for MSG_ID_LBS_GNSS_TC_ACTIVE_SIM_RSP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 active_sim;
+ rat_enum active_rat;
+} lbs_gnss_tc_active_sim_rsp_struct;
+
+
+/* GNSS_TC -> LBS */
+/* This structure is for MSG_ID_LBS_GNSS_TC_TIME_SYNC_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ mnl_md_time_sync_cnf_struct timeSyncCnf;
+} lbs_gnss_tc_time_sync_cnf_struct;
+
+/* This structure is for MSG_ID_LBS_GNSS_TC_TIME_SYNC_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ mnl_md_time_sync_ind_struct timeSyncInd;
+} lbs_gnss_tc_time_sync_ind_struct;
+
+#endif /*_LBS_GNSS_TC_STRUCT_H*/
+
diff --git a/mcu/interface/protocol/general/lpp_lbs_msg_struct.h b/mcu/interface/protocol/general/lpp_lbs_msg_struct.h
new file mode 100644
index 0000000..9dc9fbc
--- /dev/null
+++ b/mcu/interface/protocol/general/lpp_lbs_msg_struct.h
@@ -0,0 +1,945 @@
+/******************************************************************************
+* 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:
+ * --------------------------------------------------------
+ * lpp_lbs_msg_struct.h
+ *
+ * Project:
+ * --------------------------------------------------------
+ * LTE project
+ *
+ * Description:
+ * --------------------------------------------------------
+ * LTE Positioning Protocol - LBS Message Structure Definition
+ *
+ * Author:
+ * --------------------------------------------------------
+ * -------
+ *
+ * --------------------------------------------------------
+ * $Log$
+ *
+ * 04 15 2020 jie-yu.wang
+ * [MOLY00499242] [LPP][Gen97] MP5 feature- Inter RAT eCID
+ * [NR15.R3.MP][LPP] inter-RAT eCID.
+ *
+ * 06 20 2019 jie-yu.wang
+ * [MOLY00415205] [AGPS] [LBS] NR Neighbor cell information for SUPL
+ * [OA][LBS] SUPL Nbr Cell Interface.
+ *
+ * 03 28 2019 jie-yu.wang
+ * [MOLY00394881] [LPP] Inter RAT OTDOA modification
+ * [LPP] InterRAT OTDOA interface.
+ *
+ * 11 29 2018 roland.li
+ * [MOLY00363204] [Gen97] NR positioning interface check-in
+ * [LPP] 5G positioning interface.
+ *
+ * 03 09 2018 jie-yu.wang
+ * [MOLY00306235] [UMOLYE] LPP ASN Release 14 upgrade
+ * [LPP] LPP SWIP R14 upgrade.
+ *
+ * 10 20 2017 jie-yu.wang
+ * [MOLY00284367] [LPP] LR12 Earlyfix Development
+ * [LPP] Earlyfix Modification.
+ *
+ * 07 07 2017 jie-yu.wang
+ * [MOLY00261827] [UMOYLA] LPPe development
+ * [LPP] LPPe code change check-in.
+ *
+ * 10 28 2016 wynne.chu
+ * [MOLY00192824] [LBS/GPS] L+L development
+ *
+ * .
+ *
+ * 01 14 2015 roland.li
+ * [MOLY00092193] [UMOLY][LPP]LPP R10R11 feature checkin
+ * .
+ *
+ * 09 26 2014 roland.li
+ * [MOLY00079521] [LPP][User Plane]OTDOA assistance data size reduction
+ * .
+ *
+ *
+ *****************************************************************************/
+
+#ifndef _LPP_LBS_MSG_STRUCT_H
+#define _LPP_LBS_MSG_STRUCT_H
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+/* LPP and LPPe common interface */
+#include "lpp_lppe_def.h"
+#include "lpp_lppe_struct.h"
+#include "lbs_common_enum.h"
+
+//#if defined(__LPP_CP_SUPPORT__) || defined(__LPP_UP_SUPPORT__)
+
+/*****************************************************************************
+ * Macros Without Parameters
+ *****************************************************************************/
+#define LPP_PEER_OTDOA_MAX_NBR_CELL_FREQ_LAYER_NUM 3 /* inherit LPP_OTDOA_MAX_NBR_CELL_FREQ_LAYER_NUM */
+#define LPP_PEER_OTDOA_MAX_NBR_CELL_LIST_NUM 24 /* inherit LPP_OTDOA_MAX_NBR_CELL_LIST_NUM */
+
+#define LPP_PEER_ECID_MAX_MEASURED_CELL_INFO_NUM 32 /* inherit LPP_ECID_MAX_MEASURED_CELL_INFO_NUM */
+
+#define LPP_PEER_MAX_BANDS 64 /* inherit LPP_MAX_BANDS */
+#define MAX_ENUM_VALUE 2147483647 /* To align AP structure */
+/* Define of peerNbrCellBitmap*/
+#define LPP_PEER_OTDOA_NBR_CELL_BIT_EARFCNVALID 0x80
+#define LPP_PEER_OTDOA_NBR_CELL_BIT_ISCPLENGTHEXTENDEDVALID 0x40
+#define LPP_PEER_OTDOA_NBR_CELL_BIT_ISCPLENGTHEXTENDED 0x20
+#define LPP_PEER_OTDOA_NBR_CELL_BIT_ISFOURANTPORTCONFIGVALID 0x10
+#define LPP_PEER_OTDOA_NBR_CELL_BIT_ISFOURANTPORTCONFIG 0x08
+#define LPP_PEER_OTDOA_NBR_CELL_BIT_PRSINFOVALID 0x04
+#define LPP_PEER_OTDOA_NBR_CELL_BIT_SLOTNUMBEROFFSETVALID 0x02
+#define LPP_PEER_OTDOA_NBR_CELL_BIT_PRSSUBFRAMEOFFSETVALID 0x01
+/*****************************************************************************
+ * Macros With Parameters
+ *****************************************************************************/
+/*Macros for peerNbrCellBitmap*/
+#define LPP_PEER_OTDOA_NBR_CELL_GET_EARFCNVALID(pPeerNbr) (((pPeerNbr)->peerNbrCellBitmap & LPP_PEER_OTDOA_NBR_CELL_BIT_EARFCNVALID )? KAL_TRUE : KAL_FALSE)
+#define LPP_PEER_OTDOA_NBR_CELL_GET_ISCPLENGTHEXTENDEDVALID(pPeerNbr) (((pPeerNbr)->peerNbrCellBitmap & LPP_PEER_OTDOA_NBR_CELL_BIT_ISCPLENGTHEXTENDEDVALID )? KAL_TRUE : KAL_FALSE)
+#define LPP_PEER_OTDOA_NBR_CELL_GET_ISCPLENGTHEXTENDED(pPeerNbr) (((pPeerNbr)->peerNbrCellBitmap & LPP_PEER_OTDOA_NBR_CELL_BIT_ISCPLENGTHEXTENDED )? KAL_TRUE : KAL_FALSE)
+#define LPP_PEER_OTDOA_NBR_CELL_GET_ISFOURANTPORTCONFIGVALID(pPeerNbr) (((pPeerNbr)->peerNbrCellBitmap & LPP_PEER_OTDOA_NBR_CELL_BIT_ISFOURANTPORTCONFIGVALID)? KAL_TRUE : KAL_FALSE)
+#define LPP_PEER_OTDOA_NBR_CELL_GET_ISFOURANTPORTCONFIG(pPeerNbr) (((pPeerNbr)->peerNbrCellBitmap & LPP_PEER_OTDOA_NBR_CELL_BIT_ISFOURANTPORTCONFIG )? KAL_TRUE : KAL_FALSE)
+#define LPP_PEER_OTDOA_NBR_CELL_GET_PRSINFOVALID(pPeerNbr) (((pPeerNbr)->peerNbrCellBitmap & LPP_PEER_OTDOA_NBR_CELL_BIT_PRSINFOVALID )? KAL_TRUE : KAL_FALSE)
+#define LPP_PEER_OTDOA_NBR_CELL_GET_SLOTNUMBEROFFSETVALID(pPeerNbr) (((pPeerNbr)->peerNbrCellBitmap & LPP_PEER_OTDOA_NBR_CELL_BIT_SLOTNUMBEROFFSETVALID )? KAL_TRUE : KAL_FALSE)
+#define LPP_PEER_OTDOA_NBR_CELL_GET_PRSSUBFRAMEOFFSETVALID(pPeerNbr) (((pPeerNbr)->peerNbrCellBitmap & LPP_PEER_OTDOA_NBR_CELL_BIT_PRSSUBFRAMEOFFSETVALID )? KAL_TRUE : KAL_FALSE)
+
+#define LPP_PEER_OTDOA_NBR_CELL_SET_EARFCNVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap |= LPP_PEER_OTDOA_NBR_CELL_BIT_EARFCNVALID )
+#define LPP_PEER_OTDOA_NBR_CELL_SET_ISCPLENGTHEXTENDEDVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap |= LPP_PEER_OTDOA_NBR_CELL_BIT_ISCPLENGTHEXTENDEDVALID )
+#define LPP_PEER_OTDOA_NBR_CELL_SET_ISCPLENGTHEXTENDED(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap |= LPP_PEER_OTDOA_NBR_CELL_BIT_ISCPLENGTHEXTENDED )
+#define LPP_PEER_OTDOA_NBR_CELL_SET_ISFOURANTPORTCONFIGVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap |= LPP_PEER_OTDOA_NBR_CELL_BIT_ISFOURANTPORTCONFIGVALID)
+#define LPP_PEER_OTDOA_NBR_CELL_SET_ISFOURANTPORTCONFIG(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap |= LPP_PEER_OTDOA_NBR_CELL_BIT_ISFOURANTPORTCONFIG )
+#define LPP_PEER_OTDOA_NBR_CELL_SET_PRSINFOVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap |= LPP_PEER_OTDOA_NBR_CELL_BIT_PRSINFOVALID )
+#define LPP_PEER_OTDOA_NBR_CELL_SET_SLOTNUMBEROFFSETVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap |= LPP_PEER_OTDOA_NBR_CELL_BIT_SLOTNUMBEROFFSETVALID )
+#define LPP_PEER_OTDOA_NBR_CELL_SET_PRSSUBFRAMEOFFSETVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap |= LPP_PEER_OTDOA_NBR_CELL_BIT_PRSSUBFRAMEOFFSETVALID )
+
+#define LPP_PEER_OTDOA_NBR_CELL_CLEAR_EARFCNVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap &= ~LPP_PEER_OTDOA_NBR_CELL_BIT_EARFCNVALID )
+#define LPP_PEER_OTDOA_NBR_CELL_CLEAR_ISCPLENGTHEXTENDEDVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap &= ~LPP_PEER_OTDOA_NBR_CELL_BIT_ISCPLENGTHEXTENDEDVALID )
+#define LPP_PEER_OTDOA_NBR_CELL_CLEAR_ISCPLENGTHEXTENDED(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap &= ~LPP_PEER_OTDOA_NBR_CELL_BIT_ISCPLENGTHEXTENDED )
+#define LPP_PEER_OTDOA_NBR_CELL_CLEAR_ISFOURANTPORTCONFIGVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap &= ~LPP_PEER_OTDOA_NBR_CELL_BIT_ISFOURANTPORTCONFIGVALID)
+#define LPP_PEER_OTDOA_NBR_CELL_CLEAR_ISFOURANTPORTCONFIG(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap &= ~LPP_PEER_OTDOA_NBR_CELL_BIT_ISFOURANTPORTCONFIG )
+#define LPP_PEER_OTDOA_NBR_CELL_CLEAR_PRSINFOVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap &= ~LPP_PEER_OTDOA_NBR_CELL_BIT_PRSINFOVALID )
+#define LPP_PEER_OTDOA_NBR_CELL_CLEAR_SLOTNUMBEROFFSETVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap &= ~LPP_PEER_OTDOA_NBR_CELL_BIT_SLOTNUMBEROFFSETVALID )
+#define LPP_PEER_OTDOA_NBR_CELL_CLEAR_PRSSUBFRAMEOFFSETVALID(pPeerNbr) ((pPeerNbr)->peerNbrCellBitmap &= ~LPP_PEER_OTDOA_NBR_CELL_BIT_PRSSUBFRAMEOFFSETVALID )
+
+
+/*****************************************************************************
+ * Enums without tags
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Type Definitions
+ *****************************************************************************/
+
+/* LPP -> LBS */
+/* This structure for MSG_ID_LPP_LBS_SESSION_START_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+} lpp_lbs_session_start_ind_struct;
+
+
+/* This structure for MSG_ID_LPP_LBS_SESSION_END_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+} lpp_lbs_session_end_ind_struct;
+
+
+typedef enum
+{
+ LPP_POS_METHOD_TYPE_NONE,
+ LPP_POS_METHOD_TYPE_AGNSS,
+ LPP_POS_METHOD_TYPE_OTDOA,
+ LPP_POS_METHOD_TYPE_ECID,
+ LPP_POS_METHOD_TYPE_LPPE
+} lpp_pos_method_type_enum;
+
+typedef enum
+{
+ LPP_ACTIVATE_RAT_NONE,
+ LPP_ACTIVATE_RAT_GSM,
+ LPP_ACTIVATE_RAT_UMTS,
+ LPP_ACTIVATE_RAT_LTE,
+ LPP_ACTIVATE_RAT_NR,
+ LPP_ACTIVATE_RAT_MAX = MAX_ENUM_VALUE,
+} lpp_activate_rat_enum;
+
+typedef struct {
+ kal_uint8 mcc1;
+ kal_uint8 mcc2;
+ kal_uint8 mcc3;
+ kal_uint8 mnc1;
+ kal_uint8 mnc2;
+ kal_uint8 mnc3;
+} lbs_plmn_id_struct;
+
+/* This structure for MSG_ID_LPP_LBS_POS_METHOD_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ lpp_pos_method_type_enum posMethod;
+} lpp_lbs_pos_method_ind_struct;
+
+
+/*---LPPe interface---*/
+/*Assistance Data*/
+#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 !*/
+#endif
+
+
+/* MSG_ID_LPP_LBS_EXT_WLAN_POS_ASSIST_DATA_PROVIDE_IND: transfer the assist data to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ kal_bool result; /* indicate the LPP/LPPe can initiate an AD request to the network */
+ //lpp_lppe_wlan_ap_ad_struct wlanAP;
+} lpp_lbs_ext_wlan_pos_assist_data_provide_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_BT_POS_ASSIST_DATA_PROVIDE_IND: transfer the assist data to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ kal_bool result; /* indicate the LPP/LPPe can initiate an AD request to the network */
+ //lpp_lppe_srn_ad_struct srn;
+} lpp_lbs_ext_bt_pos_assist_data_provide_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_SENSOR_POS_ASSIST_DATA_PROVIDE_IND: transfer the assist data to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ kal_bool result; /* indicate the LPP/LPPe can initiate an AD request to the network */
+ //lpp_lppe_sensor_ad_struct sensor;
+} lpp_lbs_ext_sensor_pos_assist_data_provide_ind_struct;
+
+
+/*Location Information*/
+/*Original design*/
+#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 !*/
+#endif
+
+
+/* MSG_ID_LPP_LBS_EXT_WLAN_START_IND: transfer the start message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ lpp_lppe_wlan_meas_req_struct wlanAPReq;
+} lpp_lbs_ext_wlan_start_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_BT_START_IND: transfer the start message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ lpp_lppe_bt_meas_req_struct btReq;
+} lpp_lbs_ext_bt_start_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_SENSOR_START_IND: transfer the start message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ lpp_lppe_sensor_meas_req_struct sensorReq;
+} lpp_lbs_ext_sensor_start_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_NETWORK_START_IND: transfer the start message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_network_start_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_WLAN_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_wlan_meas_query_req_struct;
+
+/* MSG_ID_LPP_LBS_EXT_BT_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_bt_meas_query_req_struct;
+
+/* MSG_ID_LPP_LBS_EXT_SENSOR_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_sensor_meas_query_req_struct;
+
+/* MSG_ID_LPP_LBS_EXT_NETWORK_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_network_meas_query_req_struct;
+
+/* MSG_ID_LPP_LBS_EXT_IPADDRESS_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_ipaddress_meas_query_req_struct;
+
+
+/* MSG_ID_LPP_LBS_EXT_WLAN_STOP_IND: transfer the stop message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_wlan_stop_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_BT_STOP_IND: transfer the stop message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_bt_stop_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_SENSOR_STOP_IND: transfer the stop message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_sensor_stop_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_NETWORK_STOP_IND: transfer the stop message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+} lpp_lbs_ext_network_stop_ind_struct;
+
+
+/*Capability*/
+/*TBD: AP provide capabilities without request*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+/* LBS -> LPP */
+/* This structure for MSG_ID_LPP_LBS_SESSION_END_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+} lpp_lbs_session_end_req_struct;
+
+
+/* This structure for MSG_ID_LPP_LBS_CAPABILITY_UPDATE_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* TBD: only allow change positioning method support capability */
+ kal_bool agnssSupport;
+ kal_bool otdoaSupport;
+ kal_bool ecidSupport;
+} lpp_lbs_capability_update_req_struct;
+
+
+/* This structure for MSG_ID_LPP_LBS_RESET_UE_STORED_POS_INFO_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool resetAgnss;
+ kal_bool resetOtdoa;
+} lpp_lbs_reset_ue_stored_pos_info_req_struct;
+
+
+/*---LPPe Interface---*/
+/*Assistance Data*/
+/*Orignal design*/
+#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 !*/
+#endif
+
+
+/* MSG_ID_LPP_LBS_EXT_WLAN_POS_ASSIST_DATA_REQUEST_IND: AP connectivity module requests to assist data request */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ void* ptr;
+} lpp_lbs_ext_wlan_pos_assist_data_request_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_BT_POS_ASSIST_DATA_REQUEST_IND: AP connectivity module requests to assist data request */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ void* ptr;
+} lpp_lbs_ext_bt_pos_assist_data_request_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_SENSOR_POS_ASSIST_DATA_REQUEST_IND: AP connectivity module requests to assist data request */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ void* ptr;
+} lpp_lbs_ext_sensor_pos_assist_data_request_ind_struct;
+
+
+/*Location Information*/
+/*Orignal design*/
+#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 !*/
+#endif
+
+/* MSG_ID_LPP_LBS_EXT_WLAN_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ lpp_lppe_wlan_meas_struct wlanAPCnf;
+} lpp_lbs_ext_wlan_meas_query_cnf_struct;
+
+/* MSG_ID_LPP_LBS_EXT_BT_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ lpp_lppe_bt_meas_struct btCnf;
+} lpp_lbs_ext_bt_meas_query_cnf_struct;
+
+/* MSG_ID_LPP_LBS_EXT_SENSOR_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ lpp_lppe_sensor_meas_struct sensorCnf;
+} lpp_lbs_ext_sensor_meas_query_cnf_struct;
+
+/* MSG_ID_LPP_LBS_EXT_NETWORK_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ lpp_lppe_network_meas_struct networkCnf;
+} lpp_lbs_ext_network_meas_query_cnf_struct;
+
+/* MSG_ID_LPP_LBS_EXT_IPADDRESS_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ lpp_lppe_ipaddress_meas_struct ipAddressCnf;
+} lpp_lbs_ext_ipaddress_meas_query_cnf_struct;
+
+/*Capability*/
+/*Original design*/
+#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 !*/
+#endif
+
+/* MSG_ID_LPP_LBS_EXT_WLAN_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ wlan_ap_capability_struct wlanAPCapa;
+} lpp_lbs_ext_wlan_capability_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_BT_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ bt_capability_struct btCapa;
+} lpp_lbs_ext_bt_capability_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_SENSOR_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ sensor_capability_struct sensorCapa;
+} lpp_lbs_ext_sensor_capability_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_NETWORK_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ kal_bool networkLocationSupported;
+} lpp_lbs_ext_network_capability_ind_struct;
+
+/* MSG_ID_LPP_LBS_EXT_IPADDRESS_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 padding[4];
+ ipaddress_capability_struct ipAddressCapa;
+} lpp_lbs_ext_ipaddress_capability_ind_struct;
+
+
+/* LPP (SWIP) -> LPP */
+/* This structure for MSG_ID_LPP_PEER_OTDOA_MEAS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* refer to lpp_el1_otdoa_meas_req_struct, for UP forward only */
+ kal_uint16 transactionID;
+ kal_uint8 responseTime; /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement, but LPP still controls the response timer */
+ kal_uint8 sim_source; /* CP only element. It's for L+L */
+ kal_bool isResponseTimeEarlyFixValid;
+ kal_uint8 earlyResponseTime; /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement early Fix, but LPP still controls the response timer */
+ lpp_activate_rat_enum active_rat;
+} lpp_peer_otdoa_meas_req_struct;
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint8 prsBandwidth; /* map to lpp_otdoa_prs_info_bandwidth_enum */
+ kal_uint8 numDLFrames; /* map to lpp_otdoa_prs_info_num_dl_frame_enum */
+ kal_uint8 prsMutingInfoValid; /* map to kal_bool */
+ kal_uint8 prsMutingInfoType; /* map to lpp_otdoa_prs_info_muting_po_enum */
+ kal_uint16 prsConfigIndex; /* [0..4095] */
+ kal_uint16 prsMutingInfoBits; /* Position Occasion: PO-2: 2 bits, PO-4: 4 bits, PO-8: 8 bits, PO-16: 16 bits */
+} lpp_peer_otdoa_prs_info;
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint8 earfcnValid; /* map to kal_bool, FALSE: indicate this is a intra-freq cell, EL1 should use current serving cell's earfcn; TRUE: indicate this is a inter-freq cell */
+ kal_uint8 isFourAntPortConfigValid; /* map to kal_bool */
+ kal_uint8 isFourAntPortConfig; /* map to kal_bool, TRUE: 4 antenna ports for CRS are used in the assistance data reference cell, FALSE: 1 (or 2) antenna port(s) */
+ kal_uint8 isCPLengthExtended; /* map to kal_bool, TRUE: cyclic prefix length of PRS or CRS is extended, FALSE: cyclic prefix length is normal */
+ kal_uint8 prsInfoValid; /* map to kal_bool */
+ kal_uint16 phyCellId; /* [0..503] */
+ kal_uint32 earfcn; /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present; LPP assign reference cell if received message IE does not present */
+ lpp_peer_otdoa_prs_info prsInfo;
+} lpp_peer_otdoa_ref_cell_info_struct;
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint8 peerNbrCellBitmap; /*earfcnValid; isCPLengthExtendedValid; isCPLengthExtended; isFourAntPortConfigValid; isFourAntPortConfig; prsInfoValid; slotNumberOffsetValid; prsSubFrameOffsetValid;*/
+ kal_uint8 slotNumberOffset; /* [0..19] */
+ kal_uint16 phyCellId; /* [0..503] */
+ kal_uint16 prsSubFrameOffset; /* [0..1279] */
+ kal_uint16 expectedRSTD; /* [0..16383] */
+ kal_uint16 expectedRSTDUnc; /* [0..1023] */
+ kal_uint32 earfcn; /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present; LPP assign reference cell if received message IE does not present */
+ lpp_peer_otdoa_prs_info prsInfo;
+} lpp_peer_otdoa_nbr_cell_info_struct;
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint8 numCellInfo;
+ lpp_peer_otdoa_nbr_cell_info_struct cellInfo[LPP_PEER_OTDOA_MAX_NBR_CELL_LIST_NUM];
+} lpp_peer_otdoa_nbr_cell_info_list_struct;
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint8 numFreqInfo;
+ lpp_peer_otdoa_nbr_cell_info_list_struct freqInfo[LPP_PEER_OTDOA_MAX_NBR_CELL_FREQ_LAYER_NUM];
+} lpp_peer_otdoa_nbr_freq_info_list_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_OTDOA_ASSIST_DATA_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* refer to lpp_el1_otdoa_assist_data_req_struct, for UP forward only */
+ kal_uint16 transactionID;
+ kal_uint8 refCellInfoValid; /* map to kal_bool */
+ lpp_peer_otdoa_ref_cell_info_struct refCellInfo;
+ kal_uint8 nbrCellInfoValid; /* map to kal_bool */
+ lpp_peer_otdoa_nbr_freq_info_list_struct nbrCellInfo;
+ kal_uint8 sim_source;
+ kal_uint8 isNrLteSfnOffsetValid; /* The validity of following parameter nrLteSfnOffset. */
+ kal_uint16 nrLteSfnOffset; /* [0...1023], specifies the SFN offset between the serving NR cell and the assistance data reference cell. */
+ kal_uint8 isNrLteFineTimingOffsetValid; /* The validity of following parameter NrLteFineTimingOffset. */
+ kal_uint8 NrLteFineTimingOffset; /* [0...19],unit in 0.5ms. specifies the frame boundary offset between the NR serving cell and the LTE assistance data reference cell. */
+ lpp_activate_rat_enum active_rat;
+ /* optional field */
+ kal_uint8 isRefGlobalCellIdValid;
+ lbs_plmn_id_struct plmnId;
+ kal_uint32 refCellId; /* eutra 28 bits*/
+} lpp_peer_otdoa_assist_data_req_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_OTDOA_MEAS_ABORT_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* refer to lpp_el1_otdoa_meas_abort_req_struct, for UP forward only */
+ kal_uint16 transactionID;
+ kal_uint8 sim_source;
+ lpp_activate_rat_enum active_rat;
+} lpp_peer_otdoa_meas_abort_req_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_ECID_MEAS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* refer to lpp_errc_ecid_meas_req_struct, for UP forward only */
+ kal_uint16 transactionID;
+ kal_uint8 rsrpReq; /* map to kal_bool */
+ kal_uint8 rsrqReq; /* map to kal_bool */
+ kal_uint8 ueRxTxTimeDiffReq; /* map to kal_bool */
+ kal_uint8 sim_source;
+ kal_uint8 ueRxTxSupTDD;
+ lpp_activate_rat_enum active_rat;
+ kal_uint8 ueNRLPPSup;
+} lpp_peer_ecid_meas_req_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_ECID_MEAS_ABORT_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* refer to lpp_errc_ecid_abort_req_struct, for UP forward only */
+ kal_uint16 transactionID;
+ kal_uint8 sim_source;
+ lpp_activate_rat_enum active_rat;
+} lpp_peer_ecid_meas_abort_req_struct;
+
+
+/* LPP -> LPP (SWIP) */
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint8 errResolution; /* 2 bits, refer description as above */
+ kal_uint8 errValue; /* 5 bits, refer description as above */
+ kal_uint8 errSamplesValid; /* map to kal_bool */
+ kal_uint8 errSamples; /* 3 bits, refer description as above */
+} lpp_peer_otdoa_measured_quality_struct;
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint16 phyCellId;
+ kal_uint32 earfcn; /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present */
+ kal_uint16 rstd; /* [0..12711], mapping refer to TS 36.133 table 9.1.10.3-1 */
+ lpp_peer_otdoa_measured_quality_struct rstdQuality;
+} lpp_peer_otdoa_measured_nbr_cell_struct;
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint16 sysFrameNumber; /* 10 bits */
+ kal_uint16 refPhyCellId; /* [0..503] */
+ kal_uint32 refEarfcn; /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present */
+ kal_uint8 refQualityValid; /* map to kal_bool */
+ lpp_peer_otdoa_measured_quality_struct refQuality;
+ kal_uint8 numMeasuredNbrCell;
+ lpp_peer_otdoa_measured_nbr_cell_struct measuredNbrCell[LPP_PEER_OTDOA_MAX_NBR_CELL_LIST_NUM];
+} lpp_peer_otdoa_measured_info_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_OTDOA_MEAS_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* refer to lpp_el1_otdoa_meas_cnf_struct, for UP forward only */
+ kal_uint16 transactionID;
+ lpp_peer_otdoa_measured_info_struct measurementResult;
+ kal_bool isEarlyFixReport;
+} lpp_peer_otdoa_meas_cnf_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_OTDOA_ASSIST_DATA_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* refer to lpp_el1_otdoa_assist_data_cnf_struct, for UP forward only */
+ kal_uint16 transactionID;
+} lpp_peer_otdoa_assist_data_cnf_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_OTDOA_ADDITIONAL_ASSIST_DATA_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID; /* assoicated measurement transaction ID */
+ kal_uint16 physCellId; /* [0..503] */
+} lpp_peer_otdoa_additional_assist_data_req_struct; /* same as lpp_el1_otdoa_additional_assist_data_ind_struct */
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ kal_uint16 phyCellId; /* [0..503] */
+ kal_uint8 plmnIdValid; /* map to kal_bool */
+ lbs_plmn_id_struct plmnId;
+ kal_uint8 cellIdValid; /* map to kal_bool */
+ kal_uint32 cellId; /* eutra 28 bits */
+ kal_uint32 earfcn; /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present */
+ kal_uint8 sysFrameNumberValid; /* map to kal_bool */
+ kal_uint16 sysFrameNumber; /* 10 bits */
+ /* measured result */
+ kal_uint8 rsrpResultValid; /* map to kal_bool */
+ kal_uint8 rsrpResult; /* [0..97] */
+ kal_uint8 rsrqResultValid; /* map to kal_bool */
+ kal_uint8 rsrqResult; /* [0..34] */
+ kal_uint8 ueRxTxTimeDiffValid; /* map to kal_bool */
+ kal_uint16 ueRxTxTimeDiff; /* [0..4095] */
+} lpp_peer_ecid_cell_measured_info_struct;
+
+
+/* this structure is dedicated for UP peer forward */
+typedef struct
+{
+ /**
+ * Please note that the interface here is more straight-forward then ECID-SignalMeasurementInformation IE of LPP Message:
+ * when ERRC has measured primary cell, the result will place at primaryCellMeasuredResult;
+ * (if serving (primary) cell is not present, the whole measured info should be ignored since result will be error)
+ *
+ * in addition to primary cell, if ERRC also measured neighbor cells, they will be put into the array of measuredCellResult[],
+ * and the number of neighbor will specify in numMeasuredCellResult
+ */
+ lpp_peer_ecid_cell_measured_info_struct primaryCellMeasuredResult;
+ kal_uint8 numMeasuredCellResult;
+ lpp_peer_ecid_cell_measured_info_struct measuredCellResult[LPP_PEER_ECID_MAX_MEASURED_CELL_INFO_NUM];
+ kal_uint8 noPrimaryCellMeasuredResult;
+} lpp_peer_ecid_measured_info_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_ECID_MEAS_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* refer to lpp_errc_ecid_meas_cnf_struct, for UP forward only */
+ kal_uint16 transactionID;
+ kal_uint8 result; /* map to lpp_loc_ecid_result_enum */
+ lpp_peer_ecid_measured_info_struct measurementResult;
+} lpp_peer_ecid_meas_cnf_struct;
+
+
+/* This structure for MSG_ID_LPP_PEER_EUTRAN_BAND_UPDATE_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 sim_source;
+ lpp_activate_rat_enum active_rat;
+} lpp_peer_eutran_band_update_req_struct;
+
+/* This structure for MSG_ID_LPP_PEER_OTDOA_RESET_UE_STORED_POS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 sim_source;
+ lpp_activate_rat_enum active_rat;
+} lpp_peer_otdoa_reset_ue_stored_pos_req_struct;
+
+/* This structure for MSG_ID_LPP_PEER_EUTRAN_BAND_UPDATE_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 supportEutraBandListNum;
+ kal_uint16 supportEutraBandList[LPP_PEER_MAX_BANDS];
+} lpp_peer_eutran_band_update_cnf_struct;
+
+//#endif /* #if defined(__LPP_CP_SUPPORT__) || defined(__LPP_UP_SUPPORT__) */
+
+#endif /* _LPP_LBS_MSG_STRUCT_H */
diff --git a/mcu/interface/protocol/general/lpp_lppe_def.h b/mcu/interface/protocol/general/lpp_lppe_def.h
new file mode 100644
index 0000000..24480b4
--- /dev/null
+++ b/mcu/interface/protocol/general/lpp_lppe_def.h
@@ -0,0 +1,352 @@
+/******************************************************************************
+* 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) 2016
+*
+* 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:
+ * --------------------------------------------------------
+ * lpp_lppe_def.h
+ *
+ * Project:
+ * --------------------------------------------------------
+ *
+ *
+ * Description:
+ * --------------------------------------------------------
+ * LPP/LPP Extension Interface - Macro Definition
+ *
+ * Author:
+ * --------------------------------------------------------
+ * -------
+ *
+ * --------------------------------------------------------
+ * $Log$
+ *
+ * 09 07 2018 jie-yu.wang
+ * [MOLY00350925] [LPPe] AT&T v18.2 requirement for LPPe MAC Address
+ * [VMOLY][LPPe] AT&T MAC Address report.
+ *
+ * 03 15 2018 jie-yu.wang
+ * [MOLY00311925] Code sync from R3.
+ *
+ * 10 20 2017 roland.li
+ * [MOLY00284361] [LPPe][VzW] LPPe early fix feature
+ *
+ * .
+ *
+ * 09 06 2016 doug.shih
+ * [LPPe] interface design
+ * .
+ *
+ * 08 24 2016 doug.shih
+ * [LPPe] interface design
+ * .
+ *
+ *
+ *****************************************************************************/
+
+#ifndef _LPP_LPPE_DEF_H
+#define _LPP_LPPE_DEF_H
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+/**
+ * Nine LPPe sessions in parallel should be the worst case:
+ * AD/LI procedure for HA GNSS, WLAN AP, SENSOR PRESSURE, SRN BT and plus on CAPA proceudre
+ */
+#define LPP_EXT_MAX_SESSION_COUNT 9
+#define LPP_EXT_SESSION_MAX_POS_METHOD_COUNT 4 /* HA GNSS, WLAN AP, SENSOR PRESSURE, SRN BT */
+
+#define LPP_EXT_RESPONSE_TIMER_MAX_SUPPORT_NUM 3 /* for maximum two parallel transactions which need response time control (WLAN, BT, SENSOR), NETWORK has another timer ID */
+
+
+#define LPP_EXT_MAX_DL_EPDU_BUFFER_COUNT 1 /* for multiple segmented downlink AD EPDU received in a short time */
+#define LPP_EXT_MAX_UL_EPDU_BUFFER_COUNT 1 /* for multiple segmented uplink EPDU sent in a short time */
+
+/* LPPe version and compatible level */
+#define LPP_EXT_MAX_SUPPORT_VER_MAJOR_VER 1 /* fill capability when init, and check when receive message */
+#define LPP_EXT_MAX_SUPPORT_VER_MINOR_VER 0 /* fill capability when init, and check when receive message */
+#define LPP_EXT_SUPPORT_COMPATIBILITY_LEVEL 0 /* fill capability when init, and check when receive message */
+
+/* location soruce method bitmask, 8 bit presentation */
+#define LOC_SRC_METHOD_AGNSS 0x01
+#define LOC_SRC_METHOD_WLAN_AP 0x02
+#define LOC_SRC_METHOD_SRN 0x04
+#define LOC_SRC_METHOD_SENSOR 0x08
+
+#define WLAN_MAX_DATA_SET_ELEMENT 8 /* maxWLANDataSets */
+#define WLAN_AP_MAX_DATA_ELEMENT 128 /* maxWLANAPs */
+#define WLAN_AP_MAX_TYPE_DATA_ELEMENT 5 /* maxWLANTypes */
+#define WLAN_FEMTO_MAX_AREA_ELEMENT 16
+
+/* SRN assistance data element */
+#define SRN_MAX_SRN_GROUP_ELEMENT 64 /* one SRN group might consist of all the SRNs located in one floor of a building. Up to 64 groups can be provided in the same IE */
+#define SRN_MAX_SRN_INFO_ELEMENT 1024
+#define SRN_MAX_GROUP_UPDATE_RSP_ELEMENT 8
+#define SRN_MAX_TARGET_DEVICE_ERR_ELEMENT 16
+#define SRN_MAX_CATEGORY_ELEMENT 16
+#define SRN_MAX_GROUP_ELEMENT 256
+#define SRN_MAX_GROUP_UPDATE_REQ_ELEMENT 64
+#define SRN_MAX_ANTENNA_REQ_ELEMENT 8
+
+/* SRN location request info category, for save memory and buffer usage set 16->2 */
+#define SRN_MAX_LOC_REQ_INFO_CATEGORY_ELEMENT 2
+
+/* IP address list */
+#define LOC_IP_ADDR_MAX_ELEMENT 5
+
+/* WLAN location info list */
+#define WLAN_AP_MAX_LOC_INFO_LIST_ELEMENT 64
+#define WLAN_AP_MAX_SSID_OCTET 32
+
+/* Sensor motion state list */
+#define SENSOR_MAX_MOTION_STATE_ELEMENT 8
+#define SENSOR_MAX_CALIBRATION_POINT 10
+
+/* SRN measurement list */
+#define SRN_MAX_MEASUREMENT_ELEMENT 64
+#define SRN_MAX_SRN_MEASUREMENT_ELEMENT 64
+
+
+#define WLAN_AP_LOC_DATA_LCI_LATITUDE_RESOLUTION_BITMASK 0x3F /* 6 bits, IE use 1 byte */
+#define WLAN_AP_LOC_DATA_LCI_LATITUDE_BITMASK 0x00000003FFFFFFFF /* 34 bits, IE use 8 byte */
+#define WLAN_AP_LOC_DATA_LCI_LONGITUDE_RESOLUTION_BITMASK 0x3F /* 6 bits, IE use 1 byte */
+#define WLAN_AP_LOC_DATA_LCI_LONGITUDE_BITMASK 0x00000003FFFFFFFF /* 34 bits, IE use 8 byte */
+#define WLAN_AP_LOC_DATA_LCI_ALTITUDE_TYPE_BITMASK 0x0F /* 4 bits, IE use 1 byte */
+#define WLAN_AP_LOC_DATA_LCI_ALTITUDE_RESOLUTION_BITMASK 0x3F /* 6 bits, IE use 1 byte */
+#define WLAN_AP_LOC_DATA_LCI_ALTITUDE_BITMASK 0x3FFFFFFF /* 30 bits, IE use 4 byte */
+#define WLAN_AP_LOC_DATA_LCI_DATUM_BITMASK 0xFF /* 8 bits, IE use 1 byte */
+
+
+#define WLAP_AP_ID_MAC_ADDR_BITMASK 0xFFFFFFFFFFFF /* WLAN AP MAC Address contains 48 bits */
+#define BT_ID_MAC_ADDR_BITMASK 0xFFFFFFFFFFFF /* the MAC address of the SRN for BT and BT LE as per [IEEE 802.15.1] */
+
+
+/* for wlan_ap_location_server_err_cause_struct = not all AD available, 16 bit presentation */
+#define WLAN_AP_LOC_SRV_ERR_AP_MANDATORY_DATA_UNAVAILABLE 0x0800
+#define WLAN_AP_LOC_SRV_ERR_AP_LOCATIONS_UNAVAILABLE 0x0400
+#define WLAN_AP_LOC_SRV_ERR_AP_LOCATION_RELIABILITY_UNAVAILABLE 0x0200
+#define WLAN_AP_LOC_SRV_ERR_AP_TRANSMIT_POWER_UNAVAILABLE 0x0100
+#define WLAN_AP_LOC_SRV_ERR_AP_ANTENNA_GAIN_UNAVAILABLE 0x0080
+#define WLAN_AP_LOC_SRV_ERR_AP_COVERAGE_AREA_UNAVAILABLE 0x0040
+#define WLAN_AP_LOC_SRV_ERR_NON_SERVING_AD_UNAVAILABLE 0x0020
+#define WLAN_AP_LOC_SRV_ERR_AP_TP_NOT_AVAILABLE 0x0010
+#define WLAN_AP_LOC_SRV_ERR_AP_AG_NOT_AVAILABLE 0x0008
+#define WLAN_AP_LOC_SRV_ERR_UE_SN_NOT_AVAILABLE 0x0004
+#define WLAN_AP_LOC_SRV_ERR_UE_RSSI_NOT_AVAILABLE 0x0002
+#define WLAN_AP_LOC_SRV_ERR_OC_NOT_AVAILABLE 0x0001
+
+
+/* for wlan_ap_target_device_err_cause_struct = not all requested measurement possible, 32 bit presentation */
+#define WLAN_AP_TGT_DEV_ERR_AP_SSID_NOT_AVAILABLE 0x00010000
+#define WLAN_AP_TGT_DEV_ERR_AP_SN_MEASUREMENT_NOT_POSSIBLE 0x00008000
+#define WLAN_AP_TGT_DEV_ERR_AP_DEV_TYPE_NOT_AVAILABLE 0x00004000
+#define WLAN_AP_TGT_DEV_ERR_AP_PHY_TYPE_NOT_AVAILABLE 0x00002000
+#define WLAN_AP_TGT_DEV_ERR_AP_RSSI_MEASUREMENT_NOT_POSSIBLE 0x00001000
+#define WLAN_AP_TGT_DEV_ERR_AP_CHAN_FREQ_NOT_AVAILABLE 0x00000800
+#define WLAN_AP_TGT_DEV_ERR_AP_RTD_MEASUREMENT_NOT_POSSIBLE 0x00000400
+#define WLAN_AP_TGT_DEV_ERR_UE_TP_NOT_AVAILABLE 0x00000200
+#define WLAN_AP_TGT_DEV_ERR_UE_AG_NOT_AVAILABLE 0x00000100
+#define WLAN_AP_TGT_DEV_ERR_AP_REC_LOC_NOT_AVAILABLE 0x00000080
+#define WLAN_AP_TGT_DEV_ERR_NON_SERVING_MEASUREMENT_NOT_AVAILABLE 0x00000040
+#define WLAN_AP_TGT_DEV_ERR_HISTORIC_MEASUREMENT_NOT_AVAILABLE 0x00000020
+#define WLAN_AP_TGT_DEV_ERR_AP_TP_NOT_AVAILABLE 0x00000010
+#define WLAN_AP_TGT_DEV_ERR_AP_AG_NOT_AVAILABLE 0x00000008
+#define WLAN_AP_TGT_DEV_ERR_UE_SN_NOT_AVAILABLE 0x00000004
+#define WLAN_AP_TGT_DEV_ERR_UE_RSSI_NOT_AVAILABLE 0x00000002
+#define WLAN_AP_TGT_DEV_ERR_OC_NOT_AVAILABLE 0x00000001
+
+
+/* for srn_target_device_error_element_struct = not all requested measurement possible, 8 bit presentation */
+#define SRN_TGT_DEV_ERR_RSSI_NOT_AVAILABLE 0x08
+#define SRN_TGT_DEV_ERR_RTD_NOT_AVAILABLE 0x04
+#define SRN_TGT_DEV_ERR_MULTIPLE_SETS_NOT_AVAILABLE 0x02
+#define SRN_TGT_DEV_ERR_HISTORIC_MEASUREMENTS_NOT_AVAILABLE 0x01
+
+
+/* WLAN AP AD request bitmask, 16 bit presentation */
+#define WLAN_AP_REQ_AD_BIT_AP_LIST (1 << 0) /* 0x0001 */
+#define WLAN_AP_REQ_AD_BIT_AP_LOCATION (1 << 1) /* 0x0002 */
+#define WLAN_AP_REQ_AD_BIT_LOCATION_RELIABILITY (1 << 2) /* 0x0004 */
+#define WLAN_AP_REQ_AD_BIT_TRANSMIT_POWER (1 << 3) /* 0x0008 */
+#define WLAN_AP_REQ_AD_BIT_ANTENNA_GAIN (1 << 4) /* 0x0010 */
+#define WLAN_AP_REQ_AD_BIT_COVERAGE_AREA (1 << 5) /* 0x0020 */
+#define WLAN_AP_REQ_AD_BIT_NON_SERVING (1 << 6) /* 0x0040 */
+
+
+/* WLAN AP AD support bitmask, 16 bit presentation */
+#define WLAN_AP_SUPP_AD_BIT_AP_LIST (1 << 0) /* 0x0001 */
+#define WLAN_AP_SUPP_AD_BIT_AP_LOCATION (1 << 1) /* 0x0002 */
+#define WLAN_AP_SUPP_AD_BIT_LOCATION_RELIABILITY (1 << 2) /* 0x0004 */
+#define WLAN_AP_SUPP_AD_BIT_TRANSMIT_POWER (1 << 3) /* 0x0008 */
+#define WLAN_AP_SUPP_AD_BIT_ANTENNA_GAIN (1 << 4) /* 0x0010 */
+#define WLAN_AP_SUPP_AD_BIT_COVERAGE_AREA (1 << 5) /* 0x0020 */
+#define WLAN_AP_SUPP_AD_BIT_NON_SERVING (1 << 6) /* 0x0040 */
+
+
+/* WLAN AP type bitmask, 16 bit presentation */
+#define WLAN_AP_TYPE_LIST_BIT_IEEE802_11A (1 << 0) /* 0x0001 */
+#define WLAN_AP_TYPE_LIST_BIT_IEEE802_11B (1 << 1) /* 0x0002 */
+#define WLAN_AP_TYPE_LIST_BIT_IEEE802_11G (1 << 2) /* 0x0004 */
+#define WLAN_AP_TYPE_LIST_BIT_IEEE802_11N (1 << 3) /* 0x0008 */
+#define WLAN_AP_TYPE_LIST_BIT_IEEE802_11AC (1 << 4) /* 0x0010 */
+#define WLAN_AP_TYPE_LIST_BIT_IEEE802_11AD (1 << 5) /* 0x0020 */
+
+/* WLAN AP requested measurement type bitmask, 32 bit presentation */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_SSID (1 << 15) /* 0x00008000 */ /* SSID of the WLAN */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_SN (1 << 14) /* 0x00004000 */ /* AP S/N received at the target */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_DEV_TYPE (1 << 13) /* 0x00002000 */ /* AP Device type */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_PHY_TYPE (1 << 12) /* 0x00001000 */ /* AP PHY type */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_RSSI (1 << 11) /* 0x00000800 */ /* AP signal strength at the target (both LPP and LPPe) */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_CH_FREQ (1 << 10) /* 0x00000400 */ /* AP channel/frequency of Tx/Rx */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_RTD (1 << 9) /* 0x00000200 */ /* Round Trip Delay between target and AP (both LPP and LPPe) */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_UE_TRANS_PWR (1 << 8) /* 0x00000100 */ /* target transmit power */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_UE_ANT_GAIN (1 << 7) /* 0x00000080 */ /* target antenna gain */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_RPT_LOC (1 << 6) /* 0x00000040 */ /* AP Location as reported by AP */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_NON_SERVING (1 << 5) /* 0x00000020 */ /* measurements for a non-serving WLAN AP (in addition to a serving WLAN AP) */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_HISTORIC_MEAS (1 << 4) /* 0x00000010 */ /* historic WLAN AP measurements */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_TRANS_PWR (1 << 3) /* 0x00000008 */ /* AP transmit power */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_AP_ANT_GAIN (1 << 2) /* 0x00000004 */ /* AP antenna gain */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_UE_SNR (1 << 1) /* 0x00000002 */ /* UE signal to noise ratio received at the AP */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_UE_RSSI (1 << 0) /* 0x00000001 */ /* target signal strength at the AP */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_OP_CLASS (1 << 19) /* 0x00080000 */ /* operating class */
+#define WLAN_AP_MEAS_REQ_TYPE_BIT_UE_MAC_ADDRESS (1 << 18) /* 0x00040000 */ /* ue mac address */
+
+/* WLAN AP measurmenet capability type bitmask, 32 bit presentation */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_SSID (1 << 15) /* 0x00008000 */ /* SSID of the WLAN */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_SN (1 << 14) /* 0x00004000 */ /* AP S/N received at the target */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_DEV_TYPE (1 << 13) /* 0x00002000 */ /* AP Device type */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_PHY_TYPE (1 << 12) /* 0x00001000 */ /* AP PHY type */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_RSSI (1 << 11) /* 0x00000800 */ /* AP signal strength at the target (both LPP and LPPe) */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_CH_FREQ (1 << 10) /* 0x00000400 */ /* AP channel/frequency of Tx/Rx */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_RTD (1 << 9) /* 0x00000200 */ /* Round Trip Delay between target and AP (both LPP and LPPe) */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_UE_TRANS_PWR (1 << 8) /* 0x00000100 */ /* target transmit power */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_UE_ANT_GAIN (1 << 7) /* 0x00000080 */ /* target antenna gain */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_RPT_LOC (1 << 6) /* 0x00000040 */ /* AP Location as reported by AP */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_NON_SERVING (1 << 5) /* 0x00000020 */ /* measurements for a non-serving WLAN AP (in addition to a serving WLAN AP) */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_HISTORIC_MEAS (1 << 4) /* 0x00000010 */ /* historic WLAN AP measurements */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_TRANS_PWR (1 << 3) /* 0x00000008 */ /* AP transmit power */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_AP_ANT_GAIN (1 << 2) /* 0x00000004 */ /* AP antenna gain */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_UE_SNR (1 << 1) /* 0x00000002 */ /* UE signal to noise ratio received at the AP */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_UE_RSSI (1 << 0) /* 0x00000001 */ /* target signal strength at the AP */
+#define WLAN_AP_MEAS_CAPA_TYPE_BIT_OP_CLASS (1 << 16) /* 0x00010000 */ /* operating class */
+
+/* WLAN AP additional requested measurement type bitmask, 8 bit presentation */
+#define WLAN_AP_ADD_MEAS_REQ_TYPE_BIT_OP_CLASS (1 << 0) /* 0x0001 */
+
+/* WLAN MAC Address size */
+#define WLAN_MAC_ADDRESS_SIZE 6
+
+/* BT MAC Address size */
+#define BT_MAC_ADDRESS_SIZE 6
+
+/* SRN measurement type bitmask, 8 bit presentation */
+#define SRN_MEAS_TYPE_BIT_RSSI (1 << 0) /* 0x01 */
+#define SRN_MEAS_TYPE_BIT_RTD (1 << 1) /* 0x02 */
+
+
+/* SRN assistance data type bitmask, 8 bit presentation */
+#define SRN_AD_TYPE_BIT_SRN_GROUP (1 << 0) /* 0x01 */
+#define SRN_AD_TYPE_BIT_ANTENNA_PATTERN (1 << 1) /* 0x02 */
+
+
+/* wireless access type (similar to data bearer) bitmask, 8 bit presentation */
+#define WIRELESS_ACCESS_TYPE_GSM (1 << 0) /* 0x01 */
+#define WIRELESS_ACCESS_TYPE_UTRA (1 << 1) /* 0x02 */
+#define WIRELESS_ACCESS_TYPE_LTE (1 << 2) /* 0x04 */
+#define WIRELESS_ACCESS_TYPE_WIFI (1 << 3) /* 0x08 */
+#define WIRELESS_ACCESS_TYPE_OTHER (1 << 4) /* 0x10 */
+
+
+/* WLAN AP location info validity bitmask, 32 bit presentation */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_SSID (1 << 0) /* 0x00000001 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_SIGNAL_TO_NOISE (1 << 1) /* 0x00000002 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_DEVICE_TYPE (1 << 2) /* 0x00000004 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_PHY_TYPE (1 << 3) /* 0x00000008 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_SIGNAL_STRENGTH (1 << 4) /* 0x00000010 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_CH_FREQ (1 << 5) /* 0x00000020 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_ROUND_TRIP_DELAY (1 << 6) /* 0x00000040 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_UE_TRANSMIT_POWER (1 << 7) /* 0x00000080 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_UE_ANTENNA_GAIN (1 << 8) /* 0x00000100 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_REPORTED_LOC (1 << 9) /* 0x00000200 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_TRANSMIT_POWER (1 << 10) /* 0x00000400 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_ANTENNA_GAIN (1 << 11) /* 0x00000800 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_UE_SIGNAL_TO_NOISE (1 << 12) /* 0x00001000 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_UE_SIGNAL_STRENGTH (1 << 13) /* 0x00002000 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_SIGNAL_STRENGTH_DELTA (1 << 14) /* 0x00004000 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_UE_SIGNAL_STRENGTH_DELTA (1 << 15) /* 0x00008000 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_AP_SIGNAL_TO_NOISE_DELTA (1 << 16) /* 0x00010000 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_UE_SIGNAL_TO_NOISE_DELTA (1 << 17) /* 0x00020000 */
+#define WLAN_AP_LOC_INFO_TYPE_VALID_BIT_OPERATING_CLASS (1 << 18) /* 0x00040000 */
+
+
+/* Sensor motion state bitmask, 16 bit presentation */
+#define SENSOR_SEC_MOTION_STATE_STATIONARY (1 << 0) /* 0x0001 */
+#define SENSOR_SEC_MOTION_STATE_PEDESTRIAN (1 << 1) /* 0x0002 */
+#define SENSOR_SEC_MOTION_STATE_RUNNING (1 << 2) /* 0x0004 */
+#define SENSOR_SEC_MOTION_STATE_CYCLING (1 << 3) /* 0x0008 */
+#define SENSOR_SEC_MOTION_STATE_CAR (1 << 4) /* 0x0010 */
+#define SENSOR_SEC_MOTION_STATE_TRAIN (1 << 5) /* 0x0020 */
+#define SENSOR_SEC_MOTION_STATE_AEROPLANE (1 << 6) /* 0x0040 */
+#define SENSOR_SEC_MOTION_STATE_BOAT (1 << 7) /* 0x0080 */
+#define SENSOR_SEC_MOTION_STATE_FIDGETING (1 << 8) /* 0x0100 */
+
+
+/* IP address type bitmask, 8 bit presentation */
+#define IP_ADDR_TYPE_BIT_IP_V4 (1 << 0) /* 0x01 */
+#define IP_ADDR_TYPE_BIT_IP_V6 (1 << 1) /* 0x02 */
+
+/* To align AP structure*/
+#define MAX_ENUM_VALUE 2147483647
+
+/* LPPe session type bitmask, use one-byte representation */
+#define LPPE_SERVICE_SUPPORT_TYPE_BITMASK_NONE 0x00
+#define LPPE_SERVICE_SUPPORT_TYPE_BITMASK_WLAN 0x01
+#define LPPE_SERVICE_SUPPORT_TYPE_BITMASK_BT 0x02
+#define LPPE_SERVICE_SUPPORT_TYPE_BITMASK_SENSOR 0x04
+#define LPPE_SERVICE_SUPPORT_TYPE_BITMASK_NETWORK 0x08
+#define LPPE_SERVICE_SUPPORT_TYPE_BITMASK_IPADDRESS 0x10
+#define LPPE_SERVICE_SUPPORT_TYPE_BITMASK_MAX 0xff
+
+/* LPPe DBH results source bitmask */
+#define LPPE_LOCATION_SOURCE_BITMASK_AGNSS 0x00000001
+#define LPPE_LOCATION_SOURCE_BITMASK_SENSOR 0x00000002
+#define LPPE_LOCATION_SOURCE_BITMASK_ECIDLTE 0x00000004
+#define LPPE_LOCATION_SOURCE_BITMASK_ECIDGSM 0x00000008
+#define LPPE_LOCATION_SOURCE_BITMASK_ECIDUTRA 0x00000010
+#define LPPE_LOCATION_SOURCE_BITMASK_WLANAP 0x00000020
+#define LPPE_LOCATION_SOURCE_BITMASK_SRN 0x00000040
+#endif /* _LPP_LPPE_DEF_H */
diff --git a/mcu/interface/protocol/general/lpp_lppe_enum.h b/mcu/interface/protocol/general/lpp_lppe_enum.h
new file mode 100644
index 0000000..d4f61f2
--- /dev/null
+++ b/mcu/interface/protocol/general/lpp_lppe_enum.h
@@ -0,0 +1,444 @@
+/******************************************************************************
+* 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) 2016
+*
+* 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:
+ * --------------------------------------------------------
+ * lpp_lppe_enum.h
+ *
+ * Project:
+ * --------------------------------------------------------
+ *
+ *
+ * Description:
+ * --------------------------------------------------------
+ * LPP/LPP Extension Interface - Structure Enumeration
+ *
+ * Author:
+ * --------------------------------------------------------
+ * -------
+ *
+ * --------------------------------------------------------
+ * $Log$
+ *
+ * 10 20 2017 jie-yu.wang
+ * [MOLY00284367] [LPP] LR12 Earlyfix Development
+ * [LPP] Earlyfix Modification.
+ *
+ * 10 04 2016 doug.shih
+ * [LPPe] interface design
+ * Fix enum type redefinition
+ * .
+ *
+ * 09 30 2016 doug.shih
+ * [LPPe] interface design
+ * .
+ *
+ * 08 24 2016 doug.shih
+ * [LPPe] interface design
+ * .
+ *
+ *
+ *****************************************************************************/
+
+#ifndef _LPP_LPPE_ENUM_H
+#define _LPP_LPPE_ENUM_H
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+#include "lpp_lppe_def.h"
+
+typedef enum
+{
+ LPP_LPPE_MSG_TYPE_NULL,
+ LPP_LPPE_MSG_TYPE_REQUEST_CAPABILITIES,
+ LPP_LPPE_MSG_TYPE_PROVIDE_CAPABILITIES,
+ LPP_LPPE_MSG_TYPE_REQUEST_ASSISTANCE_DATA,
+ LPP_LPPE_MSG_TYPE_PROVIDE_ASSISTANCE_DATA,
+ LPP_LPPE_MSG_TYPE_REQUEST_LOCATION_INFORMATION,
+ LPP_LPPE_MSG_TYPE_PROVIDE_LOCATION_INFORMATION,
+ LPP_LPPE_MSG_TYPE_ABORT,
+ LPP_LPPE_MSG_TYPE_ERROR
+} lpp_lppe_msg_type_enum;
+
+typedef enum
+{
+ LPPE_LOC_RESULT_NULL,
+ LPPE_LOC_RESULT_NO_ERROR,
+ LPPE_LOC_RESULT_UNDEFINED,
+ LPPE_LOC_RESULT_REQ_TIMEOUT,
+ LPPE_LOC_RESULT_EARLY_FIX, /* Early fix result */
+ LPPE_LOC_RESULT_EARLY_FIX_NO_RESULT /* Early fix no result */
+} lppe_result_enum;
+
+typedef enum
+{
+ LPP_LPPE_POS_TYPE_INVALID,
+ LPP_LPPE_POS_TYPE_HA_GNSS,
+ LPP_LPPE_POS_TYPE_WLAN_AP,
+ LPP_LPPE_POS_TYPE_SENSOR_PRESSURE,
+ LPP_LPPE_POS_TYPE_SRN_BT,
+
+ //... below are not supported pos tech
+ //LPP_LPPE_POS_TYPE_EUTRA_OTDOA,
+ //LPP_LPPE_POS_TYPE_GSM_EOTD,
+ //LPP_LPPE_POS_TYPE_UTRA_OTDOA,
+ //LPP_LPPE_POS_TYPE_LTE_ECID,
+ //LPP_LPPE_POS_TYPE_GSM_ECID,
+ //LPP_LPPE_POS_TYPE_UTRA_ECID
+} lpp_lppe_pos_type_enum;
+
+
+typedef enum
+{
+ LPP_LPPE_HA_GNSS_AD_TYPE_COMMON,
+ LPP_LPPE_HA_GNSS_AD_TYPE_GENERIC
+} lpp_lppe_ha_gnss_ad_type_enum;
+
+typedef enum
+{
+ LPP_LPPE_GNSS_HA_ASSIST_DATA_TYPE_NULL,
+ LPP_LPPE_GNSS_HA_COMMON_ASSIST_DATA_TYPE_IONO_MODEL,
+ LPP_LPPE_GNSS_HA_COMMON_ASSIST_DATA_TYPE_TROPO_MODEL,
+ LPP_LPPE_GNSS_HA_COMMON_ASSIST_DATA_TYPE_ALTITUDE,
+ LPP_LPPE_GNSS_HA_COMMON_ASSIST_DATA_TYPE_SOLAR_RAD,
+ LPP_LPPE_GNSS_HA_COMMON_ASSIST_DATA_TYPE_CCP_ASSIST,
+
+ LPP_LPPE_GNSS_HA_GENERIC_ASSIST_DATA_TYPE_WA_ION_SURF,
+ LPP_LPPE_GNSS_HA_GENERIC_ASSIST_DATA_TYPE_SV_MECHANICS,
+ LPP_LPPE_GNSS_HA_GENERIC_ASSIST_DATA_TYPE_SV_DCB,
+ LPP_LPPE_GNSS_HA_GENERIC_ASSIST_DATA_TYPE_DEGRAD_MODEL,
+ LPP_LPPE_GNSS_HA_GENERIC_ASSIST_DATA_TYPE_CCP_ASSIST,
+ LPP_LPPE_GNSS_HA_GENERIC_ASSIST_DATA_TYPE_NAV_MODEL,
+} lpp_lppe_ha_gnss_assist_data_type_enum;
+
+
+typedef enum
+{
+ LPP_LPPE_ABORT_CAUSE_UNDEFINED,
+ LPP_LPPE_ABORT_CAUSE_TARGET_DEVICE_ABORT,
+ LPP_LPPE_ABORT_CAUSE_NETWORK_ABORT,
+ LPP_LPPE_ABORT_CAUSE_STOP_PERIODIC_REPORTING
+} lpp_lppe_abort_cause_enum;
+
+typedef enum
+{
+ LPP_LPPE_ERROR_CAUSE_UNDEFINED,
+ LPP_LPPE_ERROR_CAUSE_TARGET_DEVICE_ERROR,
+ LPP_LPPE_ERROR_CAUSE_NETWORK_ERROR
+} lpp_lppe_error_cause_enum;
+
+
+typedef enum
+{
+ WLAN_AP_ERROR_TYPE_LOCATION_SERVER_CAUSE,
+ WLAN_AP_ERROR_TYPE_TARGET_DEVICE_CAUSE
+} wlan_ap_error_type_enum;
+
+
+typedef enum
+{
+ WLAN_AP_LOC_SRV_ERR_CAUSE_UNDEFINED,
+ WLAN_AP_LOC_SRV_ERR_CAUSE_REQ_AD_NOT_AVAILABLE,
+ WLAN_AP_LOC_SRV_ERR_CAUSE_NOT_ALL_REQ_AD_AVAILABLE
+} wlan_ap_loc_srv_err_cause_enum;
+
+
+typedef enum
+{
+ WLAN_AP_TGT_DEV_ERR_CAUSE_CAUSE_UNDEFINED,
+ WLAN_AP_TGT_DEV_ERR_CAUSE_CAUSE_REQ_MEASUREMENT_NOT_AVAILABLE,
+ WLAN_AP_TGT_DEV_ERR_CAUSE_CAUSE_NOT_ALL_REQ_MEASUREMENT_POSSIBLE
+} wlan_ap_tgt_dev_err_cause_enum;
+
+
+typedef enum
+{
+ WLAN_AP_TYPE_IEEE802_11A,
+ WLAN_AP_TYPE_IEEE802_11B,
+ WLAN_AP_TYPE_IEEE802_11G,
+ WLAN_AP_TYPE_IEEE802_11N,
+ WLAN_AP_TYPE_IEEE802_11AC,
+ WLAN_AP_TYPE_IEEE802_11AD
+} wlan_ap_type_enum;
+
+
+typedef enum
+{
+ WLAN_AP_PHY_TYPE_UNKNOWN,
+ WLAN_AP_PHY_TYPE_ANY,
+ WLAN_AP_PHY_TYPE_FHSS,
+ WLAN_AP_PHY_TYPE_DSSS,
+ WLAN_AP_PHY_TYPE_IRBASEBAND,
+ WLAN_AP_PHY_TYPE_OFDM,
+ WLAN_AP_PHY_TYPE_HRDSSS,
+ WLAN_AP_PHY_TYPE_ERP,
+ WLAN_AP_PHY_TYPE_HT,
+ WLAN_AP_PHY_TYPE_IHV
+} wlan_ap_phy_type_enum;
+
+
+typedef enum
+{
+ WLAN_AP_RTD_UNIT_MICROSECONDS,
+ WLAN_AP_RTD_UNIT_HUNDREDS_OF_NANOSECONDS,
+ WLAN_AP_RTD_UNIT_TENS_OF_NANOSECONDS,
+ WLAN_AP_RTD_UNIT_NANOSECONDS,
+ WLAN_AP_RTD_UNIT_TENTHS_OF_NANOSECONDS,
+ WLAN_AP_RTD_UNIT_MAX = MAX_ENUM_VALUE,
+} wlan_ap_rtd_unit_enum;
+
+
+typedef enum
+{
+ WLAN_FEMTO_COVER_AREA_TYPE_GAUSSIAN,
+ WLAN_FEMTO_COVER_AREA_TYPE_BINARY_DISTRIBUTION
+} wlan_femto_cover_area_type_enum;
+
+
+typedef enum
+{
+ WLAN_FEMTO_COVER_AREA_ELEMENT_TYPE_INDOOR,
+ WLAN_FEMTO_COVER_AREA_ELEMENT_TYPE_OUTDOOR,
+ WLAN_FEMTO_COVER_AREA_ELEMENT_TYPE_MIXED
+} wlan_femto_cover_area_element_type_enum;
+
+
+typedef enum
+{
+ WLAN_FEMTO_COVER_AREA_REF_LOC_TYPE_ANTENNA,
+ WLAN_FEMTO_COVER_AREA_REF_LOC_TYPE_REF_POINT
+} wlan_femto_cover_area_ref_loc_type_enum;
+
+
+typedef enum
+{
+ SRN_GROUP_TYPE_GROUP_LIST,
+ SRN_GROUP_TYPE_GROUP_UPDATE_RESPONSE
+} srn_group_type_enum;
+
+
+typedef enum
+{
+ SRN_ID_TYPE_MAC_ADDR, /* BT, BT LE */
+ //... below are not supported id type
+ //SRN_ID_TYPE_NFC,
+ //SRN_ID_TYPE_MOBILECODE,
+ //SRN_ID_TYPE_OTHER
+} srn_id_type_enum;
+
+
+typedef enum
+{
+ SRN_TECH_TYPE_BT,
+ SRN_TECH_TYPE_BTLE,
+ //... below are not supported pos tech
+ //SRN_TECH_TYPE_NFC,
+ //SRN_TECH_TYPE_MOBILECODE,
+ //SRN_TECH_TYPE_OTHER
+} srn_tech_type_enum;
+
+typedef enum
+{
+ BLUETOOTH_RTD_UNIT_MICROSECONDS,
+ BLUETOOTH_RTD_UNIT_HUNDREDS_OF_NANOSECONDS,
+ BLUETOOTH_RTD_UNIT_TENS_OF_NANOSECONDS,
+ BLUETOOTH_RTD_UNIT_NANOSECONDS,
+ BLUETOOTH_RTD_UNIT_TENTHS_OF_NANOSECONDS,
+ BLUETOOTH_RTD_UNIT_MAX = MAX_ENUM_VALUE,
+}bt_rtd_unit_enum;
+
+typedef enum
+{
+ SRN_TARGET_DATA_VALID_TYPE_VALID,
+ SRN_TARGET_DATA_VALID_TYPE_VALID_UPDATED_DATA_WILL_BE_PROVIDED,
+ SRN_TARGET_DATA_VALID_TYPE_VALID_BUT_SERVER_WILL_NOT_PROVIDE_NEW_DATA
+} srn_target_data_valid_type_enum;
+
+
+typedef enum
+{
+ SRN_ERROR_TYPE_LOCATION_SERVER_CAUSE,
+ SRN_ERROR_TYPE_TARGET_DEVICE_CAUSE
+} srn_error_type_enum;
+
+
+typedef enum
+{
+ SRN_LOCATION_SERVER_GROUP_ERR_CAUSE_UNDEFINED,
+ SRN_LOCATION_SERVER_GROUP_ERR_CAUSE_SOME_GROUP_CATEGORY_SRNID_UNKNOWN_UNSUPPORTED,
+ SRN_LOCATION_SERVER_GROUP_ERR_CAUSE_ALL_GROUP_CATEGORY_SRNID_UNKNOWN_UNSUPPORTED,
+ SRN_LOCATION_SERVER_GROUP_ERR_CAUSE_NO_SRN_GROUPS_NEARBY
+} srn_loc_server_group_err_cause_enum;
+
+
+typedef enum
+{
+ SRN_LOC_SERVER_GROUP_UPT_ERR_CAUSE_UNDEFINED,
+ SRN_LOC_SERVER_GROUP_UPT_ERR_CAUSE_ALL_SRN_GROUPIDS_UNKNOWN,
+ SRN_LOC_SERVER_GROUP_UPT_ERR_CAUSE_ALL_SRN_GROUPIDS_KNOWN_SOME_SRN_GROUP_VERSIONS_UNKNOWN,
+ SRN_LOC_SERVER_GROUP_UPT_ERR_CAUSE_ALL_SRN_GROUPIDS_KNOWN_ALL_SRN_GROUP_VERSIONS_UNKNOWN,
+ SRN_LOC_SERVER_GROUP_UPT_ERR_CAUSE_SOME_SRN_GROUPIDS_UNKNOWN,
+ SRN_LOC_SERVER_GROUP_UPT_ERR_CAUSE_SOME_SRN_GROUP_VERSIONS_UNKNOWN_ALL_SRN_GROUP_VERSIONS_UNKNOWN,
+ SRN_LOC_SERVER_GROUP_UPT_ERR_CAUSE_SOME_SRN_GROUPIDS_SOME_SRN_GROUP_VERSIONS_UNKNOWN,
+ SRN_LOC_SERVER_GROUP_UPT_ERR_CAUSE_INFO_NOT_MATCH_WITH_GROUPID
+} srn_loc_server_group_upt_err_cause_enum;
+
+
+typedef enum
+{
+ SRN_LOC_SERVER_ANTENNA_ERR_CAUSE_UNDEFINED,
+ SRN_LOC_SERVER_ANTENNA_ERR_CAUSE_SOME_ANTENNA_PATTERNIDS_UNKNOWN,
+ SRN_LOC_SERVER_ANTENNA_ERR_CAUSE_ALL_ANTENNA_PATTERNIDS_UNKNOWN
+} srn_loc_server_antenna_err_cause_enum;
+
+
+typedef enum
+{
+ SRN_TARGET_DEVICE_ERR_CAUSE_UNDEFINED,
+ SRN_TARGET_DEVICE_ERR_CAUSE_REQUESTED_MEASUREMENTS_NOT_AVAILABLE,
+ SRN_TARGET_DEVICE_ERR_CAUSE_NOT_ALL_REQUESTED_MEASUREMENTS_POSSIBLE,
+ SRN_TARGET_DEVICE_ERR_CAUSE_CATEGORY_NOT_SUPPORTED
+} srn_target_device_err_cause_enum;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+/*Mapping to LPPeBluetooth_BluetoothMultipleMeasurement*/
+typedef enum
+{
+ SRN_REQ_LOC_MULTI_MEAS_FORBIDDEN,
+ SRN_REQ_LOC_MULTI_MEAS_ALLOWED,
+ SRN_REQ_LOC_MULTI_MEAS_REQUESTED,
+ SRN_REQ_LOC_MULTI_MEAS_MAX = MAX_ENUM_VALUE,
+} srn_req_loc_multi_meas_enum;
+
+
+typedef enum
+{
+ IP_ADDRESS_TYPE_IP_V4,
+ IP_ADDRESS_TYPE_IP_V6
+} ip_address_type_enum;
+
+
+/* Mapping to LPPeIpAddress_Bearer*/
+typedef enum
+{
+ DATA_BEARER_TYPE_UNKNOWN,
+ DATA_BEARER_TYPE_GSM,
+ DATA_BEARER_TYPE_UTRAN,
+ DATA_BEARER_TYPE_LTE,
+ DATA_BEARER_TYPE_WLAN,
+ /* others type will not be used in mobile devices */
+ DATA_BEARER_TYPE_MAX = MAX_ENUM_VALUE,
+} data_bearer_type_enum;
+
+
+typedef enum
+{
+ SCHEDULED_LOC_DISPOS_TYPE_WITHIN_WINDOW,
+ SCHEDULED_LOC_DISPOS_TYPE_OUTSIDE_WINDOW_NOWINDOW,
+ SCHEDULED_LOC_DISPOS_TYPE_NOT_SUPPORTED_NO_CAPABILITY,
+ SCHEDULED_LOC_DISPOS_TYPE_NOT_SUPPORTED_NO_TIME_REFERENCE,
+ SCHEDULED_LOC_DISPOS_TYPE_NOT_SUPPORTED__CONFLICT_ANOTHER_REQUEST,
+ SCHEDULED_LOC_DISPOS_TYPE_NOT_SUPPORTED_OTHER_REASONS
+} scheduled_loc_dispos_type_enum;
+
+
+typedef enum
+{
+ LOC_TIME_STAMP_TYPE_GNSS_TIME,
+ LOC_TIME_STAMP_TYPE_NETWORK_TIME,
+ LOC_TIME_STAMP_TYPE_RELATIVE_TIME,
+} loc_time_stamp_type_enum;
+
+
+typedef enum
+{
+ SENSOR_PRIMARY_MOTION_STATE_UNKNOWN,
+ SENSOR_PRIMARY_MOTION_STATE_STATIONARY,
+ SENSOR_PRIMARY_MOTION_STATE_PEDESTRIAN,
+ SENSOR_PRIMARY_MOTION_STATE_RUNNING,
+ SENSOR_PRIMARY_MOTION_STATE_CYCLING,
+ SENSOR_PRIMARY_MOTION_STATE_CAR,
+ SENSOR_PRIMARY_MOTION_STATE_TRAIN,
+ SENSOR_PRIMARY_MOTION_STATE_AEROPLANE,
+ SENSOR_PRIMARY_MOTION_STATE_BOAT,
+ SENSOR_PRIMARY_MOTION_STATE_FIDGETING
+} sensor_primary_motion_state_enum;
+
+
+typedef enum
+{
+ SENSOR_TGT_PRI_MOTION_STATE_ERR_CAUSE_NOT_AVAILABLE,
+ SENSOR_TGT_PRI_MOTION_STATE_ERR_CAUSE_NOT_SUPPORTED
+} sensor_tgt_pri_motion_state_err_cause_enum;
+
+
+typedef enum
+{
+ SENSOR_TGT_SEC_MOTION_STATE_ERR_CAUSE_NOT_AVAILABLE,
+ SENSOR_TGT_SEC_MOTION_STATE_ERR_CAUSE_NOT_SUPPORTED
+} sensor_tgt_sec_motion_state_err_cause_enum;
+
+
+typedef enum
+{
+ SENSOR_TGT_PRESSURE_ERR_CAUSE_NOT_AVAILABLE,
+ SENSOR_TGT_PRESSURE_ERR_CAUSE_NOT_SUPPORTED
+} sensor_tgt_pressure_err_cause_enum;
+
+
+typedef enum
+{
+ LPPE_SERVICE_SUPPORT_TYPE_NULL,
+ LPPE_SERVICE_SUPPORT_TYPE_WLAN,
+ LPPE_SERVICE_SUPPORT_TYPE_BT,
+ LPPE_SERVICE_SUPPORT_TYPE_SENSOR,
+ LPPE_SERVICE_SUPPORT_TYPE_NETWORK,
+ LPPE_SERVICE_SUPPORT_TYPE_IPADDRESS,
+} lppe_service_support_type_enum;
+
+
+
+#endif /* _LPP_LPPE_ENUM_H */
diff --git a/mcu/interface/protocol/general/lpp_lppe_struct.h b/mcu/interface/protocol/general/lpp_lppe_struct.h
new file mode 100644
index 0000000..61c54d0
--- /dev/null
+++ b/mcu/interface/protocol/general/lpp_lppe_struct.h
@@ -0,0 +1,1672 @@
+/******************************************************************************
+* 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) 2016
+*
+* 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:
+ * --------------------------------------------------------
+ * lpp_lppe_struct.h
+ *
+ * Project:
+ * --------------------------------------------------------
+ *
+ *
+ * Description:
+ * --------------------------------------------------------
+ * LPP/LPP Extension Interface - Structure Definition
+ *
+ * Author:
+ * --------------------------------------------------------
+ * -------
+ *
+ * --------------------------------------------------------
+ * $Log$
+ *
+ * 11 29 2019 jie-yu.wang
+ * [MOLY00461947] [LPP] Patch back from 1001.DEV to VMOLY
+ * [SWRD] LPP patch back
+ *
+ * 03 15 2018 jie-yu.wang
+ * [MOLY00311925] Code sync from R3.
+ *
+ * 10 04 2016 doug.shih
+ * [LPPe] interface design
+ * Fix enum type redefinition
+ * .
+ *
+ * 10 03 2016 doug.shih
+ * [LPPe] interface design
+ * ASN.1 structure down size
+ * .
+ *
+ * 10 03 2016 doug.shih
+ * [LPPe] interface design
+ * .
+ *
+ * 09 09 2016 doug.shih
+ * [LPPe] interface design
+ * .
+ *
+ * 09 06 2016 doug.shih
+ * [LPPe] interface design
+ * .
+ *
+ * 08 24 2016 doug.shih
+ * [LPPe] interface design
+ * .
+ *
+ *
+ *****************************************************************************/
+
+#ifndef _LPP_LPPE_STRUCT_H
+#define _LPP_LPPE_STRUCT_H
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+#include "lpp_lppe_enum.h"
+#include "lpp_lppe_def.h"
+#include "gnss2lcsp_enum.h"
+#include "gnss2lcsp_struct.h"
+/*****************************************************************************
+ * Macros Without Parameters
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Macros With Parameters
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Type Definitions
+ *****************************************************************************/
+#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 !*/
+#endif
+
+/* Mapping to LPPeIpAddress_IpAddress*/
+typedef struct {
+ kal_bool ipv4Valid;
+ kal_char ipv4[4];
+ kal_int32 ipv4_size;
+
+ kal_bool ipv6Valid;
+ kal_char ipv6[16];
+ kal_int32 ipv6_size;
+
+ data_bearer_type_enum bearer;
+
+ kal_bool natValid;
+ kal_bool nat;
+} ip_address_element_struct;
+
+/*Mapping to LPPeIpAddress_IpAddressInformation*/
+typedef struct
+{
+ ip_address_element_struct ipAddrElement[LOC_IP_ADDR_MAX_ELEMENT];
+ kal_int32 numIPAddrElement;
+} lpp_lppe_ipaddress_meas_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 !*/
+#endif
+
+/* ---LPP -> LPP_EXT--- */
+/* MSG_ID_LPP_LPPE_EPDU_DATA_IND: transfer downlink LPPe message raw data */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 epduDLSN; /* unique sequence number to identify a EPDU in DL, only used between LPP and LPP_EXT */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this EPDU */
+ lpp_lppe_msg_type_enum msgType; /* pre-decode LPPE message type of this EPDU */
+ kal_uint8 posMethodBitmask; /*if LPP has AGNSS position, LPPe also need to comprase the result into LPPe element */
+ /* raw data is in peer buffer */
+} lpp_lppe_epdu_data_ind_struct;
+
+
+/* MSG_ID_LPP_LPPE_EPDU_DATA_NTF: indicate certain uplink LPPe message acknowledge status */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 epduULSN; /* unique sequence number to identify a EPDU in UL, only used between LPP and LPP_EXT */
+ kal_bool ackStatus; /* LPP acknowledge status for specified uplink EPDU, TRUE: acked, FALSE: nacked(sent failure) */
+} lpp_lppe_epdu_data_ntf_struct;
+
+
+/* MSG_ID_LPP_LPPE_EPDU_DATA_CNF: indicate uplink LPPe message transferring status */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 epduULSN; /* unique sequence number to identify a EPDU in UL, only used between LPP and LPP_EXT */
+ kal_bool sentStatus; /* LPP sent status (LPP recieved CNF) for specified uplink EPDU, TRUE: sent, FALSE: failure */
+} lpp_lppe_epdu_data_cnf_struct;
+
+
+/* MSG_ID_LPP_LPPE_STATUS_SYNC_IND: inform LPP status, such as connection status, SUPL/LPP session */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool isConnected; /* indicate signaling connection status, TRUE: connected, FALSE: released */
+ kal_bool isSUPLSessionActive; /* indicate SUPL/LPP session active status, TRUE: active, FALSE: idle */
+} lpp_lppe_status_sync_ind_struct;
+
+/* Assistanda Data*/
+/* MSG_ID_LPP_LPPE_WLAN_POS_ASSIST_DATA_REQUEST_IND: AP connectivity module requests to assist data request */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD request */
+ void* ptr;
+} lpp_lppe_wlan_pos_assist_data_request_ind_struct;
+
+/* MSG_ID_LPP_LPPE_BT_POS_ASSIST_DATA_REQUEST_IND: AP connectivity module requests to assist data request */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD request */
+ void* ptr;
+} lpp_lppe_bt_pos_assist_data_request_ind_struct;
+
+/* MSG_ID_LPP_LPPE_SENSOR_POS_ASSIST_DATA_REQUEST_IND: AP connectivity module requests to assist data request */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD request */
+ void* ptr;
+} lpp_lppe_sensor_pos_assist_data_request_ind_struct;
+
+/* MSG_ID_LPP_LPPE_HA_AGNSS_POS_ASSIST_DATA_REQUEST_IND: AP connectivity module requests to assist data request */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD request */
+} lpp_lppe_ha_agnss_pos_assist_data_request_ind_struct;
+
+
+/* MSG_ID_LPP_LPPE_PMTK_DONE_IND: LPP finish the AGNSS assistance data transmission */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD request */
+} lpp_lppe_pmtk_done_ind_struct;
+
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#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 !*/
+#endif
+
+typedef struct
+{
+ srn_tech_type_enum srnTechType; /* identify the SRN RF technology */
+
+ // kal_bool srnVendorInfoValid;
+ // LPP_EXT_OMA_LPPe_SRN_Category_srnVendorInformation srnVendorInfo; /* TBD: redefine internal structure? */ /* provide information about an associated SRN vendor */
+} srn_category_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 !*/
+#endif
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+/* Location Information*/
+#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 !*/
+#endif
+
+
+typedef struct
+{
+ kal_int32 rtdValue; /* [0..16777215], the measured round trip delay between the target and WLAN AP, unit refer below rtdUnits */
+ wlan_ap_rtd_unit_enum rTdUnits; /* units for each of these are 1000ns(1ms), 100ns, 10ns, 1ns or 0.1ns */
+
+ kal_int16 rtdAccuracy; /* [0..255], accuracy expressed as the standard deviation of the delay */
+} wlan_rtd_struct;
+
+
+/* Mapping to LPPeWlan_WlanApMeasurement*/
+typedef struct
+{
+ /**
+ * apRSSI = 0x1
+ * apChanFreq = 0x2
+ * apRtd = 0x4
+ */
+ kal_int32 valid;
+ kal_bool servingFlag; /* * This parameter indicates whether a set of WLAN AP measurements were obtained for a serving WLAN AP (TRUE) or a non-serving WLAN AP (FALSE) */
+
+ kal_char apMacAddr[WLAN_MAC_ADDRESS_SIZE]; /* This field provides the 48 bit MAC address of the reported WLAN AP */
+ kal_int32 apMACAddress_size;
+ /**
+ * This field provides the AP signal strength of a beacon frame, probe
+ * response frame or measurement pilot frame measured at the target in dBm
+ * on the channel indicated by apChannelFrequency field
+ * -127..128
+ */
+ float apRSSI;
+ kal_int16 apChanFreq; /* This field provides the AP channel number identification of the reported WLAN AP 0..256 */
+ wlan_rtd_struct apRtd;
+
+ /** * This field provides the SSID of the wireless network served by the AP */
+ kal_char apSSID[WLAN_AP_MAX_SSID_OCTET];
+ kal_int32 apSSID_size;
+} wlan_meas_query_info_list_struct; //wlan_ap_loc_info_list_struct;
+
+
+/* Mapping to LPPeWlan_WlanProvideMeasurement */
+typedef struct
+{
+ /**
+ * This parameter provides measurements for one or more WLAN APs at
+ * the current time and/or for historic times
+ */
+ wlan_meas_query_info_list_struct listElement[WLAN_AP_MAX_LOC_INFO_LIST_ELEMENT];
+ kal_int32 meas_size;
+} wlan_meas_query_comb_struct; //wlan_ap_loc_info_comb_struct;
+
+
+typedef struct
+{
+ wlan_ap_tgt_dev_err_cause_enum cause;
+ kal_uint32 notAllAvailableBitmap; /* use WLAN_AP_TGT_DEV_ERR_*, only valud when cause = NOT_ALL_REQ_MEASUREMENT_POSSIBLE */
+} wlan_ap_tgt_dev_err_cause_struct;
+
+
+/*Mapping to lppe_stack_wlan_meas */
+typedef struct
+{
+ kal_bool isValid;
+ kal_int64 relativeTime; //milliseconds
+
+ wlan_meas_query_comb_struct meas;
+} lpp_lppe_wlan_meas_struct; //lpp_lppe_wlan_ap_pos_loc_cnf_struct;
+
+
+typedef struct
+{
+ kal_bool priMotionStateErrValid;
+ sensor_tgt_pri_motion_state_err_cause_enum priMotionStateErr;
+
+ kal_bool secMotionStateErrValid;
+ sensor_tgt_sec_motion_state_err_cause_enum secMotionStateErr;
+
+ kal_bool pressureErrValid;
+ sensor_tgt_pressure_err_cause_enum pressureErr;
+} sensor_tgt_err_struct;
+
+
+/* Mapping to LPPeSensor_SensorPressureMeasurement*/
+typedef struct
+{
+ kal_int32 sensorMeas; /* [30000..115000], specify the measured atmospheric pressure in units of Pa
+ (corresponding to a numerical altitude resolution of about 0.1m at sea level) */
+ kal_bool adjustmentValid;
+ kal_int16 adjustment; /* [-5000..5000], specify any adjustment in units of Pa applied by a target to the output of the sensor(s) to produce a more accurate atmospheric pressure */
+
+ kal_bool pressureUncRangeValid;
+ kal_int16 pressureUncRang;
+
+ kal_bool pressureUncConfidenceValid;
+ kal_char pressureUncConfidence;
+
+ kal_bool temperatureValid;
+ kal_int16 temperature; /* [-100..150], provide the temperature in degrees Celsius associated with the sensor(s) used for the pressure measurement and shall be provided if available */
+} sensor_pressure_meas_struct;
+
+
+typedef struct
+{
+ kal_bool isValid;
+ kal_int64 relativeTime; //milliseconds
+
+ sensor_pressure_meas_struct meas;
+} lpp_lppe_sensor_meas_struct;
+
+
+ /* Mapping to LPPeBluetooth_BluetoothRTD */
+typedef struct
+{
+ kal_int32 rtdValue; /* [0..16777215], the measured round trip delay between the target and WLAN AP, unit refer below rtdUnits */
+ bt_rtd_unit_enum rTdUnits; /* units for each of these are 1000ns(1ms), 100ns, 10ns, 1ns or 0.1ns */
+
+ kal_int16 rtdAccuracy; /* [0..255], accuracy expressed as the standard deviation of the delay */
+}bt_rtd_struct;
+
+typedef struct
+{
+ #define LPPE_STACK_BT_MEAS_ELEMENT_VALID_RSSI 0x1
+ #define LPPE_STACK_BT_MEAS_ELEMENT_VALID_RTD 0x2
+ kal_int32 valid;
+ kal_int32 deviceRelativeTime; // milliseconds, actual time = currentTime - relativeTime
+
+ kal_int16 rssi;
+ bt_rtd_struct rtd;
+} bt_meas_element_struct;
+
+
+ /*Mapping to lppe_stack_bt_meas_device*/
+typedef struct
+{
+ kal_char mac[BT_MAC_ADDRESS_SIZE];
+
+ #define LPPE_BT_MEAS_DEVICE_CATEGORY_UNKNOWN 0
+ #define LPPE_BT_MEAS_DEVICE_CATEGORY_BT 1
+ #define LPPE_BT_MEAS_DEVICE_CATEGORY_BTLE 2
+ kal_char category;
+ bt_meas_element_struct meas;
+}bt_meas_list_struct; //srn_meas_list_struct;
+
+typedef struct
+{
+ srn_category_struct category;
+ srn_target_device_err_cause_enum cause;
+
+ kal_uint8 notAllAvailableBitmap; /* use SRN_TGT_DEV_ERR_*, only valud when cause = NOT_ALL_REQ_MEASUREMENT_POSSIBLE */
+} srn_tgt_dev_error_element_struct;
+
+
+typedef struct
+{
+ kal_uint8 numTgtErrElement;
+ srn_tgt_dev_error_element_struct tgtErrElement[SRN_MAX_TARGET_DEVICE_ERR_ELEMENT];
+} srn_tgt_dev_error_struct;
+
+
+typedef struct
+{
+ kal_bool isValid;
+ kal_int64 relativeTime; //milliseconds
+
+ bt_meas_list_struct devices[SRN_MAX_MEASUREMENT_ELEMENT];
+ kal_int32 devices_size;
+}lpp_lppe_bt_meas_struct;
+
+/* Mapping to LPPeNetwork_NetworkLocationMeasurement*/
+typedef struct {
+ kal_int64 time; /*UTC time of this fix, in milliseconds since January 1, 1970*/
+ double latitude; /*in degrees*/
+ double longitude; /*in degrees*/
+ kal_bool accuracyValid; /*the estimated accuracy of this location, in meters*/
+ float accuracy;
+ kal_bool altitudeValid; /*in meters above the WGS 84 reference ellipsoid*/
+ double altitude;
+ kal_bool confidenceHorizontalValid;
+ kal_uint8 confidenceHorizontal; /* The horizontal confidence percentage associated with the CEP or Uncerainty Ellipse depending upon withci is included. [0...99] */
+ kal_bool locationSourceValid;
+ /**
+ * location source bit array for locationSource
+ * locationSourceAgnss = 0x1
+ * locationSourceSensor = 0x2
+ * locationSourceEcidLTE = 0x4
+ * locationSourceEcidGSM = 0x8
+ * locationSourceEcidUTRA = 0x10
+ * locationSourceWlanAP = 0x20
+ * locationSourceSrn = 0x40
+ */
+ kal_int32 locationSource;
+
+ kal_bool verticalAccuracyValid; /* the vertical accuracy of this location, in meters */
+ float verticalAccuracy;
+ kal_bool confidenceVerticalValid;
+ kal_uint8 confidenceVertical; /* provide the location vertical accuracy confidence, range 0 - 99 */
+} network_meas_element_struct;
+
+/* Mapping to lppe_stack_network_meas*/
+typedef struct
+{
+ kal_bool isValid;
+ kal_int64 relativeTime; //milliseconds
+
+ network_meas_element_struct meas;
+}lpp_lppe_network_meas_struct;
+
+/* MSG_ID_LPP_LPPE_WLAN_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+ lpp_lppe_wlan_meas_struct wlanAPCnf;
+} lpp_lppe_wlan_meas_query_cnf_struct;
+
+/* MSG_ID_LPP_LPPE_BT_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+ lpp_lppe_bt_meas_struct btCnf;
+} lpp_lppe_bt_meas_query_cnf_struct;
+
+/* MSG_ID_LPP_LPPE_SENSOR_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+ lpp_lppe_sensor_meas_struct sensorCnf;
+} lpp_lppe_sensor_meas_query_cnf_struct;
+
+/* MSG_ID_LPP_LPPE_NETWORK_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+ lpp_lppe_network_meas_struct networkCnf;
+} lpp_lppe_network_meas_query_cnf_struct;
+
+/* MSG_ID_LPP_LPPE_IPADDRESS_MEAS_QUERY_CNF: provide location information of specified positioning methods */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+ lpp_lppe_ipaddress_meas_struct ipAddressCnf;
+} lpp_lppe_ipaddress_meas_query_cnf_struct;
+
+
+/* Capability*/
+/* Mapping to LPPeWlan_WlanMeasurements */
+typedef struct
+{
+ kal_bool nonServing; /* Measurements for a non-serving WLAN AP (in addition to a serving WLAN AP)*/
+ kal_bool apSSID; /* SSID of the WLAN */
+ kal_bool apSN; /* AP S/N received at the target */
+ kal_bool apDevType; /* AP Device type */
+ kal_bool apPhyType; /* AP PHY type */
+ kal_bool apRSSI; /* AP signal strength at the target */
+ kal_bool apChanFreq; /*AP channel/frequency of Tx/Rx */
+ kal_bool apRTD; /* Round Trip Delay between target and AP */
+ kal_bool apRepLoc; /* AP Location as reported by AP */
+ kal_bool apTP; /* AP transmit power */
+ kal_bool apAG; /* AP antenna gain */
+ kal_bool ueTP; /* Target transmit power */
+ kal_bool ueAG; /* Target antenna gain */
+ kal_bool ueSN; /* UE S/N received at the AP */
+ kal_bool ueRSSI; /* Target signal strength at the AP */
+ kal_bool oc; /* operating class */
+} wlan_meas_capa_type_struct;
+
+
+typedef struct {
+ kal_bool ieee802_11a;
+ kal_bool ieee802_11b;
+ kal_bool ieee802_11g;
+ kal_bool ieee802_11n;
+ kal_bool ieee802_11ac;
+ kal_bool ieee802_11ad;
+} wlan_ap_type_struct;
+
+
+/*Mapping to LPPeWlan_WlanApCapability */
+typedef struct
+{
+ kal_char apMacAddr[WLAN_MAC_ADDRESS_SIZE]; /* provide the MAC address of the target */
+ kal_int32 apMACAddress_size;
+
+ wlan_ap_type_struct apTypes; /* provide the WLAN types supported when functioning as an AP, mapping to LPPeWlan_WlanTypesSupported */
+} wlan_ap_route_capability_struct;
+
+/* Mapping to LPPeWlan_WlanApADSupported */
+typedef struct
+{
+ kal_bool aplist; /*mandatory WLAN AP data*/
+ kal_bool aplocation; /*location of each WLAN AP*/
+ kal_bool locationreliability; /*reliability of WLAN AP location*/
+ kal_bool transmitPower; /*transmit power for each WLAN AP*/
+ kal_bool antennaGain; /*antenna gain for each WLAN AP*/
+ kal_bool coverageArea; /*coverage area for each WLAN AP*/
+ /**
+ * information for WLAN APs belonging to a different operator than
+ * the serving WLAN AP or information for multiple WLAN AP data sets if
+ * the serving WLAN AP is not associated with a PLMN operator or if the
+ * target device is not served by a WLAN AP
+ */
+ kal_bool nonServing;
+
+} wlan_ap_ad_support_struct;
+
+
+/*align AP*/
+typedef struct
+{
+ kal_bool isWlanSupported; /* This parameter indicates whether DUT can support WLAN functionality*/
+ kal_bool apCapabilityValid;/*This parameter if present indicates that the target can function as a WLAN AP*/
+ wlan_ap_route_capability_struct apCapability;
+
+ kal_bool wlanTypesSupportedValid; /*This field provides the WLAN AP types supported by the target device when functioning as a WLAN station*/
+ wlan_ap_type_struct wlanTypesSupport; /* indicate the WLAN AP types supported by the target device when functioning as a WLAN station, mapping to WLAN_AP_TYPE_LIST_BIT_* */
+
+ wlan_ap_ad_support_struct apADSupported; /* This field specifies the WLAN AP assistance data supported by the target device */
+
+ kal_char ueMacAddr[WLAN_MAC_ADDRESS_SIZE]; /* This field specifies the MAC Address of the UE. This field should be included for location for an emergency call and may be included in other cases */
+ kal_int32 ueMACAddress_size;
+
+ wlan_meas_capa_type_struct measSupported; /* This field specifies the E-CID measurements supported by the target device when accessing a WLAN AP*/
+} wlan_ap_capability_struct;
+
+
+typedef struct
+{
+ kal_bool motionStateSupport; /* TRUE if the target supports motion state measurements */
+ kal_bool secMotionStateSupport; /* TRUE if the target supports secondary motion state measurements */
+ kal_bool pressureADSupport; /* TRUE if the target supports atmosphericc pressure assistance data */
+ kal_bool PressureSupport; /* TRUE if the target supports atmospheric pressure measurements */
+} sensor_capability_struct;
+
+
+typedef struct
+{
+ srn_category_struct srnCategory; /* specify the supported SRN category */
+ kal_uint8 supportMeas; /* specify the SRN measurements the target can provide, mapping to SRN_MEAS_TYPE_BIT_* */
+ kal_uint8 supportAssistData; /* specify the SRN assistance data types supported by the target device for target based mode, mapping to SRN_AD_TYPE_BIT_* */
+} srn_capability_category_element_struct;
+
+/* Align to AP: LPPeBluetooth_BluetoothProvideCapabilities (do we need to kepp for LPPe context)*/
+typedef struct
+{
+ kal_uint8 numCateElement;
+ srn_capability_category_element_struct cateElement[SRN_MAX_CATEGORY_ELEMENT]; /* specify the target capabilities for each supported SRN category */
+} srn_capability_struct;
+
+typedef struct
+{
+ kal_bool btSupported; /*Whether target supports bluetooth*/
+ kal_bool btRssi;
+ kal_bool btRtd;
+ kal_bool btGroup; /* This field specifies the BT assistance data types supported by the target device for target based mode*/
+ kal_bool btAntennaPattern; /* This field specifies the BT assistance data types supported by the target device for target based mode */
+
+ kal_bool btleSupported; /* * Whether target supports bluetooth low energy*/
+ kal_bool btleRssi;
+ kal_bool btleRtd;
+ kal_bool btleGroup; /*This field specifies the BTLE assistance data types supported by the target device for target based mode*/
+ kal_bool btleAntennaPattern; /* This field specifies the BTLE assistance data types supported by the target device for target based mode */
+} bt_capability_struct;
+
+/* Mapping to LPPeIpAddress_IpAddressCapabilities */
+typedef struct
+{
+ kal_bool ipv4; /* support to report Internet Protocol version 4 */
+ kal_bool ipv6; /* support to report Internet Protocol version 6 */
+ kal_bool nat; /* support to report Network Address Translation */
+} ipaddress_capability_struct;
+
+/* MSG_ID_LPP_LPPE_WLAN_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ wlan_ap_capability_struct wlanAPCapa;
+} lpp_lppe_wlan_capability_ind_struct;
+
+/* MSG_ID_LPP_LPPE_BT_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ bt_capability_struct btCapa;
+} lpp_lppe_bt_capability_ind_struct;
+
+/* MSG_ID_LPP_LPPE_SENSOR_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sensor_capability_struct sensorCapa;
+} lpp_lppe_sensor_capability_ind_struct;
+
+/* MSG_ID_LPP_LPPE_NETWORK_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool networkLocationSupported;
+} lpp_lppe_network_capability_ind_struct;
+
+/* MSG_ID_LPP_LPPE_IPADDRESS_CAPABILITY_IND: unsolicited capability indications from AP connectivity module */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ipaddress_capability_struct ipAddressCapa;
+} lpp_lppe_ipaddress_capability_ind_struct;
+
+/* MSG_ID_LPP_LPPE_GNSS_POS_IND: un-solicited POS indication from LPP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ gnss_loc_result_enum resultStatus;
+ gnss_pos_result_type_enum type;
+ gnss_pos_result_struct posResult; /* only valid when resultStatus = GNSS_LOC_RESULT_NO_ERROR */
+} lpp_lppe_gnss_pos_ind_struct;
+
+/* MSG_ID_LPP_LPPE_GNSS_MEAS_IND: un-solicited POS indication from LPP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ gnss_loc_result_enum resultStatus;
+ gnss_meas_result_type_enum type;
+ gnss_measured_result_struct measuredResult; /* only valid when resultStatus = GNSS_LOC_RESULT_NO_ERROR */
+} lpp_lppe_gnss_meas_ind_struct;
+
+
+/* MSG_ID_LPP_LPPE_ABORT_IND: un-solicited ABORT indication from LPP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ kal_bool abortAll; /* Also can use on LPP clear all session */
+ lpp_lppe_abort_cause_enum cause;
+} lpp_lppe_abort_ind_struct;
+
+/* MSG_ID_LPP_LPPE_ERROR_IND: un-solicited ERROR indication from LPP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+
+ lpp_lppe_error_cause_enum cause;
+} lpp_lppe_error_ind_struct;
+
+/* ---LPP_EXT -> LPP--- */
+/* MSG_ID_LPP_LPPE_EPDU_DATA_REQ: transfer uplink LPPe message raw data */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 epduULSN; /* unique sequence number to identify a EPDU in UL, only used between LPP and LPP_EXT */
+ kal_bool lppTransIDValid; /* LPP transaction ID validity */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this EPDU (optional) */
+ lpp_lppe_msg_type_enum msgType; /* LPPE message type of this EPDU */
+ kal_bool ackRequired; /* specify if this EPDU requires LPP acknowledge, TRUE: required, FALSE: not needed */
+ lppe_result_enum resultStatus;
+ /* raw data is in peer buffer */
+} lpp_lppe_epdu_data_req_struct;
+
+
+/* MSG_ID_LPP_LPPE_EPDU_DATA_RSP: indicate downlink LPPe message process status */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 epduDLSN; /* unique sequence number to identify a EPDU in DL, only used between LPP and LPP_EXT */
+ kal_bool processStatus; /* LPPe process status for specified downlink EPDU, TRUE: sent, FALSE: failure, e.g., AD receive RSP from AP module, LI REQ is sent to AP module */
+} lpp_lppe_epdu_data_rsp_struct;
+
+
+/* Assistance Data Procedure*/
+/* MSG_ID_LPP_LPPE_WLAN_POS_ASSIST_DATA_PROVIDE_IND,: transfer the assist data to LPP*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD */
+ kal_bool result; /* indicate the LPP/LPPe can initiate an AD request to the network */
+} lpp_lppe_wlan_pos_assist_data_provide_ind_struct;
+
+/* MSG_ID_LPP_LPPE_BT_POS_ASSIST_DATA_PROVIDE_IND,: transfer the assist data to LPP*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD */
+ kal_bool result; /* indicate the LPP/LPPe can initiate an AD request to the network */
+} lpp_lppe_bt_pos_assist_data_provide_ind_struct;
+
+/* MSG_ID_LPP_LPPE_SENSOR_POS_ASSIST_DATA_PROVIDE_IND,: transfer the assist data to LPP*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD */
+ kal_bool result; /* indicate the LPP/LPPe can initiate an AD request to the network */
+} lpp_lppe_sensor_pos_assist_data_provide_ind_struct;
+
+/* MSG_ID_LPP_LPPE_HA_AGNSS_POS_ASSIST_DATA_PROVIDE_IND,: transfer the assist data to LPP*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated AD session ID of this relay AD message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this AD */
+ kal_bool result; /* indicate the LPP/LPPe can initiate an AD request to the network */
+} lpp_lppe_ha_agnss_pos_assist_data_provide_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 !*/
+#endif
+
+#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 !*/
+/* 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
+
+#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 !*/
+/* 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
+
+#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 !*/
+#endif
+
+
+/*Location Information*/
+#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 !*/
+#endif
+
+typedef struct
+{
+ kal_bool nonServing; /* Measurements for a non-serving WLAN AP (in addition to a serving WLAN AP)*/
+ kal_bool apSSID; /* SSID of the WLAN*/
+ kal_bool apSN; /* AP S/N received at the target*/
+ kal_bool apDevType; /* AP Device type*/
+ kal_bool apPhyType; /* AP PHY type*/
+ kal_bool apRSSI; /* AP signal strength at the target*/
+ kal_bool apChanFreq; /* AP channel/frequency of Tx/Rx*/
+ kal_bool apRTD; /* Round Trip Delay between target and AP*/
+ kal_bool apRepLoc; /* AP Location as reported by AP*/
+ kal_bool apTP; /* AP transmit power */
+ kal_bool apAG; /* AP antenna gain */
+ kal_bool ueTP; /* Target transmit power */
+ kal_bool ueAG; /* Target antenna gain */
+ kal_bool ueSN; /*UE S/N received at the AP */
+ kal_bool ueRSSI; /* Target signal strength at the AP */
+ kal_bool oc; /*operating class*/
+} lpp_lppe_wlan_meas_req_struct;
+
+/* Mapping to LPPeSensor_SensorMeasurementRequest*/
+typedef struct
+{
+ kal_bool motionStateReq; /* request for primary motion state measurements */
+ kal_bool secMotionStateReq; /* request the secondary motion state of the target */
+ kal_bool pressureReq; /* request for atmospheric pressure measurements */
+} lpp_lppe_sensor_meas_req_struct; //lpp_lppe_sensor_pos_loc_req_struct;
+
+
+/*Mapping to LPPeBluetooth_BluetoothMeasurementRequest*/
+typedef struct
+{
+ srn_req_loc_multi_meas_enum btMultipleMeasurement; /* This field specifies if the target is forbidded, allowed, or requested to provide multiple measurement sets per BT*/
+ kal_bool btRtd; /*Request BT round trip delay*/
+ srn_req_loc_multi_meas_enum btleMultipleMeasurement; /* This field specifies if the target is forbidden, allowed, or requested to provide multiple measurement sets per BTLE*/
+ kal_bool btleRtd; /*Request BTLE round trip delay*/
+} lpp_lppe_bt_meas_req_struct;
+
+
+/* MSG_ID_LPP_LPPE_WLAN_START_IND: transfer the start message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+ lpp_lppe_wlan_meas_req_struct wlanAPReq;
+} lpp_lppe_wlan_start_ind_struct;
+
+/* MSG_ID_LPP_LPPE_BT_START_IND: transfer the start message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+ lpp_lppe_bt_meas_req_struct btReq;
+} lpp_lppe_bt_start_ind_struct;
+
+/* MSG_ID_LPP_LPPE_SENSOR_START_IND: transfer the start message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+ lpp_lppe_sensor_meas_req_struct sensorReq;
+} lpp_lppe_sensor_start_ind_struct;
+
+/* MSG_ID_LPP_LPPE_NETWORK_START_IND: transfer the start message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_network_start_ind_struct;
+
+/* MSG_ID_LPP_LPPE_WLAN_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_wlan_meas_query_req_struct;
+
+/* MSG_ID_LPP_LPPE_BT_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_bt_meas_query_req_struct;
+
+/* MSG_ID_LPP_LPPE_SENSOR_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_sensor_meas_query_req_struct;
+
+/* MSG_ID_LPP_LPPE_NETWORK_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_network_meas_query_req_struct;
+
+/* MSG_ID_LPP_LPPE_IPADDRESS_MEAS_QUERY_REQ: transfer the query message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_ipaddress_meas_query_req_struct;
+
+
+/* MSG_ID_LPP_LPPE_WLAN_STOP_IND: transfer the stop message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_wlan_stop_ind_struct;
+
+/* MSG_ID_LPP_LPPE_BT_STOP_IND: transfer the stop message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_bt_stop_ind_struct;
+
+/* MSG_ID_LPP_LPPE_SENSOR_STOP_IND: transfer the stop message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_sensor_stop_ind_struct;
+
+/* MSG_ID_LPP_LPPE_NETWORK_STOP_IND: transfer the stop message to LBS*//* LPPe only */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 sessionID; /* indicate the associated LI session ID of this message */
+ kal_uint16 lppTransID; /* binded LPP transactio ID of this LI */
+} lpp_lppe_network_stop_ind_struct;
+
+/* MSG_ID_LPP_LPPE_CAPABILITY_REQ: solicited capability request to AP connectivity module */
+//TBD: AP automaticlly transfer the capability
+
+/* MSG_ID_LPP_LPPE_ABORT_RSP: unsolicted ABORT request from LPP*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+} lpp_lppe_abort_rsp_struct;
+
+/* MSG_ID_LPP_LPPE_ERROR_RSP: un-solicited ERROR indication from LPP */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+} lpp_lppe_error_rsp_struct;
+
+
+
+/************** LBS -> LPP_EXT *************/
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ lpp_lppe_ha_gnss_assist_data_type_enum type; /* assistance data type for ack */
+} lppe_lbs_gnss_assist_data_rsp_struct; /* define for MSG_ID_LPPE_LBS_GNSS_ASSIST_DATA_RSP */
+
+#endif /* _LPP_LPPE_STRUCT_H */
diff --git a/mcu/interface/protocol/general/lpp_msg_enum.h b/mcu/interface/protocol/general/lpp_msg_enum.h
new file mode 100644
index 0000000..6f4631e
--- /dev/null
+++ b/mcu/interface/protocol/general/lpp_msg_enum.h
@@ -0,0 +1,190 @@
+/******************************************************************************
+* 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:
+ * --------------------------------------------------------
+ * lpp_msg_enum.h
+ *
+ * Project:
+ * --------------------------------------------------------
+ * LTE project
+ *
+ * Description:
+ * --------------------------------------------------------
+ * LTE Positioning Protocol - Message Structure Enumeration
+ *
+ * Author:
+ * --------------------------------------------------------
+ * -------
+ *
+ * --------------------------------------------------------
+ * $Log$
+ *
+ * 11 29 2018 roland.li
+ * [MOLY00363204] [Gen97] NR positioning interface check-in
+ * [LPP] 5G positioning interface.
+ *
+ * 09 20 2017 yung-chun.lin
+ * [MOLY00278366] LPP OTDOA new procedure architecture development
+ *
+ * [MOB][OTDOA][OA]
+ * - ERRC-LPP OTDOA API
+ * - enum for OTDOA STOP cause
+ *
+ * 10 28 2016 jie-yu.wang
+ * [MOLY00206577] [Gen92] A-BeiDou feature development
+ * .
+ *
+ * 01 13 2015 roland.li
+ * [MOLY00092193] [UMOLY][LPP]LPP R10R11 feature checkin
+ * .
+ *
+ * 08 04 2014 doug.shih
+ * [MOLY00073990] [LPP CP] LPP code check-in for OTDOA feature
+ * .
+ *
+ * 06 20 2014 jinghan.wang
+ * [MOLY00070034] [LCS][LPP] Always turn on reset UE stored pos info in CP for UP testing reference
+ * Turn on LPP CP option for UP SUPL usage.
+ *
+ *
+ *****************************************************************************/
+
+#ifndef _LPP_MSG_ENUM_H
+#define _LPP_MSG_ENUM_H
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+//#if defined(__LPP_CP_SUPPORT__) || defined(__LPP_UP_SUPPORT__) || defined(__L1EDPS_ENABLE__)
+
+#define LPP_OTDOA_MAX_NBR_CELL_FREQ_LAYER_NUM 3
+#define LPP_OTDOA_MAX_NBR_CELL_LIST_NUM 24
+#define LPP_OTDOA_MAX_NBR_CELL_LIST_NUM_TOTAL 3*24
+
+
+#define LPP_ECID_MAX_MEASURED_CELL_INFO_NUM 32
+
+#define LPP_MAX_BANDS 64 // should align LPP_maxBands
+
+/* LPP procedure enum mapped to bitmask (BIT position equals to enum value) */
+typedef enum
+{
+ LPP_PROC_TYPE_NULL,
+ LPP_PROC_TYPE_CAPABILITY_TRANSFER_INDICATION,
+ LPP_PROC_TYPE_ASSIST_DATA_TRANSFER_DELIVERY,
+ LPP_PROC_TYPE_LOC_INFO_TRANSFER_DELIVERY,
+ LPP_PROC_TYPE_ERROR,
+ LPP_PROC_TYPE_ABORT
+} lpp_procedure_type_enum;
+
+
+typedef enum
+{
+ LPP_LOC_OTDOA_RESULT_NULL,
+ LPP_LOC_OTDOA_RESULT_NO_ERROR,
+ LPP_LOC_OTDOA_RESULT_UNDEFINED,
+ LPP_LOC_OTDOA_RESULT_ASSIST_DATA_MISSING, /* TBD: used for timeout without assist data case */
+ LPP_LOC_OTDOA_RESULT_UNABLE_MEASURE_REF_CELL, /* LPP_OTDOA_TargetDeviceErrorCauses_cause_unableToMeasureReferenceCell */
+ LPP_LOC_OTDOA_RESULT_UNABLE_MEASURE_ANY_NBR_CELL, /* LPP_OTDOA_TargetDeviceErrorCauses_cause_unableToMeasureAnyNeighbourCell */
+ LPP_LOC_OTDOA_RESULT_UNABLE_MEASURE_SOME_NBR_CELL /* LPP_OTDOA_TargetDeviceErrorCauses_cause_attemptedButUnableToMeasureSomeNeighbourCells */
+} lpp_loc_otdoa_result_enum;
+
+
+typedef enum
+{
+ LPP_LOC_ECID_RESULT_NULL,
+ LPP_LOC_ECID_RESULT_NO_ERROR,
+ LPP_LOC_ECID_RESULT_UNDEFINED,
+ LPP_LOC_ECID_RESULT_REQUESTED_MEASUREMENT_NOT_AVAILABLE, /* LPP_ECID_TargetDeviceErrorCauses_cause_requestedMeasurementNotAvailable, e.g. RRC connection reestablishment */
+ LPP_LOC_ECID_RESULT_NOT_ALL_REQUESTED_MEASUREMENTS_POSSIBLE /* LPP_ECID_TargetDeviceErrorCauses_cause_notAllrequestedMeasurementsPossible */
+} lpp_loc_ecid_result_enum;
+
+
+typedef enum
+{
+ LPP_OTDOA_PRS_INFO_BANDWIDTH_N6,
+ LPP_OTDOA_PRS_INFO_BANDWIDTH_N15,
+ LPP_OTDOA_PRS_INFO_BANDWIDTH_N25,
+ LPP_OTDOA_PRS_INFO_BANDWIDTH_N50,
+ LPP_OTDOA_PRS_INFO_BANDWIDTH_N75,
+ LPP_OTDOA_PRS_INFO_BANDWIDTH_N100
+} lpp_otdoa_prs_info_bandwidth_enum;
+
+
+typedef enum
+{
+ LPP_OTDOA_PRS_INFO_NUM_DL_FRAME_SF_1,
+ LPP_OTDOA_PRS_INFO_NUM_DL_FRAME_SF_2,
+ LPP_OTDOA_PRS_INFO_NUM_DL_FRAME_SF_4,
+ LPP_OTDOA_PRS_INFO_NUM_DL_FRAME_SF_6
+} lpp_otdoa_prs_info_num_dl_frame_enum;
+
+
+typedef enum
+{
+ LPP_OTDOA_PRS_INFO_MUTING_PO_2,
+ LPP_OTDOA_PRS_INFO_MUTING_PO_4,
+ LPP_OTDOA_PRS_INFO_MUTING_PO_8,
+ LPP_OTDOA_PRS_INFO_MUTING_PO_16,
+} lpp_otdoa_prs_info_muting_po_enum;
+
+typedef enum
+{
+ LPP_OTDOA_NORMAL_STOP, /*Timer Timeout or ERRC Conn Release*/
+ LPP_OTDOA_PROC_CONFLICT_SUS, /*REQ does not stop for proc conflict, possible restart within a short time period*/
+ LPP_OTDOA_PROC_CONFLICT_STOP /*REQ does not stop for proc conflict, possible restart after a longer time period*/
+} lpp_otdoa_req_stop_enum;
+
+typedef enum {
+ UE_POS_TECH_AGNSS = 0,
+ UE_POS_TECH_OTDOA = 1
+} ue_pos_tech_enum;
+
+
+typedef enum {
+ NRRC_ABORT_CAUSE_IRAT = 0, /* NRRC mobility from NR to others RAT, NRRC MAIN */
+ NRRC_ABORT_CAUSE_CONN_REL, /* NRRC connection release (CONN -> IDLE), NRRC MAIN */
+ NRRC_ABORT_CAUSE_CONN_RE_EST, /* NRRC re-establishment (CONN -> CONN), NRRC NCONN */
+ NRRC_ABORT_CAUSE_GEMINI_SUS, /* NRRC Gemini suspend, NRRC MAIN */
+ NRRC_ABORT_CAUSE_VC_START, /* NRRC virtual connected start, NRRC MAIN */
+} lpp_nrrc_abort_cause_enum;
+
+
+//#endif /* #if defined(__LPP_CP_SUPPORT__) || defined(__LPP_UP_SUPPORT__) || defined(__L1EDPS_ENABLE__) */
+
+#endif /* _LPP_MSG_ENUM_H */
diff --git a/mcu/interface/protocol/general/lpp_msg_struct.h b/mcu/interface/protocol/general/lpp_msg_struct.h
new file mode 100644
index 0000000..c3a7e44
--- /dev/null
+++ b/mcu/interface/protocol/general/lpp_msg_struct.h
@@ -0,0 +1,620 @@
+/******************************************************************************
+* 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:
+ * --------------------------------------------------------
+ * lpp_msg_struct.h
+ *
+ * Project:
+ * --------------------------------------------------------
+ * LTE project
+ *
+ * Description:
+ * --------------------------------------------------------
+ * LTE Positioning Protocol - Message Structure Definition
+ *
+ * Author:
+ * --------------------------------------------------------
+ * -------
+ *
+ * --------------------------------------------------------
+ * $Log$
+ *
+ * 05 12 2021 jie-yu.wang
+ * [MOLY00628543] [A32 5G NA] request to fix OTDOA issue
+ *
+ * [SWRD][NR15.R3.MD700] OTDOA response
+ *
+ * 11 10 2020 jie-yu.wang
+ * [MOLY00589182] [Gen97][MP7][Memory reduction] Stage V - LTE POS preempt LTE/NR HARQ buffer
+ *
+ * [Interface][LPP].
+ *
+ * 11 29 2019 jie-yu.wang
+ * [MOLY00461947] [LPP] Patch back from 1001.DEV to VMOLY
+ * [SWRD] LPP patch back
+ *
+ * 06 20 2019 jie-yu.wang
+ * [MOLY00415205] [AGPS] [LBS] NR Neighbor cell information for SUPL
+ * [OA][LBS] SUPL Nbr Cell Interface.
+ *
+ * 06 12 2019 jie-yu.wang
+ * [MOLY00413168] [LPP] Inter RAT OTDOA modification for adding NRRC IND
+ * [OA][LPP] InterRAT OTDOA interface change for NRRC.
+ *
+ * 05 29 2019 jie-yu.wang
+ * [MOLY00394881] [LPP] Inter RAT OTDOA modification
+ * [OA][LPP] OTDOA RefCell Global ID.
+ *
+ * 05 15 2019 andrew.wu
+ * [MOLY00406240] [VGMM] DL NAS TRANSPORT with type multiple payload
+ * DL NAS TRANSPORT with type multiple payload.
+ *
+ * 03 28 2019 jie-yu.wang
+ * [MOLY00394881] [LPP] Inter RAT OTDOA modification
+ * [LPP] InterRAT OTDOA interface.
+ *
+ * 11 29 2018 roland.li
+ * [MOLY00363204] [Gen97] NR positioning interface check-in
+ * [LPP] 5G positioning interface.
+ *
+ * 02 05 2018 jie-yu.wang
+ * [MOLY00306235] [UMOLYE] LPP ASN Release 14 upgrade
+ * [LPP] R14 ASN upgrade.
+ *
+ * 12 01 2017 lawrence.chen
+ * [MOLY00292511] [Coverity Scanned Code Defect]CID:2540031 code defect happened in /mcu/l1core/modem/el1/el1c/meas/src/el1_lpp.c
+ * Coverity warning fix.
+ *
+ * 09 20 2017 lawrence.chen
+ * [MOLY00278366]LPP OTDOA new procedure architecture development.
+ *
+ * 07 07 2017 jie-yu.wang
+ * [MOLY00261827] [UMOYLA] LPPe development
+ * [LPP] LPPe code change check-in.
+ *
+ * 06 27 2016 jie-yu.wang
+ * [MOLY00183642] new task EL1_MPC definition for 6293
+ * (LPP) UMOLYA MessageID change.
+ *
+ * 01 14 2015 roland.li
+ * [MOLY00092193] [UMOLY][LPP]LPP R10R11 feature checkin
+ * .
+ *
+ * 01 13 2015 roland.li
+ * [MOLY00092193] [UMOLY][LPP]LPP R10R11 feature checkin
+ * .
+ *
+ * 10 08 2014 roland.li
+ * [MOLY00080296] [LPP] Always trun on LPP CP options for L1 stand alone build
+ * .
+ *
+ * 08 04 2014 doug.shih
+ * [MOLY00073990] [LPP CP] LPP code check-in for OTDOA feature
+ * .
+ *
+ *
+ *****************************************************************************/
+
+#ifndef _LPP_MSG_STRUCT_H
+#define _LPP_MSG_STRUCT_H
+
+#include "kal_public_api.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+/*Always trun on LPP CP options for L1 stand alone build*/
+
+#include "lpp_msg_enum.h"
+#include "ps_public_struct.h" /* for L4C SS struct */
+#include "as2l4c_struct.h" /* for L4CPS NBR cell info */
+#include "mcd_l3_inc_struct.h" /* for PLMN id */
+#include "l3_inc_enums.h" /* for LCS/EMM enum */
+#include "l3_inc_local.h" /* for VGMM struct */
+
+/*****************************************************************************
+ * Macros Without Parameters
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Macros With Parameters
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Enums without tags
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Type Definitions
+ *****************************************************************************/
+/* LPP -> ERRC */
+/* This structure for MSG_ID_LPP_EL1MPC_OTDOA_MEAS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ kal_uint8 responseTime; /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement, but LPP still controls the response timer */
+} lpp_el1mpc_otdoa_meas_req_struct;
+
+typedef struct
+{
+ lpp_otdoa_prs_info_bandwidth_enum prsBandwidth;
+ kal_uint16 prsConfigIndex; /* [0..4095] */
+ lpp_otdoa_prs_info_num_dl_frame_enum numDLFrames;
+ kal_bool prsMutingInfoValid;
+ lpp_otdoa_prs_info_muting_po_enum prsMutingInfoType;
+ kal_uint16 prsMutingInfoBits; /* Position Occasion: PO-2: 2 bits, PO-4: 4 bits, PO-8: 8 bits, PO-16: 16 bits */
+} lpp_otdoa_prs_info;
+
+
+typedef struct
+{
+ kal_uint16 phyCellId; /* [0..503] */
+ kal_uint32 earfcn; /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present; LPP assign reference cell if received message IE does not present */
+ kal_bool isFourAntPortConfig; /* TRUE: 4 antenna ports for CRS are used in the assistance data reference cell, FALSE: 1 (or 2) antenna port(s) */
+ kal_bool isCPLengthExtended; /* TRUE: cyclic prefix length of PRS or CRS is extended, FALSE: cyclic prefix length is normal */
+ lpp_otdoa_prs_info prsInfo;
+ /* ECGI info */
+ kal_bool isRefGlobalCellIdValid; /*Indecate the validity of ECGI element, including plmnId and refCellId*/
+ plmn_id_struct plmnId;
+ kal_uint32 refCellId; /* eutra 28 bits */
+} lpp_otdoa_ref_cell_info_struct;
+
+
+typedef struct
+{
+ kal_uint16 phyCellId; /* [0..503] */
+ kal_uint32 earfcn; /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present; LPP assign reference cell if received message IE does not present */
+ kal_bool isCPLengthExtended; /* TRUE: cyclic prefix length of PRS or CRS is extended, FALSE: cyclic prefix length is normal */
+ kal_bool isFourAntPortConfig; /* TRUE: 4 antenna ports for CRS are used in the assistance data reference cell, FALSE: 1 (or 2) antenna port(s) */
+ lpp_otdoa_prs_info prsInfo;
+ kal_uint8 slotNumberOffset; /* [0..19] */
+ kal_uint16 prsSubFrameOffset; /* [0..1279] */
+ kal_uint16 expectedRSTD; /* [0..16383] */
+ kal_uint16 expectedRSTDUnc; /* [0..1023] */
+} lpp_otdoa_nbr_cell_info_struct;
+
+typedef struct
+{
+ /**
+ * Number of neighbor frequency layers
+ * - Range : 1 .. 3
+ */
+ kal_uint8 numCellInfo;
+ /**
+ * OTDOA assistant data neighbor cell for neighbor frequency layer
+ */
+ lpp_otdoa_nbr_cell_info_struct cellInfo[LPP_OTDOA_MAX_NBR_CELL_LIST_NUM];
+} lpp_otdoa_nbr_cell_info_list_struct;
+
+
+typedef struct
+{
+ kal_uint8 numFreqInfo;
+ lpp_otdoa_nbr_cell_info_list_struct freqInfo[LPP_OTDOA_MAX_NBR_CELL_FREQ_LAYER_NUM+1];
+} lpp_otdoa_nbr_freq_info_list_struct;
+
+typedef struct
+{
+ /**
+ * OTDOA assistant data reference cell received from location server. LPP shall ensure all IEs are present when sending it to ERRC/EL1.
+ */
+ lpp_otdoa_ref_cell_info_struct refCellInfo;
+ /**
+ * OTDOA assistant data neighbor cell received from location server. LPP shall ensure all IEs are present when sending it to ERRC/EL1.
+ */
+ lpp_otdoa_nbr_freq_info_list_struct nbrCellInfo;
+} lpp_otdoa_assist_data_struct;
+
+
+/* This structure for MSG_ID_LPP_ERRC_OTDOA_MEAS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ kal_bool isResponseTimeEarlyFixValid;
+ kal_uint8 earlyResponseTime; /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement early Fix, but LPP still controls the response timer */
+ kal_uint8 responseTime; /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement, but LPP still controls the response timer */
+ lpp_otdoa_assist_data_struct otdoaAssistData;
+ kal_uint32 responseTimeinTick;
+} lpp_errc_otdoa_meas_req_struct;
+
+/* This structure for MSG_ID_LPP_NRRC_OTDOA_MEAS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ kal_bool isResponseTimeEarlyFixValid;
+ kal_uint8 earlyResponseTime; /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement early Fix, but LPP still controls the response timer */
+ kal_uint8 responseTime; /* [1..128], unit in seconds, for EL1 knowing about how long it will take for OTDOA measurement, but LPP still controls the response timer */
+ lpp_otdoa_assist_data_struct otdoaAssistData;
+ kal_bool isNrLteSfnOffsetValid; /* The validity of following parameter nrLteSfnOffset. */
+ kal_uint16 nrLteSfnOffset; /* [0...1023], specifies the SFN offset between the serving NR cell and the assistance data reference cell. */
+ kal_bool isNrLteFineTimingOffsetValid; /* The validity of following parameter NrLteFineTimingOffset. */
+ kal_uint8 NrLteFineTimingOffset; /* [0...19],unit in 0.5ms. specifies the frame boundary offset between the NR serving cell and the LTE assistance data reference cell. */
+ kal_uint32 responseTimeinTick;
+} lpp_nrrc_otdoa_meas_req_struct;
+
+
+/* This structure for MSG_ID_LPP_ERRC_OTDOA_MEAS_ABORT_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+} lpp_errc_otdoa_meas_abort_req_struct;
+
+/* This structure for MSG_ID_LPP_NRRC_OTDOA_MEAS_ABORT_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+} lpp_nrrc_otdoa_meas_abort_req_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_ECID_MEAS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ kal_bool rsrpReq;
+ kal_bool rsrqReq;
+ kal_bool ueRxTxTimeDiffReq;
+ kal_bool ueRxTxSupTDD;
+} lpp_errc_ecid_meas_req_struct;
+
+/* MSG_ID_LPP_ERRC_IRAT_ECID_MEAS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+} lpp_errc_irat_ecid_meas_req_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_ECID_MEAS_ABORT_REQ */
+/* the conditions LPP will send abort request to ERRC:
+ * (1) network abort ECID session or LPP protocol error
+ * (2) ECID response timer expiry
+ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+} lpp_errc_ecid_meas_abort_req_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_SRB_STATUS_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool active; /*to request ERRC to send SRB2 status, TRUE: send, FALSE: stop*/
+} lpp_errc_srb_status_req_struct;
+
+/* ERRC -> LPP */
+/**
+ * error-Resolution
+ * This field specifies the resolution R used in error-Value field. The encoding on two bits is as follows:
+ * '00' 5 meters
+ * '01' 10 meters
+ * '10' 20 meters
+ * '11' 30 meters.
+ *
+ * error-Value
+ * This field specifies the target device"s best estimate of the uncertainty of the OTDOA (or TOA) measurement.
+ * The encoding on five bits is as follows:
+ * '00000' 0 to (R*1-1) meters
+ * '00001' R*1 to (R*2-1) meters
+ * '00010' R*2 to (R*3-1) meters
+ * ¡K
+ * '11111' R*31 meters or more;
+ * where R is the resolution defined by error-Resolution field.
+ * e.g. , R=20 m corresponds to 0-19 m, 20-39 m,¡K,620+ m.
+ *
+ * error-NumSamples
+ * If the error-Value field provides the sample uncertainty of the OTDOA (or TOA) measurement, this field specifies how
+ * many measurements have been used by the target device to determine this (i.e., sample size). Following 3 bit
+ * encoding is used:
+ * "000" Not the baseline metric
+ * '001' 5-9
+ * '010' 10-14
+ * '011' 15-24
+ * '100' 25-34
+ * '101' 35-44
+ * '110' 45-54
+ * '111' 55 or more.
+ * In case of the value "000", the error-Value field contains the target device"s best estimate of the uncertainty of the
+ * OTDOA (or TOA) measurement not based on the baseline metric. E.g., other measurements such as signal-to-noise-
+ * ratio or signal strength can be utilized to estimate the error-Value.
+ * If this field is absent, the value of this field is "000".
+ */
+typedef struct
+{
+ kal_uint8 errResolution; /* 2 bits, refer description as above */
+ kal_uint8 errValue; /* 5 bits, refer description as above */
+ kal_bool errSamplesValid;
+ kal_uint8 errSamples; /* 3 bits, refer description as above */
+} lpp_otdoa_measured_quality_struct;
+
+typedef struct
+{
+ /**
+ * This field specifies the physical cell identity of the neighbour cell for which the RSTDs are provided.
+ * - Range : 0 .. 503
+ */
+ kal_uint16 phyCellId;
+ /**
+ * This field specifies the EARFCN of the neighbour cell used for the RSTD measurements.
+ * - Range : 0 .. 262143
+ */
+ EARFCN earfcn;
+ /**
+ * This field specifies the relative timing difference between this neighbour cell and the RSTD reference cell, as defined
+ * in TS 36.214. Mapping of the measured quantity is defined as in TS 36.133 subclause 9.1.10.3.
+ * - Range : 0 .. 12711
+ */
+ kal_uint16 rstd;
+ /**
+ * This field specifies the target device"s best estimate of the quality of the measured rstd.
+ */
+ lpp_otdoa_measured_quality_struct rstdQuality;
+} lpp_otdoa_measured_nbr_cell_struct;
+
+typedef struct
+{
+ /**
+ * This field specifies the SFN of the RSTD reference cell containing the starting subframe of the PRS positioning
+ * occasion if PRS are available on the RSTD reference cell, or subframe of the CRS for RSTD measurements if PRS
+ * are not available on the RSTD reference cell during which the most recent neighbour cell RSTD measurement was
+ * performed.
+ * - 10 bits
+ */
+ kal_uint16 sysFrameNumber;
+ /**
+ * This field specifies the physical cell identity of the RSTD reference cell.
+ * - Range : 0 .. 503
+ */
+ kal_uint16 refPhyCellId;
+ /**
+ * This field specifies the EARFCN of the RSTD reference cell.
+ * - Range : 0 .. 262143
+ */
+ EARFCN refEarfcn;
+ /**
+ * This field specifies the presence of optional IE "referenceQuality".
+ */
+ kal_bool refQualityValid;
+ /**
+ * This field specifies the target device's best estimate of the quality of the TOA measurement from the RSTD reference
+ * cell, T_SubframeRxRef , where T_SubframeRxRef is the time of arrival of the signal from the RSTD reference cell.
+ */
+ lpp_otdoa_measured_quality_struct refQuality;
+ /**
+ * Number of neighbour cells
+ * - Range : 1 .. 24
+ */
+ kal_uint8 numMeasuredNbrCell;
+ /**
+ * This list contains the measured RSTD values for neighbour cells together with the RSTD reference cell, along with
+ * quality for each measurement.
+ */
+ lpp_otdoa_measured_nbr_cell_struct measuredNbrCell[LPP_OTDOA_MAX_NBR_CELL_LIST_NUM_TOTAL];
+} lpp_otdoa_measured_info_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_OTDOA_MEAS_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ lpp_otdoa_req_stop_enum status; //request perform status, (0: succ; 1: reStarts for SUS; 2: reStart with longer time period)
+ kal_bool isEarlyFixReport;
+ lpp_otdoa_measured_info_struct measurementResult;
+} lpp_errc_otdoa_meas_cnf_struct;
+
+/* This structure for MSG_ID_LPP_NRRC_OTDOA_MEAS_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ kal_bool isEarlyFixReport;
+ lpp_otdoa_measured_info_struct measurementResult;
+} lpp_nrrc_otdoa_meas_ind_struct;
+
+/* This structure for MSG_ID_LPP_NRRC_OTDOA_MEAS_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ lpp_otdoa_req_stop_enum status; //request perform status, (0: succ; 1: reStarts for SUS; 2: reStart with longer time period)
+ lpp_otdoa_measured_info_struct measurementResult;
+} lpp_nrrc_otdoa_meas_cnf_struct;
+
+typedef struct
+{
+ kal_uint16 phyCellId; /* [0..503] */
+ kal_bool plmnIdValid;
+ plmn_id_struct plmnId;
+ kal_bool cellIdValid;
+ kal_uint32 cellId; /* eutra 28 bits */
+ kal_uint32 earfcn; /* [0..262143], 65535 is invalid to indicate ARFCN-ValueEUTRA-v9a0 present */
+ kal_bool sysFrameNumberValid;
+ kal_uint16 sysFrameNumber; /* 10 bits */
+ /* measured result */
+ kal_bool rsrpResultValid;
+ kal_uint8 rsrpResult; /* [0..97] */
+ kal_bool rsrqResultValid;
+ kal_uint8 rsrqResult; /* [0..34] */
+ kal_bool ueRxTxTimeDiffValid;
+ kal_uint16 ueRxTxTimeDiff; /* [0..4095] */
+} lpp_ecid_cell_measured_info_struct;
+
+typedef struct
+{
+ /**
+ * Please note that the interface here is more straight-forward than ECID-SignalMeasurementInformation IE of LPP Message:
+ * when ERRC has measured primary cell, the result will place in primaryCellMeasuredResult;
+ * (if serving (primary) cell is not present, the whole measured info should be ignored since result will be error)
+ *
+ * in addition to primary cell, if ERRC also measured neighbor cells, they will be put into the array of measuredCellResult[],
+ * and the number of neighbor will specify in numMeasuredCellResult
+ */
+ lpp_ecid_cell_measured_info_struct primaryCellMeasuredResult;
+ kal_uint8 numMeasuredCellResult;
+ lpp_ecid_cell_measured_info_struct measuredCellResult[LPP_ECID_MAX_MEASURED_CELL_INFO_NUM];
+} lpp_ecid_measured_info_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_ECID_MEAS_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ lpp_loc_ecid_result_enum result;
+ lpp_ecid_measured_info_struct measurementResult;
+} lpp_errc_ecid_meas_cnf_struct;
+
+typedef struct
+{
+ kal_uint8 numMeasuredCellResult;
+ lpp_ecid_cell_measured_info_struct measuredCellResult[LPP_ECID_MAX_MEASURED_CELL_INFO_NUM];
+} lpp_irat_ecid_measured_info_struct;
+
+/* MSG_ID_LPP_ERRC_IRAT_ECID_MEAS_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 transactionID;
+ kal_bool measurementResultValid;
+ lpp_irat_ecid_measured_info_struct measurementResult;
+} lpp_errc_irat_ecid_meas_cnf_struct;
+
+/* This structure for MSG_ID_LPP_ERRC_SRB_STATUS_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool isConnected; /*TRUE: SRB2 active, FALSE: not sent*/
+} lpp_errc_srb_status_ind_struct;
+
+
+/* This structure for MSG_ID_LPP_SASE_START_OTDOA_MEAS_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool isAllowedOtdoa;
+} lpp_sase_start_otdoa_meas_cnf_struct;
+
+
+
+/* LPP -> EMM (EVAL) */
+/* This structure for MSG_ID_LPP_EVAL_DATA_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 mui;
+ /* for Additional Information IE of UL generic NAS transport */
+ kal_uint8 addInfoLen;
+ kal_uint8 *addInfo;
+ /* raw data is in peer buffer */
+} lpp_eval_data_req_struct;
+
+/* This structure for MSG_ID_LPP_EVAL_DATA_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* for Additional Information IE of DL generic NAS transport */
+ kal_uint8 addInfoLen;
+ kal_uint8 *addInfo;
+ lcs_emm_status_enum result;
+ /* raw data is in peer buffer */
+} lpp_eval_data_ind_struct;
+
+/* This structure for MSG_ID_LPP_EVAL_DATA_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ lcs_emm_status_enum result;
+ kal_uint16 mui;
+} lpp_eval_data_cnf_struct;
+
+/* This structure for MSG_ID_EVAL_LPP_NW_RESET_UE_STORED_POS_INFO_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ue_pos_tech_enum pos_tech;
+} eval_lpp_nw_reset_ue_stored_pos_info_ind_struct;
+
+
+/* This structure for MSG_ID_ETC_LPP_NW_RESET_UE_STORED_POS_INFO_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ue_pos_tech_enum pos_tech;
+} etc_lpp_nw_reset_ue_stored_pos_info_ind_struct;
+
+
+/* LPP <-- VGMM */
+/* This structure for MSG_ID_LPP_VGMM_DATA_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ /* for Additional Information IE of DL generic NAS transport */
+ kal_uint8 addInfoLen;
+ kal_uint8 *addInfo;
+ lcs_vgmm_status_enum result;
+ kal_uint8 no_optional_ie;
+ vgmm_payload_opt_ie_struct optional_ie[MAX_NUM_OF_OPT_IE_MULTI];
+ /* raw data is in peer buffer */
+} lpp_vgmm_data_ind_struct;
+
+/* This structure for MSG_ID_LPP_VGMM_DATA_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 serial_num;
+ lcs_vgmm_status_enum result;
+} lpp_vgmm_data_cnf_struct;
+
+/* LPP --> VGMM */
+/* This structure for MSG_ID_LPP_VGMM_DATA_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 serial_num;
+ /* for Additional Information IE of UL generic NAS transport */
+ kal_uint8 addInfoLen;
+ kal_uint8 *addInfo;
+ /* raw data is in peer buffer */
+} lpp_vgmm_data_req_struct;
+
+
+#endif /* _LPP_MSG_STRUCT_H */
diff --git a/mcu/interface/protocol/general/lte_efuse.h b/mcu/interface/protocol/general/lte_efuse.h
new file mode 100644
index 0000000..c42b2b5
--- /dev/null
+++ b/mcu/interface/protocol/general/lte_efuse.h
@@ -0,0 +1,62 @@
+#ifndef _LTE_EFUSE_H_
+#define _LTE_EFUSE_H_
+
+#include "kal_general_types.h"
+#include "reg_base.h" // for "EFUSE_BASE" defined value
+
+
+//[20160801 Ali] move efuse function from mrs_eas_capability.c back to el1 in 6293.
+// used in mcu/common/modem/el1/el1c/lte_efuse.c
+
+/* for EFUSE reading */
+
+#define HW_READ_EL1(ptr) (*(ptr))
+#define BitFieldGet_EL1(_src, _strtBit, _maskBit) ((_src >> _strtBit) & _maskBit)
+#define MASK_1_BIT_EL1 0x0001
+
+ // should add code for new chip
+ // [20150820]disable #error for ElBRUS trial build
+ //#error "please check chip version and notify RCM owner to add new efuse code"
+
+#ifdef LTE_CA_DEFAULT_VALUE // may be defined in mrs_eas_capability.h (to be removed)
+#undef LTE_CA_DEFAULT_VALUE
+#endif
+
+#if defined(__LTE_R11__)
+#define LTE_CA_DEFAULT_VALUE KAL_TRUE
+#else
+#define LTE_CA_DEFAULT_VALUE KAL_FALSE
+#endif
+
+//[20160801 Ali] move efuse function from mrs_eas_capability.c back to el1 in 6293.
+/*******************************************************************************
+ * @brief This function check if efuse LTE_FDD_DISABLE bit is set (1),
+ * and return LTE FDD support status
+ * @note
+ * @param
+ * @return TRUE if LTE_FDD_DISABLE bit is not set (0)
+ * FALSE if LTE_FDD_DISABLE bit is set (1)
+*******************************************************************************/
+kal_bool el1_is_lte_fdd_exist(void);
+/*******************************************************************************
+ * @brief This function check if efuse LTE_TDD_DISABLE bit is set (1),
+ * and return LTE TDD support status
+ * @note
+ * @param
+ * @return TRUE if LTE_TDD_DISABLE bit is not set (0)
+ * FALSE if LTE_TDD_DISABLE bit is set (1)
+*******************************************************************************/
+kal_bool el1_is_lte_tdd_exist(void);
+/*******************************************************************************
+ * @brief This function check if efuse LTE_CA_DISABLE bit is set (1),
+ * and return LTE CA support status
+ * @note
+ * @param
+ * @return TRUE if LTE_CA_DISABLE bit is not set (0)
+ * FALSE if LTE_CA_DISABLE bit is set (1)
+*******************************************************************************/
+kal_bool el1_is_lte_ca_enable(void);
+
+
+
+#endif // _LTE_EFUSE_H_
diff --git a/mcu/interface/protocol/general/lwa_shm_def.h b/mcu/interface/protocol/general/lwa_shm_def.h
new file mode 100644
index 0000000..678b853
--- /dev/null
+++ b/mcu/interface/protocol/general/lwa_shm_def.h
@@ -0,0 +1,218 @@
+/*****************************************************************************
+* 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) 2016
+*
+* 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:
+ * ---------
+ * lwa_shm_def.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * Description:
+ * ------------
+ * The share memory definitions of LWA (LTE-WLAN Aggregation)
+ *
+ * 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 LWA_SHM_DEF_H
+#define LWA_SHM_DEF_H
+
+#define LWA_ALIGN_SIZE (4)
+#define LWA_FOUR_BYTE_ALIGN_MASK (LWA_ALIGN_SIZE - 1)
+#define LWA_SIZE_FOUR_BYTE_ALIGN(_sz) (((_sz) + LWA_ALIGN_SIZE - 1) & ~LWA_FOUR_BYTE_ALIGN_MASK)
+
+/****************************************************************************
+ * LWA Share Memory Layout version 1
+ *
+ * shm_start_addr
+ * |<-------------------------shm_total_size---------------------->|
+ * | | |
+ * |<-----desc_ring------>|<----------data_ring------------->|<-r->|
+ * | | | |
+ * | lwa_dl_desc[N] | lwa_dl_buff_t[N] | |
+ * | | | |
+ *
+ * 1) N = floor(shm_total_size / (sizeof(lwa_dl_desc)+size(lwa_dl_buff_t)))
+ * 2) lwa_dl_desc is 4-byte-aligned
+ * 3) lwa_dl_buff_struct is 4-byte-aligned
+ * 4) Each element from desc_ring and data_ring is 1-to-1 mapping
+ * ex. lwa_dl_desc[100] decribes lwa_dl_buff_t[100]
+ * 5) r is remainder tail from floor()
+ *
+ ****************************************************************************/
+#define LWA_SHM_LAYOUT_VER (1) //rel-13, wifi downlink only
+
+
+/****************************************************************************
+ * Type Definitions
+ ****************************************************************************/
+typedef struct _lwa_dl_desc lwa_dl_desc;
+
+
+/****************************************************************************
+ * LWA downlink decriptor, complies with
+ * 1) l2ce_sod_desc
+ * 2) qbm_gpd
+ * 3) wifi usage
+ ****************************************************************************/
+struct _lwa_dl_desc
+{
+ kal_uint8 flag;
+ kal_uint8 cksum;
+ kal_uint16 desc_index;
+ lwa_dl_desc *next_ptr;
+ lwa_dl_desc *data_ptr;
+ kal_uint16 data_len;
+ kal_uint16 payload_offset;
+ kal_uint8 pad0;
+ kal_uint8 bearer;
+ kal_uint8 key_index;
+ kal_uint8 sec_func;
+ kal_uint32 count;
+ kal_uint8 *out_ptr;
+};
+
+
+/****************************************************************************
+ * WIFI downlink buffer reserved, including
+ * 1) HW_MAC_RX_DESC_T: 32 bytes
+ * 2) HW_MAC_RX_STS_GROUP_4_T: 32 bytes
+ * 3) Ether frame fields: 18 bytes = dst(6)+src(6)+type(2)+fcs(4)
+ ****************************************************************************/
+#define LWA_WIFI_DL_RSV_LEN (82)
+
+
+/****************************************************************************
+ * WIFI downlink MTU
+ ****************************************************************************/
+#define LWA_WIFI_DL_IP_MTU (1500)
+#define LWA_MAX_HDR_LEN (4) //3gpp r13: 1
+#define LTE_PDCP_MAX_HDR_LEN (4) //3gpp r13: 1~3
+#define LWA_WIFI_DL_PAYLOAD_MTU (LWA_WIFI_DL_IP_MTU + LWA_MAX_HDR_LEN + LTE_PDCP_MAX_HDR_LEN)
+
+
+/****************************************************************************
+ * LWA downlink buffer
+ ****************************************************************************/
+#define LWA_DL_BUFF_LEN (2352) // state of art value of WDRV
+#define LWA_DL_BUFF_LEN_IDEAL (LWA_SIZE_FOUR_BYTE_ALIGN(LWA_WIFI_DL_RSV_LEN + LWA_WIFI_DL_PAYLOAD_MTU)) // ideal value
+
+#if (LWA_DL_BUFF_LEN < (LWA_WIFI_DL_RSV_LEN + LWA_WIFI_DL_MTU))
+#error LWA_DL_BUFF_LEN
+#endif
+
+typedef struct
+{
+ kal_uint8 buff[LWA_DL_BUFF_LEN];
+} lwa_dl_buff_t;
+
+
+
+
+/****************************************************************************
+ * LWA WLAN/EPDCP U-plane Control Message
+ * 1. any message change shall keep backward compatibility
+ * 2. message length is fixed in 4 bytes
+ * 3. the higher 2 bytes are 'command' and the lower 2 bytes are 'value'
+ *
+ ****************************************************************************/
+#define LWA_UP_CTRL_MSG_CMD_MAX (0xFFFF)
+#define LWA_UP_CTRL_MSG_VALUE_MAX (0xFFFF)
+
+typedef enum
+{
+// [Command enumeration] [Direction] [Value]
+ LWA_UP_CTRL_CMD_DL_SHM_LAYOUT_SUPPORT_LIST = 0, //WLAN -> PDCP, 16-bit bitmap: each bit represents 1 layout version
+ LWA_UP_CTRL_CMD_DL_SHM_LAYOUT_DESICION = 1, //WLAN <- PDCP, 16-bit bitmap: toggle only 1 bit for runtime layout version
+ LWA_UP_CTRL_CMD_DL_SHM_FULL = 2, //WLAN -> PDCP, value reserved
+ LWA_UP_CTRL_CMD_DL_SHN_NOT_FULL = 3, //WLAN <- PDCP, value reserved
+ LWA_UP_CTRL_CMD_WLAN_DL_PKT_READY_NOTIFY_SETTING = 4, //WLAN <- PDCP, 0 means setting 'OFF'; 1 means setting 'ON'; others reserved
+ LWA_UP_CTRL_CMD_WLAN_DL_PKT_READY_NOTIFY = 5, //WLAN -> PDCP, if setting is on, WLAN send it after every packet write to SHM; value is reserved
+ LWA_UP_CTRL_CMD_DL_HDR_LOOK_AHEAD_SETTING = 6, //WLAN <- PDCP, value enum: lwa_dl_hdr_look_ahead_setting_enum
+
+// add new command from here
+ LWA_UP_CTRL_CMD_INVALID = LWA_UP_CTRL_MSG_CMD_MAX
+} lwa_up_ctrl_cmd_enum;
+
+/****************************************************************************
+ * LWA downlink header look ahead setting:
+ *
+ * [usage] LTE send to WIFI at LWA init time, to configure WIFI driver
+ * pre-read payload into descriptor for performance optimization
+ *
+ ****************************************************************************/
+typedef enum
+{
+ LWA_DL_HDR_LOOK_AHEAD_0BYTE = 0,
+ //look ahead off
+
+ LWA_DL_HDR_LOOK_AHEAD_1BYTE = 1,
+ //look ahead the first 1 byte of ether frame's payload:
+ // lwa_dl_desc.bearer = (unsigned char) <payload_1st_byte>
+
+ LWA_DL_HDR_LOOK_AHEAD_3BYTE = 2,
+ //look ahead first 3 bytes of ether frame's payload:
+ // lwa_dl_desc.bearer = (unsigned char) <payload_1st_byte>
+ // lwa_dl_desc.count = (unsigned char) (<payload_2nd_byte> << 8) + (unsigned char) <payload_3rd_byte>
+ //default value for 91/92 LWA
+
+ LWA_DL_HDR_LOOK_AHEAD_INVALID = LWA_UP_CTRL_MSG_VALUE_MAX
+} lwa_dl_hdr_look_ahead_setting_enum;
+
+typedef enum
+{
+ LWA_WIFI_DL_PKT_READY_NOTIFY_OFF,
+ LWA_WIFI_DL_PKT_READY_NOTIFY_ON,
+ LWA_WIFI_DL_PKT_READY_NOTIFY_INVALID = LWA_UP_CTRL_MSG_VALUE_MAX
+} lwa_wifi_dl_pkt_ready_notify_setting_enum;
+
+
+
+#endif /* LWA_SHM_DEF_H */
diff --git a/mcu/interface/protocol/general/mbci_struct.h b/mcu/interface/protocol/general/mbci_struct.h
new file mode 100644
index 0000000..e97c736
--- /dev/null
+++ b/mcu/interface/protocol/general/mbci_struct.h
@@ -0,0 +1,124 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mbci_struct.h
+ *
+ * Project:
+ * --------
+ * MT6280
+ *
+ * Description:
+ * ------------
+ * This file is intends for MBCI implementation.
+ *
+ * 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 _MBCI_STRUCT_H
+#define _MBCI_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "mbim_defs.h"
+
+typedef enum
+{
+ MBCI_STATE_CLOSE,
+ MBCI_STATE_OPEN,
+ MBCI_STATE_CLOSING
+} mbci_state_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ mbim_op_enum op;
+ kal_uint8 uuid[16];
+ kal_uint32 cid;
+ kal_uint32 command_type;
+ kal_uint32 information_buffer_len;
+ kal_uint32 transaction_id;
+} ups_mbci_command_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 uuid[16];
+ kal_uint32 cid;
+ mbim_status_code_enum status;
+ kal_uint32 information_buffer_len;
+ kal_uint32 transaction_id;
+ kal_uint32 command_type;
+} ups_mbci_command_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 uuid[16];
+ kal_uint32 cid;
+ kal_uint32 information_buffer_len;
+} ups_mbci_status_ind_struct;
+
+#endif /* _MBCI_STRUCT_H */
+
diff --git a/mcu/interface/protocol/general/mbim_defs.h b/mcu/interface/protocol/general/mbim_defs.h
new file mode 100644
index 0000000..def4756
--- /dev/null
+++ b/mcu/interface/protocol/general/mbim_defs.h
@@ -0,0 +1,923 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mbim_defs.h
+ *
+ * Project:
+ * --------
+ * MT6280
+ *
+ * Description:
+ * ------------
+ * This file is intends for MBCI implementation.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _MBIM_DEFS_H
+#define _MBIM_DEFS_H
+
+#define MBIM_MAX_SUPPORT_TRANSACTION 40
+
+#define MBIM_MAX_SESSION (GPRS_MAX_PDP_SUPPORT >> 1)
+
+#define MBIM_MESSAGE_INDEX_NONE 0
+
+#define MBIM_CONTEXT_ID_APPEND 0xFFFFFFFF
+
+#define MBIM_RSSI_DEFAULT 0
+
+#define MBIM_ERROR_RATE_DEFAULT 0
+
+#define MBIM_SIGNAL_STRENGTH_INTERVAL_DEFAULT 0
+
+#define MBIM_RSSI_DISABLE 0xFFFFFFFF
+
+typedef enum {
+ MBIM_UUID_BASIC_CONNECT = 0,
+ MBIM_UUID_SMS,
+ MBIM_UUID_USSD,
+ MBIM_UUID_PHONEBOOK,
+ MBIM_UUID_STK,
+ MBIM_UUID_AUTH,
+ MBIM_UUID_DSS,
+ MBIM_UUID_MS_HOSTSHUTDOWN,
+ MBIM_UUID_MTK_VENDOR_CMD,
+ // Add new UUID in here
+ MBIM_UUID_MAX,
+ MBIM_UUID_UNKNOW = 0xFF
+} mbim_uuid_enum;
+
+//extern const kal_uint8 *mbim_uuid_tbl[MBIM_UUID_MAX];
+extern const kal_uint8 mbim_uuid_tbl[MBIM_UUID_MAX][16];
+
+typedef enum {
+ MBIM_CONTEXT_TYPE_NONE = 0,
+ MBIM_CONTEXT_TYPE_INTERNET,
+ MBIM_CONTEXT_TYPE_VPN,
+ MBIM_CONTEXT_TYPE_VOICE,
+ MBIM_CONTEXT_TYPE_VIDEO_SHARE,
+ MBIM_CONTEXT_TYPE_PURCHASE,
+ MBIM_CONTEXT_TYPE_IMS,
+ MBIM_CONTEXT_TYPE_MMS,
+ MBIM_CONTEXT_TYPE_LOCAL,
+ MBIM_CONTEXT_TYPE_MAX,
+ MBIM_CONTEXT_TYPE_UNKNOW = 0xFF
+} mbim_context_type_enum;
+
+extern const kal_uint8 mbim_context_type_tbl[MBIM_CONTEXT_TYPE_MAX][16];
+
+/*------------------MBIM CID BEGIN--------------------------*/
+#define MBIM_CID_RESERVE_0 0
+
+// BASIC_CONNECT
+typedef enum {
+ MBIM_CID_DEVICE_CAPS = 1,
+ MBIM_CID_SUBSCRIBER_READY_STATUS = 2,
+ MBIM_CID_RADIO_STATE = 3,
+ MBIM_CID_PIN = 4,
+ MBIM_CID_PIN_LIST = 5,
+ MBIM_CID_HOME_PROVIDER = 6,
+ MBIM_CID_PREFERRED_PROVIDER = 7,
+ MBIM_CID_VISIBLE_PROVIDER = 8,
+ MBIM_CID_REGISTER_STATE = 9,
+ MBIM_CID_PACKET_SERVICE = 10,
+ MBIM_CID_SIGNAL_STATE = 11,
+ MBIM_CID_CONNECT = 12,
+ MBIM_CID_PROVISIONED_CONTEXTS = 13,
+ MBIM_CID_SEVICE_ACTIVATION = 14,
+ MBIM_CID_IP_CONFIGURATION = 15,
+ MBIM_CID_DEVICE_SERVICE = 16,
+ MBIM_CID_RESERVE_17 = 17,
+ MBIM_CID_RESERVE_18 = 18,
+ MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST = 19,
+ MBIM_CID_PACKET_STATISTIC = 20,
+ MBIM_CID_NETWORK_IDLE_HINT = 21,
+ MBIM_CID_EMERGENCY_MODE = 22,
+ MBIM_CID_IP_PACKET_FILTERS = 23,
+ MBIM_CID_MULTICARRIER_PROVIDERS = 24,
+ MBIM_CID_BASIC_CONNECT_MAX
+} mbim_cid_basic_connect_enum;
+
+// SMS
+typedef enum {
+ MBIM_CID_SMS_CONFIGURATION = 1,
+ MBIM_CID_SMS_READ = 2,
+ MBIM_CID_SMS_SEND = 3,
+ MBIM_CID_SMS_DELETE = 4,
+ MBIM_CID_SMS_MESSAGE_STORE_STATUS = 5,
+ MBIM_CID_SMS_MAX
+} mbim_cid_sms_enum;
+
+// USSD
+typedef enum {
+ MBIM_CID_USSD = 1,
+ MBIM_CID_USSD_MAX
+} mbim_cid_ussd_enum;
+
+// PHONEBOOK
+typedef enum {
+ MBIM_CID_PHONEBOOK_CONFIGURATION = 1,
+ MBIM_CID_PHONEBOOK_READ = 2,
+ MBIM_CID_PHONEBOOK_DELETE = 3,
+ MBIM_CID_PHONEBOOK_WRITE = 4,
+ MBIM_CID_PHONEBOOK_MAX
+} mbim_cid_phonebook_enum;
+
+// STK
+typedef enum {
+ MBIM_CID_STK_PAC = 1,
+ MBIM_CID_STK_TERMINAL_RESPONSE = 2,
+ MBIM_CID_STK_ENVELOPE = 3,
+ MBIM_CID_STK_MAX
+} mbim_cid_stk_enum;
+
+// AUTH
+typedef enum {
+ MBIM_CID_AKA_AUTH = 1,
+ MBIM_CID_AKAP_AUTH = 2,
+ MBIM_CID_SIM_AUTH = 3,
+ MBIM_CID_AUTH_MAX
+} mbim_cid_auth_enum;
+
+// DSS
+typedef enum {
+ MBIM_CID_DSS_CONNECT = 1,
+ MBIM_CID_DSS_MAX
+} mbim_cid_dss_enum;
+
+// MS_HOSTSHUTDOWN
+typedef enum {
+ MBIM_CID_MS_HOSTSHUTDOWN = 1,
+ MBIM_CID_MS_HOSTSHUTDOWN_MAX
+} mbim_cid_ms_hostshutdown_enum;
+
+// MTK_VENDOR_CMD
+typedef enum {
+ MBIM_CID_MTK_VENDOR_CMD = 1,
+ MBIM_CID_MTK_VENDOR_CMD_MAX
+} mbim_cid_mtk_vendor_cmd_enum;
+
+/*------------------MBIM CID END--------------------------*/
+
+/*------------------MBIM CID STRUCT ENUM BEGIN------------------------*/
+typedef enum {
+ MBIMCellularClassGsm = 1,
+ MBIMCellularClassCdma = 2
+} mbim_cellular_class_enum;
+
+typedef enum {
+ MBIMSubscriberReadyStateNotInitialized,
+ MBIMSubscriberReadyStateInitialized,
+ MBIMSubscriberReadyStateSimNotInserted,
+ MBIMSubscriberReadyStateBadSim,
+ MBIMSubscriberReadyStateFailure,
+ MBIMSubscriberReadyStateNotActivated,
+ MBIMSubscriberReadyStateDeviceLocked
+} mbim_subscriber_ready_state_enum;
+
+typedef enum {
+ MBIMRadioOff,
+ MBIMRadioOn
+} mbim_radio_switch_state_enum;
+
+typedef enum {
+ MBIMPinTypeNone,
+ MBIMPinTypeCustom,
+ MBIMPinTypePin1,
+ MBIMPinTypePin2,
+ MBIMPinTypeDeviceSimPin,
+ MBIMPinTypeDeviceFirstSimPin,
+ MBIMPinTypeNetworkPin,
+ MBIMPinTypeNetworkSubsetPin,
+ MBIMPinTypeServiceProviderPin,
+ MBIMPinTypeCorporatePin,
+ MBIMPinTypeSubsidyLock,
+ MBIMPinTypePuk1,
+ MBIMPinTypePuk2,
+ MBIMPinTypeDeviceFirstSimPuk,
+ MBIMPinTypeNetworkPuk,
+ MBIMPinTypeNetworkSubsetPuk,
+ MBIMPinTypeServiceProviderPuk,
+ MBIMPinTypeCorporatePuk
+} mbim_pin_type_enum;
+
+typedef enum {
+ MBIMPinOperationEnter,
+ MBIMPinOperationEnable,
+ MBIMPinOperationDisable,
+ MBIMPinOperationChange
+} mbim_pin_operation_enum;
+
+typedef enum {
+ MBIMPinModeNotSupported,
+ MBIMPinModeEnable,
+ MBIMPinModeDisable
+} mbim_pin_mode_enum;
+
+typedef enum {
+ MBIMPinFormatUnknown,
+ MBIMPinFormatNumeric,
+ MBIMPinFormatAlphaNumeric
+} mbim_pin_format_enum;
+
+typedef enum {
+ MBIM_PROVIDER_STATE_UNKNOWN = 0x00,
+ MBIM_PROVIDER_STATE_HOME = 0x01,
+ MBIM_PROVIDER_STATE_FORBIDDEN = 0x02,
+ MBIM_PROVIDER_STATE_PREFERRED = 0x04,
+ MBIM_PROVIDER_STATE_VISIBLE = 0x08,
+ MBIM_PROVIDER_STATE_REGISTERED = 0x10,
+ MBIM_PROVIDER_STATE_PREFERRED_MULTICARRIER = 0x20
+} mbim_provider_state_enum;
+
+typedef enum {
+ MBIMRegisterStateUnknown,
+ MBIMRegisterStateDeregistered,
+ MBIMRegisterStateSearching,
+ MBIMRegisterStateHome,
+ MBIMRegisterStateRoaming,
+ MBIMRegisterStatePartner,
+ MBIMRegisterStateDenied
+} mbim_register_state_enum;
+
+typedef enum {
+ MBIMPacketServiceStateUnknown,
+ MBIMPacketServiceStateAttaching,
+ MBIMPacketServiceStateAttached,
+ MBIMPacketServiceStateDetaching,
+ MBIMPacketServiceStateDetached
+} mbim_packet_service_state_enum;
+
+typedef enum {
+ MBIMPacketServiceActionAttach,
+ MBIMPacketServiceActionDetach
+} mbim_packet_service_action_enum;
+
+typedef enum {
+ MBIMRegisterActionAutomatic,
+ MBIMRegisterActionManual
+} mbim_register_action_enum;
+
+typedef enum {
+ MBIMRegisterModeUnknown,
+ MBIMRegisterModeAutomatic,
+ MBIMRegisterModeManual
+} mbim_register_mode_enum;
+
+typedef enum {
+ MBIM_REGISTRATION_NONE = 0x00,
+ MBIM_REGISTRATION_MANUAL_SELECTION_NOT_AVALIABLE = 0x01,
+ MBIM_REGISTRATION_PACKET_SERVICE_AUTOMATIC_ATTACH = 0x02,
+} mbim_registration_flags_enum;
+
+typedef enum {
+ MBIMDataClassNone = 0x00,
+ MBIMDataClassGPRS = 0x01,
+ MBIMDataClassEDGE = 0x02,
+ MBIMDataClassUMTS = 0x04,
+ MBIMDataClassHSDPA = 0x08,
+ MBIMDataClassHSUPA = 0x10,
+ MBIMDataClassLTE = 0x20
+// MBIMDataClassCustom = 0x80000000
+} mbim_data_class_enum;
+
+typedef enum {
+ MBIMActivationCommandDeactivate,
+ MBIMActivationCommandActivate
+} mbim_activation_command_enum;
+
+typedef enum {
+ MBIMCompressionNone,
+ MBIMCompressionEnable
+} mbim_compression_enum;
+
+typedef enum {
+ MBIMAuthProtocolNone,
+ MBIMAuthProtocolPap,
+ MBIMAuthProtocolChap,
+ MBIMAuthProtocolMsChapV2
+} mbim_auth_protocol_type_enum;
+
+typedef enum {
+ MBIMContextIPTypeDefault,
+ MBIMContextIPTypeIPv4,
+ MBIMContextIPTypeIPv6,
+ MBIMContextIPTypeIPv4v6,
+ MBIMContextIPTypeIPIPv4AndIPv6
+} mbim_context_ip_type_enum;
+
+typedef enum {
+ MBIMActivationStateUnknown,
+ MBIMActivationStateActivated,
+ MBIMActivationStateActivating,
+ MBIMActivationStateDeactivated,
+ MBIMActivationStateDeactivating
+} mbim_activation_state_enum;
+
+typedef enum {
+ MBIMVoiceCallStateNone,
+ MBIMVoiceCallStateInProgress,
+ MBIMVoiceCallStateHangup
+} mbim_voice_call_state_enum;
+
+typedef enum {
+ MBIMNetworkIdleHintDisabled,
+ MBIMNetworkIdleHintEnable
+} mbim_network_idle_hint_states_enum;
+
+typedef enum {
+ MBIMEmergencyModeOff,
+ MBIMEmergencyModeOn
+} mbim_mergency_mode_state_enum;
+
+typedef enum {
+ MBIMSmsStorageNotInitialized,
+ MBIMSmsStorageInitialized
+} mbim_sms_storage_state_enum;
+
+typedef enum {
+ MBIMSmsFormatPdu,
+ MBIMSmsFormatCdma
+} mbim_sms_format_enum;
+
+typedef enum {
+ MBIMSmsFlagAll,
+ MBIMSmsFlagIndex,
+ MBIMSmsFlagNew,
+ MBIMSmsFlagOld,
+ MBIMSmsFlagSent,
+ MBIMSmsFlagDraft
+} mbim_sms_flag_enum;
+
+typedef enum {
+ MBIMSmsStatusNew,
+ MBIMSmsStatusOld,
+ MBIMSmsStatusDraft,
+ MBIMSmsStatusSent
+} mbim_sms_message_status_enum;
+
+typedef enum {
+ MBIM_SMS_FLAG_NONE,
+ MBIM_SMS_FLAG_MESSAGE_STORE_FULL,
+ MBIM_SMS_FLAG_NEW_MESSAGE
+} mbim_sms_status_flags_enum;
+
+typedef enum {
+ MBIMUSSDInitiate,
+ MBIMUSSDContinue,
+ MBIMUSSDCancel
+} mbim_ussd_action_enum;
+
+typedef enum {
+ MBIMUSSDNoActionRequired,
+ MBIMUSSDActionRequired,
+ MBIMUSSDTerminatedByNW,
+ MBIMUSSDOtherLocalClient,
+ MBIMUSSDOperationNotSupported,
+ MBIMUSSDNetworkTimeOut
+} mbim_ussd_response_enum;
+
+typedef enum {
+ MBIMUSSDNewSession,
+ MBIMUSSDExistingSession
+} mbim_ussd_session_state_enum;
+
+typedef enum {
+ MBIM_MTK_VENDOR_CMD_TYPE_NONE // add cmd type by Vendor
+} mbim_mtk_vendor_cmd_type_enum;
+
+/*------------------MBIM CID STRUCT ENUM END------------------------*/
+
+/*------------------MBIM CID STRUCT BEGIN------------------------*/
+typedef struct {
+ kal_uint32 offset;
+ kal_uint32 size;
+} MBIM_OL_PAIR_LIST;
+
+typedef struct {
+ kal_uint32 DeviceType;
+ kal_uint32 CellularClass;
+ kal_uint32 VoiceClass;
+ kal_uint32 SimClass;
+ kal_uint32 DataClass;
+ kal_uint32 SmsCaps;
+ kal_uint32 ControlCaps;
+ kal_uint32 MaxSessions;
+ kal_uint32 CustomDataClassOffset;
+ kal_uint32 CustomDataClassSize;
+ kal_uint32 DeviceIdOffset;
+ kal_uint32 DeviceIdSize;
+ kal_uint32 FirmwareInfoOffset;
+ kal_uint32 FirmwareInfoSize;
+ kal_uint32 HardwareInfoOffset;
+ kal_uint32 HardwareInfoSize;
+} mbim_device_caps_info_struct;
+
+typedef struct {
+ kal_uint32 ReadyState;
+ kal_uint32 SubscriberIdOffset;
+ kal_uint32 SubscriberIdSize;
+ kal_uint32 SimIccIdOffset;
+ kal_uint32 SimIccIdSize;
+ kal_uint32 ReadyInfo;
+ kal_uint32 ElementCount;
+ MBIM_OL_PAIR_LIST TelephoneNumbersRefList[2];
+} mbim_subscriber_ready_info_struct;
+
+typedef struct {
+ kal_uint8 DataBuffer[32+40+64]; // SubscriberId, SimIccid, TelephoneNumber
+} mbim_subscriber_ready_info_databuffer_struct;
+
+
+typedef struct {
+ kal_uint32 RadioState;
+} mbim_set_radio_state_struct;
+
+typedef struct {
+ kal_uint32 HwRadioState;
+ kal_uint32 SwRadioState;
+} mbim_radio_state_info_struct;
+
+typedef struct {
+ kal_uint32 PinType;
+ kal_uint32 PinOperation;
+ kal_uint32 PinOffset;
+ kal_uint32 PinSize;
+ kal_uint32 NewPinOffset;
+ kal_uint32 NewPinSize;
+} mbim_set_pin_struct;
+
+typedef struct {
+ kal_uint32 PinType;
+ kal_uint32 PinState;
+ kal_uint32 RemainAttempts;
+} mbim_pin_info_struct;
+
+typedef struct {
+ kal_uint32 PinMode;
+ kal_uint32 PinFormat;
+ kal_uint32 PinLengthMin;
+ kal_uint32 PinLengthMax;
+} mbim_pin_desc_struct;
+
+typedef struct {
+ mbim_pin_desc_struct PinDescPin1;
+ mbim_pin_desc_struct PinDescPin2;
+ mbim_pin_desc_struct PinDescDeviceSimPin;
+ mbim_pin_desc_struct PinDescDeviceFirstSimPin;
+ mbim_pin_desc_struct PinDescNetworkPin;
+ mbim_pin_desc_struct PinDescNetworkSubsetPin;
+ mbim_pin_desc_struct PinDescServiceProviderPin;
+ mbim_pin_desc_struct PinDescCorporatePin;
+ mbim_pin_desc_struct PinDescSubsidyLock;
+ mbim_pin_desc_struct PinDescCustom;
+} mbim_pin_list_info_struct;
+
+typedef struct {
+ kal_uint32 ProviderIdOffset;
+ kal_uint32 ProviderIdSize;
+ kal_uint32 ProviderState;
+ kal_uint32 ProviderNameOffset;
+ kal_uint32 ProviderNameSize;
+ kal_uint32 CellularClass;
+ kal_uint32 Rssi;
+ kal_uint32 ErrorRate;
+} mbim_provider_struct;
+
+typedef struct {
+ kal_uint32 Action;
+} mbim_visible_providers_req_struct;
+
+typedef struct {
+ kal_uint32 ProviderIdOffset;
+ kal_uint32 ProviderIdSize;
+ kal_uint32 RegisterAction;
+ kal_uint32 DataClass;
+} mbim_set_registration_state_struct;
+
+typedef struct {
+ kal_uint32 NwError;
+ kal_uint32 RegisterState;
+ kal_uint32 RegisterMode;
+ kal_uint32 AvaliableDataClasses;
+ kal_uint32 CurrentCellulrClass;
+ kal_uint32 ProviderIdOffset;
+ kal_uint32 ProviderIdSize;
+ kal_uint32 ProviderNameOffset;
+ kal_uint32 ProviderNameSize;
+ kal_uint32 RoamingTextOffset;
+ kal_uint32 RoamingTextSize;
+ kal_uint32 RegistrationFlag;
+} mbim_registration_state_info_struct;
+
+typedef struct {
+ kal_uint32 PacketServiceAction;
+} mbim_set_packet_service_struct;
+
+typedef struct {
+ kal_uint32 NwError;
+ kal_uint32 PacketServiceState;
+ kal_uint32 HighestAvaliableDataClasses;
+ kal_uint64 UplinkSpeed;
+ kal_uint64 DownlinkSpeed;
+} mbim_packet_service_info_struct;
+
+typedef struct {
+ kal_uint32 SignalStrengthInterval;
+ kal_uint32 RssiThreshold;
+ kal_uint32 ErrorRateThreshold;
+} mbim_set_signal_state_struct;
+
+typedef struct {
+ kal_uint32 Rssi;
+ kal_uint32 ErrorRate;
+ kal_uint32 SignalStrengthInterval;
+ kal_uint32 RssiThreshold;
+ kal_uint32 ErrorRateThreshold;
+} mbim_signal_state_info_struct;
+
+typedef struct {
+ kal_uint32 SessionId;
+ kal_uint32 ActivationCommand;
+ kal_uint32 AccessStringOffset;
+ kal_uint32 AccessStringSize;
+ kal_uint32 UserNameOffset;
+ kal_uint32 UserNameSize;
+ kal_uint32 PasswordOffset;
+ kal_uint32 PasswordSize;
+ kal_uint32 Compression;
+ kal_uint32 AuthProtocol;
+ kal_uint32 IPType;
+ kal_uint8 ContextType[16];
+} mbim_set_connect_struct;
+
+typedef struct {
+ kal_uint32 SessionId;
+ kal_uint32 ActivationState;
+ kal_uint32 VoiceCallState;
+ kal_uint32 IPType;
+ kal_uint8 ContextType[16];
+ kal_uint32 NwError;
+} mbim_connect_info_struct;
+
+typedef struct {
+ kal_uint32 ContextId;
+ kal_uint8 ContextType[16];
+ kal_uint32 AccssStringOffset;
+ kal_uint32 AccssStringSize;
+ kal_uint32 UserNmeOffset;
+ kal_uint32 UserNameSize;
+ kal_uint32 PasswordOffset;
+ kal_uint32 PasswordSize;
+ kal_uint32 Compression;
+ kal_uint32 AuthProtocol;
+ kal_uint8 DataBuffer[200+64+64]; // APN + Username + Password
+} mbim_context_struct;
+
+typedef struct {
+ kal_uint32 ElementCount;
+ MBIM_OL_PAIR_LIST ProvisionedContextRefList[10];
+} mbim_provisioned_contexts_info_struct;
+
+typedef struct {
+ kal_uint32 ContextId;
+ kal_uint8 ContextType[16];
+ kal_uint32 AccssStringOffset;
+ kal_uint32 AccssStringSize;
+ kal_uint32 UserNmeOffset;
+ kal_uint32 UserNameSize;
+ kal_uint32 PasswordOffset;
+ kal_uint32 PasswordSize;
+ kal_uint32 Compression;
+ kal_uint32 AuthProtocol;
+ kal_uint32 ProviderIdOffset;
+ kal_uint32 ProviderIdSize;
+} mbim_set_provisioned_context_struct;
+
+typedef struct {
+ kal_uint8 IPv4Address[4];
+} mbim_ipv4_address_struct;
+
+typedef struct {
+ kal_uint32 OnLinkPrefixLength;
+ mbim_ipv4_address_struct IPv4Address;
+} mbim_ipv4_element_struct;
+
+typedef struct {
+ kal_uint8 IPv6Address[16];
+} mbim_ipv6_address_struct;
+
+typedef struct {
+ kal_uint32 OnLinkPrefixLength;
+ mbim_ipv6_address_struct IPv6Address;
+} mbim_ipv6_element_struct;
+
+typedef struct {
+ kal_uint32 SessionId;
+ kal_uint32 IPv4ConfigurationAvaliable;
+ kal_uint32 IPv6ConfigurationAvaliable;
+ kal_uint32 IPv4AddressCount;
+ kal_uint32 IPv4AddressOffset;
+ kal_uint32 IPv6AddressCount;
+ kal_uint32 IPv6AddressOffset;
+ kal_uint32 IPv4GatewayOffset;
+ kal_uint32 IPv6GatewayOffset;
+ kal_uint32 IPv4DnsServerCount;
+ kal_uint32 IPv4DnsServerOffset;
+ kal_uint32 IPv6DnsServerCount;
+ kal_uint32 IPv6DnsServerOffset;
+ kal_uint32 IPv4Mtu;
+ kal_uint32 IPv6Mtu;
+ kal_uint8 DataBuffer[88];
+} mbim_ip_configuration_struct;
+
+typedef struct {
+ kal_uint8 DeviceServiceId[16];
+ kal_uint32 DssPayload;
+ kal_uint32 MaxDssInstances;
+ kal_uint32 CidCount;
+ kal_uint32 Cid[MBIM_CID_BASIC_CONNECT_MAX]; // IMPORTTANT: Assume basic connect always has the most CIDs
+} mbim_device_service_element_struct;
+
+typedef struct {
+ kal_uint32 DeviceServiceCount;
+ kal_uint32 MaxDssSessions;
+ MBIM_OL_PAIR_LIST DeviceServiceRefList[MBIM_UUID_MAX];
+// MBIM_OL_PAIR_LIST DeviceServiceRefList[2];
+ mbim_device_service_element_struct DeviceService[MBIM_UUID_MAX];
+// mbim_device_service_element_struct DeviceService[2];
+} mbim_device_service_info_struct;
+
+typedef struct {
+ kal_uint32 NetworkIdleHintState;
+} mbim_network_idle_hint_struct;
+
+typedef struct {
+ kal_uint32 EmergencyMode;
+} mbim_emergency_mode_info_struct;
+
+typedef struct {
+ kal_uint32 ElementCount;
+} mbim_device_service_subscribe_list_struct;
+
+typedef struct {
+ kal_uint8 DeviceServiceId[16];
+ kal_uint32 CidCount;
+} mbim_event_entry_struct;
+
+typedef struct {
+ kal_uint32 Format;
+ kal_uint32 ScAddressOffset;
+ kal_uint32 ScAddressSize;
+} mbim_set_sms_configuration_struct;
+
+typedef struct {
+ kal_uint32 SmsStorageState;
+ kal_uint32 Format;
+ kal_uint32 MaxMessages;
+ kal_uint32 CdmaShortMessageSize;
+ kal_uint32 ScAddressOffset;
+ kal_uint32 ScAddressSize;
+ kal_uint8 DataBuffer[40];
+} mbim_sms_configuration_info_struct;
+
+typedef struct {
+ kal_uint32 SmsFormat;
+ kal_uint32 Flag;
+ kal_uint32 MessageIndex;
+} mbim_sms_read_req_struct;
+
+typedef struct {
+ kal_uint32 Format;
+ kal_uint32 ElementCount;
+} mbim_sms_read_info_struct;
+
+typedef struct {
+ kal_uint32 MessageIndex;
+ kal_uint32 MessageStatus;
+ kal_uint32 PduDataOffset;
+ kal_uint32 PduDataSize;
+ kal_uint8 DataBuffer[184]; // Spec: 183, align to 184
+} mbim_sms_pdu_record_struct;
+
+typedef struct {
+ kal_uint32 PduDataOffset;
+ kal_uint32 PduDataSize;
+} mbim_sms_send_pdu_struct;
+
+typedef struct {
+ kal_uint32 SmsFormat;
+} mbim_sms_send_struct;
+
+typedef struct {
+ kal_uint32 MessageReference;
+} mbim_sms_send_info_struct;
+
+typedef struct {
+ kal_uint32 Flag;
+ kal_uint32 MessageIndex;
+} mbim_set_sms_delete_struct;
+
+typedef struct {
+ kal_uint32 Flag;
+ kal_uint32 MessageIndex;
+} mbim_sms_status_info_struct;
+
+typedef struct {
+ kal_uint32 USSDAction;
+ kal_uint32 USSDDataCodingScheme;
+ kal_uint32 USSDPayloadOffset;
+ kal_uint32 USSDPayloadLength;
+} mbim_set_ussd_struct;
+
+typedef struct {
+ kal_uint32 USSDResponse;
+ kal_uint32 USSDSessionState;
+ kal_uint32 USSDDataCodingScheme;
+ kal_uint32 USSDPayloadOffset;
+ kal_uint32 USSDPayloadLength;
+ kal_uint8 DataBuffer[160];
+} mbim_ussd_info_struct;
+
+typedef struct {
+ kal_uint32 VendorCmdType; // mbim_mtk_vendor_cmd_type_enum
+ kal_uint32 VendorCmdOffset;
+ kal_uint32 VendorCmdSize;
+} mbim_mtk_vendor_cmd_info_struct;
+
+/*------------------MBIM CID STRUCT END--------------------------*/
+
+typedef enum {
+ MBIM_STATUS_SUCCESS = 0,
+ MBIM_STATUS_BUSY = 1,
+ MBIM_STATUS_FAILURE = 2,
+ MBIM_STATUS_SIM_NOT_INSERTED = 3,
+ MBIM_STATUS_BAD_SIM = 4,
+ MBIM_STATUS_PIN_REQUIRED = 5,
+ MBIM_STATUS_PIN_DISABLED = 6,
+ MBIM_STATUS_NOT_REGISTERED = 7,
+ MBIM_STATUS_PROVIDERS_NOT_FOUND = 8,
+ MBIM_STATUS_NO_DEVICE_SUPPORT = 9,
+ MBIM_STATUS_PROVIDER_NOT_VISIBLE = 10,
+ MBIM_STATUS_DATA_CLASS_NOT_AVAILABLE = 11,
+ MBIM_STATUS_PACKET_SERVICE_DETACHED = 12,
+ MBIM_STATUS_MAX_ACTIVATED_CONTEXTS = 13,
+ MBIM_STATUS_NOT_INITIALIZED = 14,
+ MBIM_STATUS_VOICE_CALL_IN_PROGRESS = 15,
+ MBIM_STATUS_CONTEXT_NOT_ACTIVATED = 16,
+ MBIM_STATUS_SERVICE_NOT_ACTIVATED = 17,
+ MBIM_STATUS_INVALID_ACCESS_STRING = 18,
+ MBIM_STATUS_INVALID_USER_NAME_PWD = 19,
+ MBIM_STATUS_RADIO_POWER_OFF = 20,
+ MBIM_STATUS_INVALID_PARAMETERS = 21,
+ MBIM_STATUS_READ_FAILURE = 22,
+ MBIM_STATUS_WRITE_FAILURE = 23,
+// MBIM_STATUS_ Reserved = 24,
+ MBIM_STATUS_NO_PHONEBOOK = 25,
+ MBIM_STATUS_PARAMETER_TOO_LONG = 26,
+ MBIM_STATUS_STK_BUSY = 27,
+ MBIM_STATUS_OPERATION_NOT_ALLOWED = 28,
+ MBIM_STATUS_MEMORY_FAILURE = 29,
+ MBIM_STATUS_INVALID_MEMORY_INDEX = 30,
+ MBIM_STATUS_MEMORY_FULL = 31,
+ MBIM_STATUS_FILTER_NOT_SUPPORTED = 32,
+ MBIM_STATUS_DSS_INSTANCE_LIMIT = 33,
+ MBIM_STATUS_INVALID_DEVICE_SERVICE_OPERATION = 34,
+ MBIM_STATUS_AUTH_INCORRECT_AUTN = 35,
+ MBIM_STATUS_AUTH_SYNC_FAILURE = 36,
+ MBIM_STATUS_AUTH_AMF_NOT_SET = 37,
+
+ MBIM_STATUS_SMS_UNKNOWN_SMSC_ADDRESS = 100,
+ MBIM_STATUS_SMS_NETWORK_TIMEOUT = 101,
+ MBIM_STATUS_SMS_LANG_NOT_SUPPORTED = 102,
+ MBIM_STATUS_SMS_ENCODING_NOT_SUPPORTED = 103,
+ MBIM_STATUS_SMS_FORMAT_NOT_SUPPORTED = 104,
+
+ MBIM_STATUS_END = 0xFF
+} mbim_status_code_enum;
+
+typedef enum {
+ MBIM_OP_CLOSE = 0,
+ MBIM_OP_OPEN = 1,
+ MBIM_OP_COMMAND = 2,
+ MBIM_OP_ERROR_CANCEL = 3,
+ MBIM_OP_REOPEN = 4,
+} mbim_op_enum;
+
+typedef enum {
+ MBIM_COMMAND_QUERY,
+ MBIM_COMMAND_SET
+} mbim_command_type_enum;
+
+#endif /* _MBIM_DEFS_H */
+
diff --git a/mcu/interface/protocol/general/md_bootmode_public.h b/mcu/interface/protocol/general/md_bootmode_public.h
new file mode 100644
index 0000000..4bd7fdc
--- /dev/null
+++ b/mcu/interface/protocol/general/md_bootmode_public.h
@@ -0,0 +1,188 @@
+/*******************************************************************************
+* Modification Notice:
+* --------------------------
+* This software is modified by MediaTek Inc. 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:
+ * ---------
+ * md_bootmode_public.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * md boot mode switch header file
+ *
+ * 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!
+ *
+ *
+ ****************************************************************************/
+
+#ifndef _MD_BOOTMODE_PUBLIC_H
+#define _MD_BOOTMODE_PUBLIC_H
+
+/* Notified Modules */
+
+static module_type bootmode_notify_module[] = {
+#if defined (__DHL_MODULE__) && defined(__MTK_TARGET__)
+#if defined (__DHL_V2_ENABLE__)
+MOD_DHL_READER,
+#else
+MOD_META_CMD,
+#endif
+#endif
+#if defined(__UMTS_RAT__) && defined(__UMTS_FDD_MODE__) && !defined(__UL1_TASK_DISABLE__)
+MOD_UL1,
+#endif
+#if defined(__UMTS_RAT__) && defined(__UMTS_TDD128_MODE__) && !defined(__TL1_TASK_DISABLE__)
+MOD_TL1,
+#endif
+#if !defined(L1_NOT_PRESENT) && !defined(__L1_TASK_DISABLE__)
+MOD_L1,
+#endif
+#if defined(__LTE_RAT__) && !defined(__EL1_TASK_DISABLE__)
+MOD_EMAC,
+MOD_EL1,
+#endif
+#if defined(__C2K_RAT__) && !defined (__CL1_TASK_DISABLE__)
+MOD_CL1TST,
+#endif
+#if defined (__MML1_ADT_ENABLE__) && defined(__MTK_TARGET__)
+MOD_L1ADT,
+#endif
+#if defined(__EL1_EL2_DYNAMIC_CACHE_LOCK_SUPPORT__) && defined(__LTE_RAT__) && defined(__MML1_UTIL_TASK_ENABLE__)
+MOD_ENL1,
+#endif
+#if defined(__NR_RAT__) && !defined(__NL1_TASK_DISABLE__)
+MOD_NL1,
+#if !defined(__XL1SIM__)
+MOD_NL2POW,
+#endif
+#endif
+#if ((defined(__MTK_TARGET__) && defined(__MD95__)) || defined(__MD97__)) && !defined(__MAUI_BASIC__) && !defined(__MMRF_XL1TST_TASK_DISABLE__)
+MOD_MMRF_XL1TST,
+#endif
+};
+#endif /* _MD_BOOTMODE_PUBLIC_H */
diff --git a/mcu/interface/protocol/general/mmi_l3_enums.h b/mcu/interface/protocol/general/mmi_l3_enums.h
new file mode 100644
index 0000000..d693655
--- /dev/null
+++ b/mcu/interface/protocol/general/mmi_l3_enums.h
@@ -0,0 +1,307 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mmi_l3_enums.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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _MMI_L3_ENUMS_H
+#define _MMI_L3_ENUMS_H
+
+//#include "ps_public_enum.h"
+#include "mmi_l3_enums_public.h"
+
+/* Modified by: CH_Liang 2005.01.25 */
+#ifndef MAX_EXT_PDP_CONTEXT
+ // if the global compile option is not defined, use the local definition
+ #error MAX_EXT_PDP_CONTEXT is not defined in make files
+#endif
+/* End of Modification, 2005.03.19. Reviewed by: Joseph */
+
+/* SM/SNDCP related enumerations */
+
+/* Modified by: CH_Liang 2005.01.25 */
+#define TOT_NSAPI GPRS_MAX_PDP_SUPPORT
+/* End of Modification, 2005.03.19. Reviewed by: Joseph */
+
+#define SM_QOS_LEN_3 3
+#define SM_QOS_LEN_11 11 /* 11 bytes is the Qos length */
+#define SM_QOS_LEN_12 12 //__REL5__
+#define SM_QOS_LEN_14 14//__REL5__
+#define SM_QOS_LEN_13_WITH_EXT_MAX_RATE_DL 13
+#define SM_QOS_LEN_14_WITH_EXT_GUARANTEE_RATE_DL 14
+#define SM_QOS_LEN_15_WITH_EXT_MAX_RATE_UL 15 // __REL7_
+#define SM_QOS_LEN_16_WITH_EXT_GUARANTEE_RATE_UL 16 // __REL7_
+#define SM_QOS_LEN_16 16 // __REL7_
+#define SM_QOS_LEN_17_WITH_EXT2_MAX_RATE_DL 17
+#define SM_QOS_LEN_18_WITH_EXT2_GUARANTEE_RATE_DL 18
+#define SM_QOS_LEN_19_WITH_EXT2_MAX_RATE_UL 19 // __R11__
+#define SM_QOS_LEN_20_WITH_EXT2_GUARANTEE_RATE_UL 20 // __R11__
+#define SM_QOS_LEN_20 20 // __R11_
+
+#define SM_QOS_IE_CONTENT_MAX_LEN 20 // until release 9
+#define SM_TFT_IE_CONTENT_MAX_LEN 255 // until release 9
+#define SM_PCO_IE_CONTENT_MAX_LEN 251 // until release 9
+
+#define TCM_MAX_RECORDING_MSGS_NUM (GPRS_MAX_PDP_SUPPORT*2)
+
+#define PS_TOT_NSAPI_NUM 11
+#define PS_TOT_CONTEXT PS_TOT_NSAPI_NUM
+
+#define PS_MIN_CONTEXT_ID 1
+#define PS_MAX_CONTEXT_ID (1 + PS_TOT_CONTEXT -1)
+
+typedef enum
+{
+ NO_NSAPI = 0X00,
+ MIN_VALID_NSAPI = 0X05,
+ MAX_VALID_NSAPI = MIN_VALID_NSAPI + GPRS_MAX_PDP_SUPPORT - 1,
+ MAX_THEORETICAL_VALID_NSAPI = 0x0F // nsapi is from 5~15
+}nsapi_session_enum;
+
+typedef enum
+{
+/* Modified by: CH_Liang 2005.01.25 */
+ TOT_MS_INITIATED_CONTEXT = GPRS_MAX_PDP_SUPPORT,
+ TOT_NW_INITIATED_CONTEXT = GPRS_MAX_PDP_SUPPORT
+/* End of Modification, 2005.03.19. Reviewed by: Joseph */
+}max_contexts_enum;
+
+/* Joseph:
+ * This enum defination is used between
+ * TCM and SM and should SYNC with l4c_source_id_enum@l4c_common_enums.h
+ */
+typedef enum
+{
+ LMMI_ID,
+ RMMI_ID,
+ SAT_ID,
+ INVALID_MMI_ID
+} mmi_source_id_enum;
+
+
+/* The following definitions have been packed in enumeration for future
+ * increase of compression algorithms */
+
+typedef enum
+{
+ PAP_AUTH,
+ CHAP_AUTH
+} pdp_auth_enum;
+
+#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 !*/
+#endif
+
+#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 !*/
+#endif
+
+typedef enum {
+ DATA_ACCT_CSD_PROF, /* normal csd profile */
+ DATA_ACCT_GPRS_PROF, /* normal gprs profile */
+ DATA_ACCT_SAT_PROF, /* sat csd profile */
+ DATA_ACCT_SPA_PROF /* sim provisioning csd profile */
+} data_account_profile_type_enum;
+
+typedef enum
+{
+ SM_GPRS_AUTHENTICATION_PAP = 0,
+ SM_GPRS_AUTHENTICATION_CHAP = 1,
+ SM_GPRS_AUTHENTICATION_NONE =2,
+ SM_GPRS_AUTHENTICATION_PAP_CHAP = 3,
+ SM_GPRS_AUTHENTICATION_MAX_VALID_ENUM_VALUE = SM_GPRS_AUTHENTICATION_PAP_CHAP
+}sm_gprs_authentication_type_enum;
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/mmi_msg_struct.h b/mcu/interface/protocol/general/mmi_msg_struct.h
new file mode 100644
index 0000000..2d25128
--- /dev/null
+++ b/mcu/interface/protocol/general/mmi_msg_struct.h
@@ -0,0 +1,6234 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mmi_msg_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for MMI message 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!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ *
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * 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 __MMI_MSG_STRUCT_H__
+#define __MMI_MSG_STRUCT_H__
+
+//#include "stack_ltlcom.h"
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_common_enum.h"
+//#include "l4c_aux_struct.h"
+//#include "l4c_rspfmttr.h"
+//#include "l4c2csm_ss_struct.h"
+//#include "l4c_ss_parse.h"
+#include "device.h"
+#include "med_struct.h"
+//#include "l4c2uem_struct.h"
+#include "l4a.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "dcl.h"
+//#include "ps2sim_struct.h"
+//#include "sim_common_enums.h"
+//#include "phb_defs.h"
+//#include "l4c2phb_enums.h"
+//#include "l4c2phb_struct.h"
+//#include "smsal_l4c_defs.h"
+//#include "l4c2smsal_struct.h"
+//#include "smsal_l4c_enum.h"
+//#include "smsal_defs.h"
+//#include "l4c2tcm_func.h"
+//#include "l4c2abm_struct.h"
+//#include "ps2sat_struct.h"
+#include "em_struct.h"
+//#include "l4c2smu_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "sim_public_enum.h"
+
+/*MTK:BEGIN:generate_message_structure*/
+/* Call Control Related Messages */
+#if defined(__MOD_CSM__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 pin[MAX_SIM_PASSWD_LEN];
+ } mmi_cc_reset_acm_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_cc_reset_acm_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint32 acm;
+ } mmi_cc_get_acm_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 pin[MAX_SIM_PASSWD_LEN];
+ kal_uint32 val;
+ } mmi_cc_set_max_acm_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_cc_set_max_acm_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint32 acm_max;
+ } mmi_cc_get_max_acm_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_cc_reset_ccm_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint32 ccm;
+ } mmi_cc_get_ccm_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 index; /* csmcc_cug_index_enum */
+ kal_uint8 mode; /* csmcc_cug_temporary_mode_enum */
+ kal_uint8 info; /* csmcc_cug_suppress_enum */
+ } mmi_cc_set_cug_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_cc_set_cug_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode; /* csmcc_crss_req_enum */
+ kal_uint8 call_id;
+ kal_uint8 source_id;
+ } mmi_cc_chld_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 opcode; /* csmcc_crss_req_enum */
+ } mmi_cc_chld_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 op_code; /* l4c_ath_req_enum */
+ kal_uint8 source_id;
+ } mmi_cc_ath_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ l4c_call_list_struct call_list;
+ } mmi_cc_get_call_list_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_number_struct dest;
+ kal_bool sub_addr_flag;
+ l4c_sub_addr_struct sub_dest;
+ } mmi_cc_call_deflect_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_cc_call_deflect_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 digit;
+ kal_uint8 call_id;
+ } mmi_cc_start_dtmf_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 tone;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+ } mmi_cc_start_dtmf_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ } mmi_cc_stop_dtmf_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 tone;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+ } mmi_cc_stop_dtmf_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 digit[MAX_CC_DTMF_LEN-1];
+ } mmi_cc_start_auto_dtmf_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_cc_start_auto_dtmf_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 digits[MAX_CC_DTMF_LEN-1];
+ } mmi_cc_start_auto_dtmf_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ } mmi_cc_start_auto_dtmf_finish_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ } mmi_cc_ata_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 call_mode; /* clcc_mode_enum */
+ } mmi_cc_ata_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_number_struct dest;
+ kal_uint8 redial_count;
+ kal_uint8 call_type; /* csmcc_call_type_enum */
+ kal_uint8 clir_flag; /* csmcc_clir_info_enum */
+ kal_bool cug_option;
+ kal_uint8 als_type;
+ kal_uint8 ecc_info;
+ } mmi_cc_dial_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_cc_dial_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_number_struct dest;
+ kal_uint8 call_type; /* csmcc_call_type_enum */
+ kal_uint8 clir_flag; /* csmcc_clir_info_enum */
+ kal_bool cug_option;
+ } mmi_cc_dial_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 call_id;
+ kal_bool is_diag_present;
+ kal_uint8 diag;
+ } mmi_cc_dial_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint32 ccm;
+ kal_uint8 warning;
+ kal_uint32 total_ccm;
+ kal_uint8 puct_valid;
+ kal_uint8 currency[3];
+ kal_uint8 ppu[18];
+ } mmi_cc_ccm_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 alert;
+ } mmi_cc_internal_alert_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ l4c_number_struct num;
+ kal_uint8 call_mode; /* csmcc_call_mode_enum */
+ kal_uint8 name_present;
+ kal_uint8 cnap_info_exist;
+ kal_uint8 tag;
+ kal_uint8 name[30];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 auto_answer;
+ kal_uint8 addr_ind_present;
+ kal_uint8 addr_ind;
+ kal_uint8 signal_value_present;
+ kal_uint8 signal_value;
+ kal_uint8 alerting_pattern_present;
+ kal_uint8 alerting_pattern;
+ kal_uint8 no_cli_cause_present;
+ kal_uint8 no_cli_cause;
+ kal_uint8 call_priority_present;
+ kal_uint8 call_priority;
+ } mmi_cc_call_wait_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ l4c_number_struct num;
+ l4c_sub_addr_struct sub_addr;
+ l4c_number_struct redirect_num;
+ kal_uint8 name_present;
+ kal_uint8 cnap_info_exist;
+ kal_uint8 tag;
+ kal_uint8 name[30];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 auto_answer;
+ kal_uint8 call_type;
+ kal_uint8 addr_ind_present;
+ kal_uint8 addr_ind;
+ kal_uint8 signal_value_present;
+ kal_uint8 signal_value;
+ kal_uint8 alerting_pattern_present;
+ kal_uint8 alerting_pattern;
+ kal_uint8 no_cli_cause_present;
+ kal_uint8 no_cli_cause;
+ kal_uint8 call_priority_present;
+ kal_uint8 call_priority;
+ } mmi_cc_call_ring_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_number_struct num;
+ l4c_sub_addr_struct sub_addr;
+ kal_uint8 call_type;
+ kal_uint8 call_id;
+ } mmi_cc_call_connect_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_bool ccbs;
+ kal_uint16 cause;
+ kal_uint8 call_type;
+ kal_bool is_diag_present;
+ kal_uint8 diag;
+ } mmi_cc_call_disconnect_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint16 cause;
+ kal_bool is_diag_present;
+ kal_uint8 diag;
+ } mmi_cc_call_release_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ kal_uint8 rat;
+ kal_uint8 irho_speech_on_off;
+ } mmi_cc_speech_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 type; /* csmcc_notify_ss_type_enum */
+ kal_bool status_present;
+ kal_uint8 status;
+ kal_bool notification_present;
+ kal_uint8 notification;
+ } mmi_cc_notify_ss_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_bool present;
+ l4c_number_struct addr;
+ l4c_sub_addr_struct sub_addr;
+ } mmi_cc_notify_ss_ect_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 name_present;
+ kal_uint8 cnap_info_exist;
+ kal_uint8 tag;
+ kal_uint8 name[30];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ } mmi_cc_notify_ss_cnap_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_bool number_present;
+ l4c_number_struct addr;
+ kal_bool sub_addr_present;
+ l4c_sub_addr_struct sub_addr;
+ kal_bool index_present;
+ kal_uint8 index;
+ kal_bool bs_code_present;
+ kal_uint8 bs_code;
+ kal_bool alert_present;
+ kal_uint8 alert_pattern;
+ } mmi_cc_notify_ss_ccbs_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ } mmi_cc_call_accept_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 action;
+ kal_bool result;
+ kal_uint8 cause;
+ } mmi_cc_video_call_status_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ } mmi_cc_rel_comp_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_cc_rel_comp_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ l4c_number_struct num;
+ l4c_sub_addr_struct sub_addr;
+ l4c_number_struct redirect_num;
+ kal_uint8 name_present;
+ kal_uint8 cnap_info_exist;
+ kal_uint8 tag;
+ kal_uint8 name[30];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 auto_answer;
+ kal_uint8 call_type;
+ kal_uint8 addr_ind_present;
+ kal_uint8 addr_ind;
+ kal_uint8 signal_value_present;
+ kal_uint8 signal_value;
+ kal_uint8 alerting_pattern_present;
+ kal_uint8 alerting_pattern;
+ kal_uint8 no_cli_cause_present;
+ kal_uint8 no_cli_cause;
+ kal_uint8 call_priority_present;
+ kal_uint8 call_priority;
+ kal_uint8 seq_num;
+ } mmi_cc_call_present_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 is_mt_call_allowed;
+ kal_uint8 call_id;
+ kal_uint8 seq_num;
+ } mmi_cc_call_present_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 msg_type; /* csmcc_cpi_msg_type_enum */
+ kal_uint8 is_ibt;
+ kal_uint8 is_tch;
+ kal_uint8 dir; /* clcc_dir_enum */
+ kal_uint8 call_mode; /* clcc_mode_enum */
+ kal_uint8 numberP;
+ l4c_number_struct number;
+ kal_uint16 disc_cause;
+ kal_uint8 src_id;
+ kal_uint8 call_type;
+ } mmi_cc_cpi_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint32 mode;
+ } mmi_cc_cpi_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 opcode;
+ kal_uint8 call_type;
+ l4c_number_struct number;
+ } mmi_data_call_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 result;
+ kal_uint8 cause;
+ kal_uint8 opcode;
+ kal_uint8 call_type;
+ l4c_number_struct number;
+ } mmi_data_call_res_req_struct;
+#endif /* defined(__MOD_CSM__) */
+/* Non-Call-Related Supplementary Service Messages */
+#if defined(__MOD_CSM__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 priority;
+ } mmi_ss_emlpp_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 default_pri;
+ kal_uint8 max_pri;
+ } mmi_ss_emlpp_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 type; /* l4_ss_code_enum */
+ kal_uint8 bs_code; /* l4_bs_code_enum */
+ kal_uint8 timer;
+ l4c_number_struct dest;
+ kal_bool sub_addr_flag;
+ l4c_sub_addr_struct sub_dest;
+ } mmi_ss_call_forward_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 type; /* l4_ss_code_enum */
+ kal_uint8 count;
+ forwarding_list_struct list[13];
+ } mmi_ss_call_forward_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 bs_code; /* l4_bs_code_enum */
+ } mmi_ss_call_wait_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 count;
+ kal_uint8 status;
+ kal_uint8 list[13]; /* l4_bs_code_enum */
+ } mmi_ss_call_wait_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 status;
+ kal_uint8 clir_option;
+ } mmi_ss_clip_interrogate_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 status;
+ kal_uint8 clir_option;
+ } mmi_ss_clir_interrogate_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 status;
+ kal_uint8 clir_option;
+ } mmi_ss_cnap_interrogate_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 status;
+ kal_uint8 clir_option;
+ } mmi_ss_colp_interrogate_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 status;
+ kal_uint8 clir_option;
+ } mmi_ss_colr_interrogate_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 type; /* l4_ss_code_enum */
+ kal_uint8 bs_code; /* l4_bs_code_enum */
+ kal_uint8 passwd[MAX_SIM_PASSWD_LEN];
+ } mmi_ss_call_barring_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 type;
+ kal_uint8 count;
+ barring_list_struct list[13];
+ } mmi_ss_call_barring_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 str[MAX_DIGITS_USSD];
+ kal_uint8 dcs; /* smsal_dcs_enum */
+ kal_uint8 length;
+ } mmi_ss_ussd_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 op_code;
+ kal_uint8 dcs;
+ kal_uint8 ussd_str[MAX_DIGITS_USSD];
+ kal_uint8 length;
+ kal_uint8 ussd_version;
+ } mmi_ss_ussd_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 dcs; /* smsal_dcs_enum */
+ kal_uint8 ussd_string[MAX_DIGITS_USSD];
+ kal_uint8 length;
+ kal_uint8 direction;
+ } mmi_ss_ussr_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 dcs; /* smsal_dcs_enum */
+ kal_uint8 ussd_string[MAX_DIGITS_USSD];
+ kal_uint8 length;
+ kal_uint8 direction;
+ } mmi_ss_ussn_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type; /* l4_ss_code_enum */
+ kal_uint8 old[MAX_SIM_PASSWD_LEN];
+ kal_uint8 new1[MAX_SIM_PASSWD_LEN];
+ kal_uint8 new2[MAX_SIM_PASSWD_LEN];
+ } mmi_ss_change_password_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ } mmi_ss_change_password_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 input[MAX_DIGITS_USSD];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 ip_string[21];
+ kal_uint8 source_id;
+ kal_uint8 call_type;
+ kal_bool is_sim_operation;
+ kal_uint8 als_type;
+ kal_uint8 ecc_info;
+ } mmi_ss_parsing_string_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ l4c_ss_string_info_struct info;
+ } mmi_ss_parsing_string_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 input[MAX_DIGITS_USSD];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 cf_number_length;
+ } mmi_ss_operation_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ } mmi_ss_operation_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 geography_type;
+ } mmi_sms_cb_gs_change_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 op_code; /* l4_op_code_enum */
+ kal_uint8 index;
+ } mmi_ss_ccbs_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 para_present;
+ kal_uint8 opcode; /* l4_op_code_enum */
+ kal_uint8 ccbs_count;
+ ccbs_list_struct list;
+ } mmi_ss_ccbs_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_ss_abort_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 clir_flag; /* rmmi_clir_enum */
+ } mmi_ss_set_clir_flag_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_ss_set_clir_flag_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ } mmi_ss_ack_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_ss_ack_rsp_struct;
+#endif /* defined(__MOD_CSM__) */
+/* Hardware - Audio Related Service Messages */
+#if defined(__MOD_UEM__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 volume_type; /* volume_type_enum */
+ kal_uint8 volume_level;
+ } mmi_eq_set_volume_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 ret_volume_type; /* volume_type_enum */
+ } mmi_eq_set_volume_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 volume_type; /* volume_type_enum */
+ kal_uint8 volume_level;
+ } mmi_eq_exe_volume_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 volume_type; /* volume_type_enum */
+ kal_uint8 volume_level;
+ } mmi_eq_volume_change_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 audio_device;
+ kal_bool mute_onoff;
+ } mmi_eq_set_mute_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 ret_audio_device;
+ } mmi_eq_set_mute_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 audio_device;
+ kal_bool mute_onoff;
+ } mmi_eq_exe_mute_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 audio_device;
+ kal_bool mute_onoff;
+ } mmi_eq_mute_change_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool mode;
+ } mmi_eq_set_silent_mode_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 gpio_dev_type; /* gpio_device_enum */
+ kal_uint8 gpio_dev_level;
+ } mmi_eq_set_gpio_level_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_set_gpio_level_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 gpio_dev_type; /* gpio_device_enum */
+ kal_uint8 gpio_dev_level;
+ } mmi_eq_set_gpio_level_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 gpio_dev_type; /* gpio_device_enum */
+ } mmi_eq_get_gpio_level_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 gpio_dev_level;
+ } mmi_eq_get_gpio_level_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 gpio_dev_type; /* gpio_device_enum */
+ kal_uint8 gpio_dev_level;
+ } mmi_eq_exe_gpio_level_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_exe_gpio_level_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 gpio_dev_type; /* gpio_device_enum */
+ kal_uint8 gpio_dev_level;
+ kal_uint16 duration;
+ } mmi_eq_exe_gpio_level_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 sound_id;
+ kal_uint8 style; /* audio_play_style_enum */
+ kal_uint16 identifier;
+ } mmi_eq_play_audio_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_play_audio_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 identifier;
+ } mmi_eq_play_audio_finish_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 sound_id;
+ } mmi_eq_stop_audio_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_stop_audio_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 imelody[MAX_RING_COMPOSE_LEN];
+ kal_uint16 len;
+ kal_uint8 play_style;
+ kal_uint16 identifier;
+ } mmi_eq_play_ext_imelody_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_play_ext_imelody_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 gpio_device; /* ext_device_enum */
+ kal_bool on_off;
+ } mmi_eq_gpio_detect_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 ext_gpio_device;
+ } mmi_eq_gpio_detect_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_gpio_detect_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ } mmi_eq_set_speech_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_set_speech_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_wchar file_name[50];
+ kal_uint8 style;
+ kal_uint16 identifier;
+ } mmi_eq_play_audio_by_name_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_play_audio_by_name_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_wchar file_name[50];
+ } mmi_eq_stop_audio_by_name_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_stop_audio_by_name_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ audio_profile_struct audio_prof;
+ } mmi_eq_set_audio_profile_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_set_audio_profile_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ audio_profile_struct audio_prof_in;
+ } mmi_eq_get_audio_profile_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ audio_profile_struct audio_prof_out;
+ } mmi_eq_get_audio_profile_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ audio_param_struct audio_para;
+ } mmi_eq_set_audio_param_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_set_audio_param_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ audio_param_struct audio_para;
+ } mmi_eq_get_audio_param_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_start_adc_all_channel_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_stop_adc_all_channel_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int32 vbat;
+ kal_int32 bat_temp;
+ kal_int32 vaux;
+ kal_int32 charge_current;
+ kal_int32 vcharge;
+ } mmi_eq_adc_all_channel_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode; /* audio_mode_enum */
+ } mmi_eq_set_audio_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_set_audio_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 pattern;
+ kal_uint8 action;
+ } mmi_eq_play_pattern_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_play_pattern_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_hw_profile_struct hw_profile;
+ } mmi_eq_set_hw_level_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_set_hw_level_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ l4c_hw_profile_struct hw_profile;
+ } mmi_eq_get_hw_level_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ } mmi_eq_set_sleep_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_set_sleep_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ } mmi_eq_set_sleep_mode_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_hand_free;
+ } mmi_eq_set_hand_free_mode_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_hand_free;
+ } mmi_eq_query_hand_free_mode_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ } mmi_eq_set_cam_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 mode;
+ } mmi_eq_set_cam_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ } mmi_eq_set_avr_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 mode;
+ } mmi_eq_set_avr_res_req_struct;
+#endif /* defined(__MOD_UEM__) */
+/* Hardware - RTC, Clock, Alarm Related Messages */
+#if defined(__MOD_UEM__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rtc_type;
+ kal_uint8 set_type;
+ rtc_alarm_info_struct info;
+ } mmi_eq_set_rtc_time_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_set_rtc_time_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rtc_type;
+ kal_uint8 set_type;
+ rtc_alarm_info_struct alarm;
+ } mmi_eq_set_rtc_time_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rtc_type;
+ kal_uint8 set_type;
+ rtc_alarm_info_struct info;
+ } mmi_eq_exe_rtc_timer_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_exe_rtc_timer_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rtc_type;
+ } mmi_eq_get_rtc_time_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 num;
+ rtc_alarm_info_struct rtctime[MAX_ALARM_NUM];
+ } mmi_eq_get_rtc_time_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rtc_type;
+ kal_uint8 rtc_index;
+ } mmi_eq_del_rtc_timer_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_del_rtc_timer_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rtc_type;
+ kal_uint8 rtc_index;
+ } mmi_eq_del_rtc_timer_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rtc_type;
+ kal_uint8 rtc_index;
+ } mmi_eq_exe_del_rtc_timer_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_exe_del_rtc_timer_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_date_set;
+ kal_uint8 mode;
+ } mmi_eq_set_date_time_format_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_set_date_time_format_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_date_set;
+ kal_uint8 mode;
+ } mmi_eq_set_date_time_format_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rtc_type;
+ rtc_format_struct rtc_time;
+ } mmi_eq_clock_tick_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ rtc_format_struct rtc_time;
+ } mmi_eq_alarm_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 totalAlarm;
+ kal_uint8 activeAlarm;
+ mmi_at_alarm_info_struct* alarmList;
+ } mmi_at_alarm_query_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ mmi_at_alarm_info_struct alarm;
+ } mmi_at_alarm_set_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_at_alarm_set_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 alarm_index;
+ } mmi_at_alarm_delete_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_at_alarm_delete_res_req_struct;
+#endif /* defined(__MOD_UEM__) */
+/* Hardware - Keypad, Indicator, LCD Related Messages */
+#if defined(__MOD_UEM__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 keypad_status; /* keypad_status_enum */
+ kal_uint8 keycode; /* keypad_code_enum */
+ } mmi_eq_simulate_key_press_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 icon_id; /* indicator_type_enum */
+ kal_uint8 value;
+ } mmi_eq_set_indicator_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 text_string[UEM_DISPLAY_TEXT_LEN];
+ } mmi_eq_display_text_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 func_type;
+ } mmi_eq_keypad_detect_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 level;
+ kal_uint16 duration;
+ } mmi_at_cbklt_query_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ } mmi_at_keypad_event_act_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 keypad_status;
+ kal_uint8 keypad_code;
+ } mmi_at_keypad_event_output_req_struct;
+#endif /* defined(__MOD_UEM__) */
+/* Hardware - Misc Messages */
+#if defined(__MOD_UEM__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 lang_code;
+ } mmi_eq_set_language_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_set_language_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 lang_code;
+ } mmi_eq_set_language_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool mode;
+ kal_uint8 dcs;
+ kal_uint8 text[UEM_GREETING_LEN];
+ kal_uint8 length;
+ } mmi_eq_set_greeting_text_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool mode;
+ } mmi_eq_set_vibrator_mode_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 equip_type; /* equip_id_enum */
+ } mmi_eq_get_equip_id_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 equip_id[UEM_EQUIP_ID_LEN];
+ } mmi_eq_get_equip_id_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 fun;
+ kal_uint8 rst;
+ } mmi_eq_power_on_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_power_on_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_power_off_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 poweron_mode;
+ kal_uint8 battery_level;
+ kal_uint8 build_label;
+ rtc_format_struct rtc_time;
+ kal_uint8 flightmode_state;
+ kal_uint8 dual_sim_mode_setting;
+ kal_uint8 dual_sim_uart_setting;
+ } mmi_eq_power_on_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ } mmi_eq_cancel_lock_poweron_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_cancel_lock_poweron_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 battery_status; /* battery_status_enum */
+ kal_uint8 battery_voltage;
+ } mmi_eq_battery_status_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ pmic_config_param_struct request;
+ } mmi_eq_pmic_config_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ pmic_config_param_struct request;
+ } mmi_eq_pmic_config_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 status_type;
+ } mmi_eq_battery_status_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ rf_test_gsm_param_struct request;
+ } mmi_eq_rf_test_gsm_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ rf_test_gsm_param_struct request;
+ } mmi_eq_rf_test_gsm_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ fm_radio_config_param_struct request;
+ } mmi_eq_fm_radio_config_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ fm_radio_config_param_struct request;
+ } mmi_eq_fm_radio_config_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode;
+ kal_uint16 frequency;
+ } mmi_eq_fm_test_req_ind_struct;
+ #if defined(__WIFI_SUPPORT__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ rf_test_wifi_param_struct request;
+ } mmi_eq_rf_test_wifi_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ rf_test_wifi_param_struct request;
+ } mmi_eq_rf_test_wifi_rsp_struct;
+ #endif
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 call_status;
+ } mmi_eq_call_status_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 request_type;
+ } mmi_eq_factory_reset_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool cal_data_valid;
+ } mmi_eq_query_cal_data_dl_status_rsp_struct;
+#endif /* defined(__MOD_UEM__) */
+/* Hardware - NVRAM messages */
+#if defined(__MOD_NVRAM__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint16 rec_amount;
+ } mmi_eq_nvram_read_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint16 file_idx;
+ kal_uint16 length;
+ kal_uint16 para;
+ kal_uint8 data[1];
+ } mmi_eq_nvram_read_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint16 length;
+ kal_uint8 data[1];
+ } mmi_eq_nvram_write_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ } mmi_eq_nvram_write_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 reset_category;
+ kal_uint16 lid;
+ kal_uint16 rec_index;
+ kal_uint16 rec_amount;
+ } mmi_eq_nvram_reset_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ } mmi_eq_nvram_reset_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 func_id;
+ kal_uint8 ps_port;
+ kal_uint8 tst_port_ps;
+ kal_uint32 ps_baud_rate;
+ kal_uint32 tst_baud_rate_ps;
+ kal_bool High_Speed_SIM_Enabled;
+ kal_uint8 swdbg;
+ kal_uint8 uart_power_setting;
+ kal_uint8 cti_uart_port;
+ kal_uint32 cti_baud_rate;
+ kal_uint8 tst_port_l1;
+ kal_uint32 tst_baud_rate_l1;
+ kal_uint8 tst_output_mode;
+ kal_uint8 usb_logging_mode;
+ kal_uint8 tst_port_dsp;
+ kal_uint32 tst_baud_rate_dsp;
+ } mmi_eq_set_uart_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_set_uart_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 ps_uart_port;
+ kal_uint32 ps_baud_rate;
+ kal_uint8 tst_uart_port_ps;
+ kal_uint32 tst_baud_rate_ps;
+ kal_uint8 cti_uart_port;
+ kal_uint32 cti_baud_rate;
+ kal_uint8 tst_uart_port_l1;
+ kal_uint32 tst_baud_rate_l1;
+ kal_uint8 tst_output_mode;
+ kal_uint8 usb_logging_mode;
+ kal_uint8 tst_port_dsp;
+ kal_uint32 tst_baud_rate_dsp;
+ kal_bool high_Speed_SIM_Enabled;
+ kal_uint8 swdbg;
+ kal_uint8 uart_power_setting;
+ } mmi_eq_get_uart_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ module_type module_id;
+ UART_PORT port;
+ kal_uint32 baud_rate;
+ } mmi_attach_uart_port_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ } mmi_attach_uart_port_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ module_type module_id;
+ UART_PORT port;
+ } mmi_detach_uart_port_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ } mmi_detach_uart_port_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool enable;
+ } mmi_eq_dcm_enable_req_struct;
+#endif /* defined(__MOD_NVRAM__) */
+/* Network Related Messages */
+#if defined(__MOD_RAC__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 imei[16];
+ kal_uint8 svn[3];
+ } mmi_nw_get_imei_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_abort_plmn_list_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type; /* l4crac_attach_type_enum */
+ kal_uint8 opcode; /* l4crac_ps_attach_enum */
+ kal_bool is_poweroff;
+ } mmi_nw_set_attach_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_set_attach_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ } mmi_nw_set_plmn_select_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_set_plmn_select_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 mode;
+ } mmi_nw_get_plmn_select_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 prefer;
+ } mmi_nw_set_gprs_transfer_preference_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_set_gprs_transfer_preference_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 prefer;
+ } mmi_nw_get_gprs_transfer_preference_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode; /* l4crac_cops_opcode_enum */
+ kal_uint8 oper[MAX_PLMN_LEN+1];
+ kal_uint8 rat;
+ } mmi_nw_set_plmn_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 status;
+ kal_uint8 plmn[MAX_PLMN_LEN+1];
+ kal_uint8 rat;
+ } mmi_nw_set_plmn_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 length;
+ l4c_rat_plmn_info_struct list[MAX_PLMN_LIST_LEN];
+ kal_uint8 num_of_hplmn;
+ } mmi_nw_get_plmn_list_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 gsm_band;
+ kal_uint8 umts_fdd_band[SIZE_OF_UMTS_BAND];
+ kal_uint8 supported_gsm_band;
+ kal_uint8 supported_umts_fdd_band[SIZE_OF_UMTS_BAND];
+ } mmi_nw_get_band_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 status; /* l4c_rac_response_enum */
+ kal_uint8 plmn[MAX_PLMN_LEN+1];
+ kal_uint8 gsm_state;
+ kal_uint8 gprs_state;
+ kal_uint8 gprs_status; /* l4c_gprs_status_enum */
+ kal_uint8 rat;
+ kal_uint8 cell_support_egprs;
+ kal_uint8 lac[2];
+ kal_uint8 rac;
+ kal_uint16 cell_id;
+ kal_uint8 cause;
+ kal_uint8 data_speed_support;
+ kal_bool is_on_hplmn;
+ kal_uint8 domain; /* domain_id_enum */
+ } mmi_nw_attach_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 domain;
+ kal_uint8 cause;
+ } mmi_nw_reg_cause_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 lac;
+ kal_uint16 cell_id;
+ kal_uint8 status;
+ kal_uint8 gprs_state;
+ kal_uint8 gprs_status; /* l4c_gprs_status_enum */
+ } mmi_nw_reg_state_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rat;
+ kal_int32 rssi_in_qdbm;
+ kal_int32 RSCP_in_qdbm;
+ kal_int32 EcN0_in_qdbm;
+ kal_uint8 ber;
+ kal_uint8 current_band;
+ } mmi_nw_rx_level_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 full_nw_nameP;
+ kal_uint8 full_nw_name_dcs;
+ kal_bool full_nw_name_add_ci;
+ kal_uint8 full_nw_name_len;
+ kal_uint8 full_nw_name[MAX_NW_NAME_LENGTH];
+ kal_uint8 short_nw_nameP;
+ kal_uint8 short_nw_name_dcs;
+ kal_bool short_nw_name_add_ci;
+ kal_uint8 short_nw_name_len;
+ kal_uint8 short_nw_name[MAX_NW_NAME_LENGTH];
+ kal_uint8 nw_time_zoneP;
+ kal_uint8 nw_time_zone;
+ kal_uint8 nw_time_zone_timeP;
+ l4c_nw_time_zone_time_struct nw_time_zone_time;
+ kal_uint8 lsa_idP;
+ kal_uint8 lsa_id_len;
+ kal_uint8 lsa_id[3];
+ kal_uint8 nw_day_light_saving_timeP;
+ kal_uint8 nw_day_light_saving_time;
+ kal_uint8 plmn[MAX_PLMN_LEN+1];
+ } mmi_nw_time_zone_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 network_mode;
+ } mmi_nw_sel_mode_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 service_status;
+ } mmi_nw_mmrr_service_status_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 no_ecc;
+ l4c_rac_ecc_number_struct ecc_list[16];
+ } mmi_nw_update_ecc_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 is_valid_ef_rat_mode;
+ kal_uint8 ef_rat_mode;
+ } mmi_nw_ef_rat_mode_change_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 gsm_band;
+ kal_uint8 umts_fdd_band[SIZE_OF_UMTS_BAND];
+ } mmi_nw_set_preferred_band_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 status;
+ } mmi_nw_set_preferred_band_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type; /* l4c_gprs_connect_type_enum */
+ } mmi_nw_set_gprs_connect_type_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_set_gprs_connect_type_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 type; /* l4c_gprs_connect_type_enum */
+ } mmi_nw_get_gprs_connect_type_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ } mmi_nw_pwroff_detach_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cfun_state;
+ } mmi_nw_cfun_state_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_cfun_state_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 efun_state;
+ } mmi_nw_efun_state_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_efun_state_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 rat_mode;
+ kal_uint8 prefer_rat; /* l4c_prefer_rat_enum */
+ } mmi_nw_get_rat_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 rat_mode;
+ kal_uint8 prefer_rat; /* l4c_prefer_rat_enum */
+ } mmi_nw_set_rat_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_set_rat_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 prefer_rat;
+ } mmi_nw_get_prefer_rat_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 prefer_rat;
+ } mmi_nw_set_prefer_rat_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_set_prefer_rat_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 hspa_mode;
+ kal_uint8 apply_mode;
+ } mmi_nw_set_hspa_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_set_hspa_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 hspa_mode;
+ } mmi_nw_get_hspa_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 preference;
+ } mmi_nw_set_plmn_list_preference_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_nw_set_plmn_list_preference_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 preference;
+ } mmi_nw_get_plmn_list_preference_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool force_send_SCRI;
+ } mmi_nw_end_ps_data_session_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result; /* end_session_result_enum */
+ } mmi_nw_end_ps_data_session_rsp_struct;
+#endif /* defined(__MOD_RAC__) */
+/* Security Related Messages */
+#if defined(__MOD_SMU__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 imsi[17];
+ } mmi_smu_get_imsi_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode; /* sim_security_operation_enum */
+ kal_uint8 type; /* smu_security_type_enum */
+ kal_uint8 passwd[MAX_SIM_PASSWD_LEN];
+ } mmi_smu_lock_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ sim_chv_info_struct chv_info;
+ } mmi_smu_lock_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 dial_mode; /* sim_dn_enum */
+ } mmi_smu_get_dial_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 pin_type; /* smu_security_type_enum */
+ kal_uint8 pin[17];
+ kal_uint8 new_pin[17];
+ } mmi_smu_verify_pin_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 next_type; /* smu_security_type_enum */
+ sim_chv_info_struct chv_info;
+ } mmi_smu_verify_pin_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 index;
+ kal_uint8 opcode;
+ kal_uint8 oper[MAX_PLMN_LEN+1];
+ kal_uint8 rat;
+ } mmi_smu_set_preferred_oper_list_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_smu_set_preferred_oper_list_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 index;
+ kal_uint16 num;
+ kal_uint16 file_idx_req;
+ } mmi_smu_get_preferred_oper_list_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 retnum;
+ kal_uint8 oper_list[MAX_SUPPORT_EF_PLMNSEL_REC*7];
+ kal_uint8 rat_list[MAX_SUPPORT_EF_PLMNSEL_REC*2];
+ kal_uint16 file_idx_rsp;
+ } mmi_smu_get_preferred_oper_list_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 pin[MAX_SIM_PASSWD_LEN];
+ kal_uint8 currency[3];
+ kal_uint8 ppu[18];
+ } mmi_smu_set_puc_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_smu_set_puc_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 currency[3];
+ kal_uint8 ppu[18];
+ } mmi_smu_get_puc_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ kal_uint8 old[MAX_SIM_PASSWD_LEN];
+ kal_uint8 new1[MAX_SIM_PASSWD_LEN];
+ kal_uint8 new2[MAX_SIM_PASSWD_LEN];
+ } mmi_smu_change_password_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ sim_chv_info_struct chv_info;
+ } mmi_smu_change_password_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ kal_uint8 on_off;
+ kal_uint8 pin[MAX_SIM_PASSWD_LEN];
+ } mmi_smu_set_dial_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_smu_set_dial_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint8 para;
+ kal_uint8 data[260];
+ kal_uint16 length;
+ kal_uint8 path[6];
+ kal_uint8 access_id;
+ } mmi_smu_write_sim_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 access_id;
+ } mmi_smu_write_sim_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint16 length;
+ kal_uint8 path[6];
+ kal_uint8 access_id;
+ } mmi_smu_read_sim_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint16 length;
+ kal_uint8 data[260];
+ kal_uint8 access_id;
+ } mmi_smu_read_sim_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_smu_power_off_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 is_sim_inserted;
+ kal_uint8 is_df_gsm_existed;
+ kal_uint8 is_df_cdma_existed;
+ } mmi_sim_get_gsmcdma_dualsim_info_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 op;
+ } mmi_sim_set_gsmcdma_dualsim_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 op;
+ kal_uint8 result;
+ } mmi_sim_set_gsmcdma_dualsim_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ kal_uint8 is_sim_change;
+ sim_chv_info_struct chv_info;
+ kal_uint8 cphs_retry_count;
+ } mmi_smu_password_required_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 length;
+ } mmi_smu_support_plmn_list_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 cause;
+ } mmi_smu_fail_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint8 path[6];
+ kal_uint8 access_id;
+ } mmi_smu_read_file_info_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint16 file_size;
+ kal_uint8 num_of_rec;
+ kal_uint8 access_id;
+ kal_uint8 file_type;
+ } mmi_smu_read_file_info_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ sim_chv_info_struct chv_info;
+ sim_chv_status_struct chv_status;
+ } mmi_smu_check_pin_status_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 num;
+
+ #ifdef __TC01__
+ sim_ecc_entry_struct ecc_entry[16];
+ #else
+ sim_ecc_entry_struct ecc_entry[5];
+ #endif
+ kal_uint8 language[5];
+ kal_uint8 alpha_set;
+ kal_uint8 language_ext[5];
+ kal_uint8 alpha_set_ext;
+ kal_uint8 sim_type;
+ } mmi_smu_startup_info_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool cipher_ind;
+ kal_uint8 is_gsm_conn_exist;
+ kal_uint8 gsm_cipher_cond;
+ kal_uint8 gprs_cipher_cond;
+ } mmi_smu_cipher_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 category;
+ kal_uint8 op;
+ kal_uint8 key[17];
+ kal_uint8 len;
+ kal_uint8 data[10];
+ } mmi_smu_set_personalization_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 category;
+ kal_uint8 op;
+ kal_uint8 state;
+ kal_uint8 retry_count;
+ kal_uint8 num_of_sets;
+ kal_uint8 space_of_sets;
+ } mmi_smu_set_personalization_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 state[7];
+ kal_uint8 retry_count[7];
+ kal_uint8 autolock_count[7];
+ kal_uint8 num_of_sets[7];
+ kal_uint8 total_size_of_cat[7];
+ kal_uint8 key_state[7];
+ kal_uint8 imsi[16];
+ kal_uint8 is_valid_gid1;
+ kal_uint8 ef_gid1;
+ kal_uint8 is_valid_gid2;
+ kal_uint8 ef_gid2;
+ kal_uint8 digits_of_mnc;
+ } mmi_smu_sml_status_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 next_type;
+ sim_chv_info_struct chv_info;
+ sim_chv_status_struct chv_status;
+ } mmi_smu_verify_pin_result_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_o2_prepaid_sim;
+ } mmi_sim_o2_prepaid_sim_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint16 file_idx;
+ } mmi_smu_read_sim_plmn_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint16 file_idx;
+ l4c_result_struct result;
+ kal_uint16 file_size;
+ kal_uint8 file[MAX_SUPPORT_PLMN_DATA_SIZE+0];
+ } mmi_smu_read_sim_plmn_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint16 file_idx;
+ kal_uint16 file_size;
+ kal_uint8 file[MAX_SUPPORT_PLMN_DATA_SIZE+0];
+ } mmi_smu_write_sim_plmn_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint16 file_idx;
+ l4c_result_struct result;
+ } mmi_smu_write_sim_plmn_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_sim_inserted;
+ kal_uint8 dual_sim_mode_setting;
+ } mmi_smu_reset_sim_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint8 access_id;
+ kal_uint8 path[6];
+ kal_uint8 pattern_len;
+ kal_uint8 data[MAX_SUPPORT_RECORD_SIZE+6];
+ } mmi_smu_search_record_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 access_id;
+ kal_uint8 record_num;
+ kal_uint8 record[258];
+ } mmi_smu_search_record_rsp_struct;
+#endif /* defined(__MOD_SMU__) */
+
+/* Short Message Service Related Messages */
+#if defined(__MOD_SMSAL__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 para_ind;
+ kal_uint8 profile_no;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 vp;
+ l4c_number_struct sc_addr;
+ l4_name_struct profile_name;
+ } mmi_sms_set_profile_params_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_sms_set_profile_params_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 profile_no;
+ } mmi_sms_get_profile_params_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 vp;
+ l4c_number_struct sc_addr;
+ l4_name_struct profile_name;
+ } mmi_sms_get_profile_params_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 para_ind;
+ kal_uint8 fo;
+ kal_uint8 bearer_service;
+ kal_uint8 status_report;
+ kal_uint8 reply_path;
+ } mmi_sms_set_common_params_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_sms_set_common_params_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 fo;
+ kal_uint8 bearer_service;
+ kal_uint8 status_report;
+ kal_uint8 reply_path;
+ } mmi_sms_get_common_params_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 fo;
+ kal_uint8 ct;
+ kal_uint8 mn;
+ kal_uint8 pid; /* smsal_pid_enum */
+ l4c_number_struct dest;
+ kal_uint8 length;
+ kal_uint8 cmd[SMSAL_MAX_CMD_LEN];
+ kal_uint8 source_id;
+ } mmi_sms_send_command_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 mr;
+ kal_uint8 scts[7];
+ kal_uint8 source_id;
+ } mmi_sms_send_command_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 del_flag; /* smsal_del_flag_enum */
+ kal_uint16 index;
+ kal_uint8 del_bitmap[480];
+ kal_uint8 source_id;
+ } mmi_sms_del_msg_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 del_flag; /* smsal_del_flag_enum */
+ kal_uint16 index;
+ kal_uint8 storage_type;
+ kal_uint8 del_bitmap[480];
+ kal_uint8 source_id;
+ } mmi_sms_del_msg_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 index;
+ kal_bool change_status;
+ kal_uint8 source_id;
+ } mmi_sms_get_msg_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ smsal_concat_struct concat_info;
+ kal_uint8 mti;
+ kal_uint8 status;
+ kal_uint8 storage_type;
+ kal_uint8 fo;
+ kal_uint8 scts[7];
+ l4c_number_struct sca_number;
+ l4c_number_struct addr_number;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 ori_dcs;
+ kal_uint8 vp;
+ kal_uint8 mr;
+ kal_uint8 dt[7];
+ kal_uint8 st;
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ kal_uint8 source_id;
+ kal_uint16 no_msg_data;
+ kal_uint8 msg_data[1];
+ } mmi_sms_get_msg_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 profile;
+ kal_uint16 reply_index;
+ l4c_number_struct dest;
+ kal_uint16 para;
+ l4c_number_struct sc_addr;
+ kal_uint8 vp;
+ kal_uint8 pid; /* smsal_pid_enum */
+ kal_uint8 udhi;
+ kal_uint8 dcs; /* smsal_dcs_enum */
+ kal_uint16 length;
+ kal_uint8 msg[SMSAL_MAX_MSG_LEN];
+ kal_uint8 seq_num;
+ kal_uint8 mms_mode;
+ kal_uint8 source_id;
+ kal_uint8 tp_srr;
+ kal_uint8 tp_rp;
+ } mmi_sms_send_msg_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 mr;
+ kal_uint8 scts[7];
+ kal_uint8 seq_num;
+ smsal_concat_struct concat_info;
+ kal_uint8 source_id;
+ } mmi_sms_send_msg_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 profile;
+ kal_uint8 status;
+ l4c_number_struct dest;
+ kal_uint16 para;
+ l4c_number_struct sc_addr;
+ kal_uint8 scts[7];
+ kal_uint8 vp;
+ kal_uint8 pid; /* smsal_pid_enum */
+ kal_uint8 udhi;
+ kal_uint8 dcs; /* smsal_dcs_enum */
+ kal_uint16 index;
+ kal_uint16 length;
+ kal_uint8 msg[SMSAL_MAX_MSG_LEN];
+ kal_uint8 source_id;
+ kal_uint8 tp_srr;
+ kal_uint8 tp_mms;
+ kal_uint8 tp_rp;
+ kal_uint8 tp_sri;
+ } mmi_sms_set_msg_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint16 index;
+ kal_uint8 status;
+ kal_uint8 storage_type;
+ kal_uint8 source_id;
+ } mmi_sms_set_msg_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mem1; /* smsal_storage_enum */
+ kal_uint8 mem2; /* smsal_storage_enum */
+ kal_uint8 mem3; /* smsal_storage_enum */
+ } mmi_sms_set_preferred_storage_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ smsal_prefer_storage_struct param;
+ } mmi_sms_set_preferred_storage_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ smsal_prefer_storage_struct info;
+ } mmi_sms_get_preferred_storage_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool enable;
+ kal_uint32 port_num;
+ kal_uint16 mod_id;
+ kal_uint8 source_id;
+ } mmi_sms_reg_port_num_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint32 ret_port_num;
+ kal_uint16 ret_mod_id;
+ kal_uint8 ret_source_id;
+ } mmi_sms_reg_port_num_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 fo;
+ kal_uint8 scts[7];
+ l4c_number_struct sca_number;
+ l4c_number_struct oa_number;
+ kal_uint8 pid; /* smsal_pid_enum */
+ kal_uint8 dcs; /* smsal_dcs_enum */
+ kal_uint8 ori_dcs;
+ kal_uint16 index;
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ kal_uint8 mti;
+ kal_uint8 display_type;
+ kal_uint8 storage_type;
+ kal_uint32 concat_info;
+ kal_uint16 no_msg_data;
+ kal_uint8 msg_data[1];
+ } mmi_sms_deliver_msg_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 fo;
+ kal_uint8 scts[7];
+ kal_uint8 dt[7];
+ l4c_number_struct ra_number;
+ kal_uint8 st; /* smsal_st_enum */
+ kal_uint8 pid; /* smsal_pid_enum */
+ kal_uint8 dcs; /* smsal_dcs_enum */
+ kal_uint8 mr;
+ kal_uint16 no_msg_data;
+ kal_uint8 msg_data[1];
+ } mmi_sms_status_report_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ } mmi_sms_mem_available_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ } mmi_sms_mem_exceed_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ } mmi_sms_mem_full_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_ready_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 dest_mod_id;
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ kal_uint8 dcs;
+ kal_uint8 mti;
+ kal_uint16 message_len;
+ kal_uint32 concat_info[(sizeof(smsal_concat_struct)+3)/4];
+ l4c_number_struct oa;
+ kal_uint8 scts[7];
+ kal_uint8 msg_data[SMSAL_MAX_MSG_LEN];
+ } mmi_sms_app_data_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_bool is_sim_card_change;
+ kal_uint16 in_sim_no;
+ kal_uint16 in_me_no;
+ kal_uint16 out_sim_no;
+ kal_uint16 out_me_no;
+ kal_uint16 unread_msg_num;
+ kal_uint16 total_sim_num;
+ kal_uint16 total_me_num;
+ } mmi_sms_get_msg_num_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 profile_no;
+ kal_uint8 name_len;
+ } mmi_sms_get_profile_num_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 seq_num;
+ } mmi_sms_abort_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 source_id;
+ kal_uint8 seq_num;
+ } mmi_sms_abort_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 line_no;
+ kal_uint8 waiting_num;
+ kal_uint8 ind_type;
+ kal_bool is_show_num;
+ kal_bool is_clear;
+ kal_bool is_from_storage;
+ kal_uint8 msp_no;
+ kal_uint8 ext_indicator;
+ l4csmsal_msg_waiting_ind_ext_struct msg_waiting[5];
+ } mmi_sms_msg_waiting_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 evm_pdu_type;
+ kal_uint8 multi_sub_profile;
+ kal_uint8 is_store;
+ kal_uint8 vm_almost_full;
+ kal_uint8 vm_full;
+ kal_uint8 vm_status_ext_flg;
+ l4_addr_bcd_struct vm_access_addr;
+ kal_uint8 number_of_vm_unread;
+ kal_uint8 number_of_vm_notify;
+ kal_uint8 number_of_vm_delete;
+ kal_uint8 l4_status;
+ kal_uint8 vm_status_ext_len;
+ kal_uint8* vm_status_ext_data;
+ smsal_evmi_msg_struct* vm_msg[32];
+ } mmi_sms_enhanced_voice_mail_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mailbox_num;
+ l4c_number_struct num_addr;
+ l4_name_struct name;
+ } mmi_sms_set_mailbox_address_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_sms_set_mailbox_address_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 mailbox_num;
+ kal_uint8 alpha_length;
+ kal_uint8 max_num_length;
+ l4c_sms_mailbox_info_struct mailbox_info[SMSAL_MAX_MAILBOX_NUM];
+ } mmi_sms_get_mailbox_address_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 msp_no;
+ smsal_mbi_struct mbi;
+ } mmi_sms_set_mbi_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_sms_set_mbi_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 msp_num;
+ smsal_mbi_struct mbi[4];
+ } mmi_sms_get_mbi_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 msp_no;
+ } mmi_sms_set_msp_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_set_msp_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 msp_no;
+ } mmi_sms_get_msp_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_uint16 index;
+ kal_uint8 status;
+ kal_uint8 del_bitmap[480];
+ } mmi_sms_sync_msg_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_sync_msg_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 source_id;
+ kal_uint8 seq_num;
+ } mmi_sms_send_abort_finish_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_startup_read_next_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 startup_seq_num;
+ kal_uint8 mti;
+ kal_uint8 status;
+ kal_uint8 storage_type;
+ kal_uint8 fo;
+ kal_uint16 index;
+ kal_uint8 scts[7];
+ l4c_number_struct addr_number;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 ori_dcs;
+ kal_uint8 vp;
+ kal_uint8 mr;
+ kal_uint8 dt[7];
+ kal_uint8 st;
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ kal_uint32 concat_info;
+ kal_uint16 no_msg_data;
+ kal_uint8 msg_data[1];
+ } mmi_sms_startup_read_msg_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_uint8 dst_storage;
+ kal_uint16 src_index;
+ kal_uint8 source_id;
+ } mmi_sms_copy_msg_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint8 action;
+ kal_uint8 dst_storage;
+ kal_uint16 src_index;
+ kal_uint16 dst_index;
+ kal_uint8 source_id;
+ } mmi_sms_copy_msg_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 change_status;
+ kal_uint8 status;
+ kal_uint16 start_index;
+ kal_uint8 no_msg;
+ } mmi_sms_get_msg_list_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ smsal_inbox_list_struct inbox;
+ smsal_outbox_list_struct outbox;
+ } mmi_sms_get_msg_list_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 index;
+ kal_bool addr_present;
+ l4c_number_struct da;
+ kal_uint8 source_id;
+ kal_uint8 profile_no_tag;
+ kal_uint8 profile_no;
+ } mmi_sms_send_from_storage_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 mr;
+ kal_uint16 index;
+ smsal_concat_struct concat_info;
+ kal_uint8 source_id;
+ } mmi_sms_send_from_storage_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 new_status;
+ kal_uint16 index;
+ kal_uint8 source_id;
+ } mmi_sms_set_status_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 error_cause;
+ kal_uint16 index;
+ kal_uint8 source_id;
+ } mmi_sms_set_status_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ } mmi_sms_send_smma_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 source_id;
+ } mmi_sms_send_smma_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 line_no;
+ kal_uint8 waiting_num;
+ kal_uint8 ind_type;
+ } mmi_sms_set_msg_waiting_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 source_id;
+ kal_uint8 line_no;
+ kal_uint8 waiting_num;
+ kal_uint8 ind_type;
+ } mmi_sms_set_msg_waiting_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 index;
+ } mmi_sms_read_raw_data_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint16 index;
+ kal_uint8 status;
+ kal_uint8 storage_type;
+ kal_uint16 data_len;
+ kal_uint8 data[1];
+ } mmi_sms_read_raw_data_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 storage_type;
+ kal_uint16 data_len;
+ kal_uint8 data[1];
+ } mmi_sms_write_raw_data_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint16 index;
+ kal_uint8 status;
+ kal_uint8 storage_type;
+ } mmi_sms_write_raw_data_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 atcmd_type;
+ kal_uint8 domain_type;
+ kal_uint8 memory_type;
+ kal_uint8 stat_type;
+ kal_uint32 atcmd_index;
+ l4c_usm_cmgw_struct cmgw_message;
+ kal_uint32 cmgd_delflag;
+ l4c_usm_cnmi_struct cnmi_parameter;
+ } mmi_usm_at_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 atcmd_type; /* rmmi_usm_atcmd_enum */
+ kal_uint32 atcmd_index;
+ kal_uint8 tag_type; /* rmmi_usm_message_stat_enum */
+ kal_bool iscomplete;
+ kal_uint8 pdu_length;
+ kal_uint8 pdu[176];
+ l4c_usm_cnmi_struct cnmi_parameter;
+ l4c_usm_cmss_struct cmss_struct;
+ kal_uint8 result;
+ kal_uint16 cause;
+ } mmi_usm_general_rcode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 reply_index;
+ kal_uint16 data_len;
+ kal_uint8 source_id;
+ kal_uint8 seq_num;
+ kal_uint8 mms_mode;
+ kal_uint16 length;
+ kal_uint8 pdu[176];
+ } mmi_sms_send_pdu_msg_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 source_id;
+ kal_uint8 mr;
+ kal_uint8 seq_num;
+ } mmi_sms_send_pdu_msg_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint32 sm_max_num;
+ kal_uint32 sm_current_num;
+ kal_uint32 me_max_num;
+ kal_uint32 me_current_num;
+ kal_uint32 sr_max_num;
+ kal_uint32 sr_current_num;
+ } mmi_sms_sync_msg_storage_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint32 error_cause;
+ kal_uint8 mem;
+ kal_uint32 index;
+ kal_uint8 uid;
+ kal_uint8 msg_class;
+ kal_bool is_msg_wait;
+ kal_uint8 msg_wait_store;
+ } mmi_sms_send_deliver_report_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint32 error_cause;
+ kal_uint8 uid;
+ } mmi_sms_send_deliver_report_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint32 error_cause;
+ } mmi_sms_mt_sms_final_ack_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 id;
+ kal_uint8 mti;
+ kal_uint16 pdu_length;
+ kal_uint8 pdu[176];
+ } mmi_sms_new_msg_pdu_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 msg_length;
+ kal_uint8 msg_data[88];
+ } mmi_sms_cb_msg_pdu_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 sim_status;
+ } mmi_sms_startup_read_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_startup_read_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ } mmi_sms_get_mem_status_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint32 sim_max_num;
+ kal_uint32 sim_current_num;
+ kal_uint32 me_max_num;
+ kal_uint32 me_current_num;
+ kal_uint32 sr_max_num;
+ kal_uint32 sr_current_num;
+ kal_uint8 source_id;
+ } mmi_sms_get_mem_status_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_get_mem_status_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mem_status;
+ } mmi_sms_mem_status_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_mem_status_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 mem;
+ kal_uint32 index;
+ kal_uint8 esmss_mode;
+ } mmi_sms_atcmd_cmgr_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint8 source_id;
+ kal_uint8 mem;
+ kal_uint32 index;
+ kal_uint8 stat;
+ kal_uint16 pdu_length;
+ kal_uint8 pdu[176];
+ } mmi_sms_atcmd_cmgr_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_atcmd_cmgr_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 mem;
+ kal_uint8 stat;
+ kal_uint8 esmss_mode;
+ } mmi_sms_atcmd_cmgl_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mem;
+ kal_uint32 index;
+ kal_uint8 stat;
+ kal_uint16 pdu_length;
+ kal_uint8 pdu[176];
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint8 is_complete;
+ kal_uint8 source_id;
+ } mmi_sms_atcmd_cmgl_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_atcmd_cmgl_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 mem;
+ kal_uint16 index;
+ kal_uint8 delflag;
+ } mmi_sms_atcmd_cmgd_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint8 source_id;
+ } mmi_sms_atcmd_cmgd_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_atcmd_cmgd_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 mem;
+ kal_uint8 stat;
+ kal_uint16 pdu_length;
+ kal_uint8 pdu[176];
+ } mmi_sms_atcmd_cmgw_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint32 index;
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint8 source_id;
+ } mmi_sms_atcmd_cmgw_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_atcmd_cmgw_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 mem;
+ } mmi_sms_atcmd_eqsi_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mem;
+ kal_uint32 begin;
+ kal_uint32 end;
+ kal_uint32 used;
+ kal_uint8 source_id;
+ } mmi_sms_atcmd_eqsi_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sms_atcmd_eqsi_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 bearer;
+ } mmi_sms_atcmd_cgsms_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 profile;
+ } mmi_sms_atcmd_csas_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_etws_needed;
+ kal_bool is_etws_security_needed;
+ kal_bool is_etws_testing_on;
+ kal_bool write_to_nvram;
+ } mmi_sms_etws_setting_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_sms_etws_setting_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 warning_type;
+ kal_uint16 message_id;
+ kal_uint16 serial_nubmer;
+ kal_bool is_security_information_valid;
+ kal_uint8 etws_security_information[L4C_MAX_ETWS_SECURITY_INFO_LEN];
+ kal_uint8 plmn_id[6];
+ } mmi_sms_etws_info_ind_struct;
+#endif /* defined(__MOD_SMSAL__) */
+/* GPRS Related Messages */
+#if defined(__MOD_TCM__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 opcode;
+ kal_uint8 cid;
+ } mmi_ps_act_test_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_act_test_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_prim_pdp_info_struct pdp;
+ } mmi_ps_set_definition_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_set_definition_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_sec_pdp_info_struct pdp;
+ } mmi_ps_set_sec_definition_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_set_sec_definition_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+#if defined(__LTE_RAT__)
+ l4c_tft_struct_only_for_mmi tft;
+#else
+ l4c_tft_struct tft;
+#endif
+ } mmi_ps_set_tft_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_set_tft_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+#if defined(__LTE_RAT__)
+ l4c_tft_struct_only_for_mmi info;
+#else
+ l4c_tft_struct info;
+#endif
+ } mmi_ps_get_tft_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 qos_type;
+ l4c_qos_struct min;
+ } mmi_ps_set_qos_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_set_qos_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 qos_type;
+ l4c_eqos_struct min;
+ } mmi_ps_set_eqos_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_set_eqos_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cid;
+ kal_uint32 size;
+ } mmi_ps_send_data_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_ps_send_data_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 status; /* l4c_gprs_status_enum */
+ kal_uint8 cell_support_egprs;
+ kal_uint8 data_speed_support;
+ kal_uint8 data_bearer_capability;
+ } mmi_ps_gprs_status_update_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 entry_num;
+ } mmi_ps_get_gprs_empty_profile_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ l4c_gprs_statistics_info_struct counter_info;
+ } mmi_ps_get_gprs_data_counter_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_gprs_account_info_struct gprs_account;
+ kal_uint8 profile_type;
+ } mmi_ps_set_gprs_data_account_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_set_gprs_data_account_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 profile_id;
+ kal_uint8 profile_type;
+ } mmi_ps_get_gprs_data_account_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ l4c_gprs_account_info_struct gprs_account;
+ } mmi_ps_get_gprs_data_account_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_reset_gprs_data_counter_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 dial_mode;
+ } mmi_ps_get_acl_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 on_off;
+ kal_uint8 pin[MAX_SIM_PASSWD_LEN];
+ } mmi_ps_set_acl_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_ps_set_acl_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 start_index;
+ kal_uint16 max_read_entries;
+ } mmi_ps_get_acl_entries_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint16 start_index;
+ kal_uint16 num_of_entries;
+ kal_bool more_flag;
+ l4c_tcm_acl_entry_struct acl_list[TCM_MAX_PEER_ACL_ENTRIES];
+ } mmi_ps_get_acl_entries_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_tcm_acl_entry_struct acl_entry;
+ } mmi_ps_add_acl_entry_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ } mmi_ps_add_acl_entry_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 index;
+ l4c_tcm_acl_entry_struct acl_entry;
+ } mmi_ps_set_acl_entry_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ } mmi_ps_set_acl_entry_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool del_all;
+ kal_uint16 index;
+ l4c_tcm_acl_entry_struct acl_entry;
+ } mmi_ps_del_acl_entry_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ } mmi_ps_del_acl_entry_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_ps_leave_acl_menu_rsp_struct;
+#endif /* defined(__MOD_TCM__) */
+/* STK/SAT Related Messages */
+#if defined(__SAT__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 priority;
+ kal_uint8 clear_text_type;
+ kal_uint8 immediate_res;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint16 no_text_string;
+ kal_uint8* text_string;
+ kal_uint8 dcs_of_text_string;
+ } mmi_sat_display_text_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 additional_info;
+ } mmi_sat_display_text_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_display_text_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 type_of_input;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint16 no_text_string;
+ kal_uint8* text_string;
+ kal_uint8 dcs_of_text_string;
+ } mmi_sat_get_inkey_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 is_yes_selected;
+ kal_uint8 dcs_of_text_string;
+ kal_uint8 no_text_string;
+ kal_uint8 text_string[1];
+ } mmi_sat_get_inkey_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_get_inkey_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 type_of_input;
+ kal_uint8 is_input_revealed_to_user;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 len_of_min_input;
+ kal_uint8 len_of_max_input;
+ kal_uint16 no_text_string;
+ kal_uint8* text_string;
+ kal_uint8 dcs_of_text_string;
+ kal_uint16 no_default_text;
+ kal_uint8* default_text;
+ kal_uint8 dcs_of_default_text;
+ } mmi_sat_get_input_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 dcs_of_text_string;
+ kal_uint8 no_text_string;
+ kal_uint8 text_string[1];
+ } mmi_sat_get_input_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_get_input_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 is_softkey_preferred;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 num_of_item;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint16 no_item_data;
+ kal_uint8* item_data;
+ kal_uint8 no_item_icon_id_list;
+ kal_uint8* item_icon_id_list;
+ kal_uint8 item_icon_list_attr;
+ kal_uint8 no_next_action_ind_list;
+ kal_uint8* next_action_ind_list;
+ } mmi_sat_setup_menu_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ } mmi_sat_setup_menu_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_setup_menu_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 is_softkey_preferred;
+ kal_uint8 type_of_presentation;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 is_item_id_available;
+ kal_uint8 item_id;
+ kal_uint8 num_of_item;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint16 no_item_data;
+ kal_uint8* item_data;
+ kal_uint8 item_icon_list_attr;
+ kal_uint8 no_item_icon_id_list;
+ kal_uint8* item_icon_id_list;
+ kal_uint8 no_next_action_ind_list;
+ kal_uint8* next_action_ind_list;
+ } mmi_sat_select_item_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 item_id;
+ } mmi_sat_select_item_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_select_item_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 tone_id;
+ kal_uint32 duration;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 is_alpha_id_present;
+ } mmi_sat_play_tone_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ } mmi_sat_play_tone_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_play_tone_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 item_id;
+ kal_uint8 is_help_info_requested;
+ } mmi_sat_menu_select_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ } mmi_sat_menu_select_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_evdl_idle_screen_available_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 iso639_language[2];
+ } mmi_sat_language_selection_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_language_selection_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 browser_termination_cause;
+ } mmi_sat_evdl_browser_termination_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_evdl_browser_termination_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 condition;
+ kal_uint32 duration;
+ kal_uint8 type_of_modification;
+ kal_uint8 is_icon1_available;
+ sat_icon_struct icon_info1;
+ kal_uint8 is_icon2_available;
+ sat_icon_struct icon_info2;
+ kal_uint8 size_of_ccp;
+ kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+ kal_uint8 size_of_subaddr;
+ kal_uint8 subaddr[MAX_CC_SUB_ADDR_BCD_LEN];
+ kal_uint8 is_alpha_id1_present;
+ kal_uint8 no_alpha_id1;
+ kal_uint8* alpha_id1;
+ kal_uint8 dcs_of_alpha_id1;
+ kal_uint8 no_addr;
+ kal_uint8* addr;
+ kal_uint8 is_alpha_id2_present;
+ kal_uint8 no_alpha_id2;
+ kal_uint8* alpha_id2;
+ kal_uint8 dcs_of_alpha_id2;
+ } mmi_sat_call_setup_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ 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;
+ } mmi_sat_call_setup_stage1_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_result_struct result;
+ kal_uint8 terminal_res;
+ kal_uint8 additional_res;
+ } mmi_sat_call_setup_stage1_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ } mmi_sat_call_setup_stage2_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_call_setup_stage2_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 is_sms_packed_required;
+ kal_uint8 size_of_addr;
+ kal_uint8 addr[MAX_CC_ADDR_BCD_LEN];
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_sms_tpdu;
+ kal_uint8* sms_tpdu;
+ } mmi_sat_send_sms_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 is_sms_packed_required;
+ kal_uint8 no_addr;
+ kal_uint8 addr[MAX_CC_ADDR_BCD_LEN];
+ kal_uint8 tpdu_length;
+ kal_uint8 tpdu[175];
+ } mmi_sat_send_sms_stage1_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+ kal_uint16 cause;
+ } mmi_sat_send_sms_stage1_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ } mmi_sat_send_sms_stage2_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_send_sms_stage2_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 type_of_modification;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_ss_string;
+ kal_uint8* ss_string;
+ } mmi_sat_send_ss_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 input[MAX_DIGITS_USSD];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 type_of_modification;
+ } mmi_sat_send_ss_stage1_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+ kal_uint8 length;
+ kal_uint8 addition_info[255];
+ } mmi_sat_send_ss_stage1_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 size_of_additional_info;
+ kal_uint8 additional_info[255];
+ } mmi_sat_send_ss_stage2_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_send_ss_stage2_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 type_of_modification;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_ussd_string;
+ kal_uint8* ussd_string;
+ kal_uint8 dcs_of_ussd_string;
+ } mmi_sat_send_ussd_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 input[MAX_DIGITS_USSD];
+ kal_uint8 dcs;
+ kal_uint8 length;
+ kal_uint8 type_of_modification;
+ } mmi_sat_send_ussd_stage1_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+ kal_uint8 length;
+ kal_uint8 addition_info[255];
+ } mmi_sat_send_ussd_stage1_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 size_of_additional_info;
+ kal_uint8 additional_info[255];
+ } mmi_sat_send_ussd_stage2_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_send_ussd_stage2_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mmi_info_type;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 len_of_address;
+ kal_uint8 address[MAX_CC_ADDR_BCD_LEN];
+ kal_uint8 ton;
+ } mmi_sat_mmi_info_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ } mmi_sat_setup_idle_display_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_setup_idle_display_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint16 no_text_string;
+ kal_uint8* text_string;
+ kal_uint8 dcs_of_text_string;
+ } mmi_sat_setup_idle_display_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_at_command;
+ kal_uint8* at_command;
+ } mmi_sat_run_at_command_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_dtmf;
+ kal_uint8* dtmf;
+ } mmi_sat_send_dtmf_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 dtmf_digit[MAX_CC_DTMF_BCD_LEN];
+ kal_uint8 no_digit;
+ } mmi_sat_send_dtmf_stage1_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 terminal_res;
+ kal_uint8 cause;
+ } mmi_sat_send_dtmf_stage1_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 additional_info;
+ } mmi_sat_send_dtmf_stage2_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_send_dtmf_stage2_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_abort_dtmf_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ } mmi_sat_lang_notify_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_lang_notify_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_language_specified;
+ kal_uint8 iso639_language[2];
+ } mmi_sat_lang_notify_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 additional_res;
+ } mmi_sat_launch_browser_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_launch_browser_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 browser_mode;
+ kal_uint8 browser_identity;
+ kal_uint8 provision_file_id[10];
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_url;
+ kal_uint8* url;
+ kal_uint8 no_bearer;
+ kal_uint8* bearer;
+ kal_uint16 no_gateway;
+ kal_uint8* gateway;
+ kal_uint8 dcs_of_gateway;
+ } mmi_sat_launch_browser_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 is_full_changed;
+ kal_uint8 refresh_type;
+ kal_uint8 num_of_file;
+ kal_uint16 file_list[120];
+ } mmi_sat_sim_file_change_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 event_list[3];
+ sat_procomm_struct proactive_cmd;
+ } mmi_sat_setup_event_list_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 lang[2];
+ } mmi_sat_provide_lang_info_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 is_successful;
+ } mmi_sat_file_change_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 length;
+ kal_uint8 envelope_data[255];
+ } mmi_sat_envelope_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 sim_result;
+ kal_uint16 length;
+ kal_uint8 envelope_rsp[256];
+ } mmi_sat_envelope_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 length;
+ kal_uint8 terminal_rsp[255];
+ } mmi_sat_terminal_response_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_sat_terminal_response_rsp_struct;
+#endif /* defined(__SAT__) */
+/* STK_CE */
+#if defined(__SATCE__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 bearer_type;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ } mmi_sat_open_channel_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 additional_info;
+ } mmi_sat_open_channel_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 terminal_res;
+ } mmi_sat_open_channel_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ } mmi_sat_close_channel_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ } mmi_sat_close_channel_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 terminal_res;
+ } mmi_sat_close_channel_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ } mmi_sat_send_data_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ } mmi_sat_send_data_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 terminal_res;
+ kal_uint8 cause;
+ } mmi_sat_send_data_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ } mmi_sat_recv_data_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ } mmi_sat_recv_data_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 terminal_res;
+ kal_uint8 cause;
+ } mmi_sat_recv_data_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 state;
+ } mmi_sat_notify_mmi_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 bearer;
+ sat_gprs_bearer_para_struct gprs_bearer;
+ sat_csd_bearer_para_struct csd_bearer;
+ kal_uint16 buffer_size;
+ kal_uint8 size_of_address;
+ kal_uint8 addr[MAX_SIM_ADDR_BCD_LEN];
+ kal_uint8 size_of_subaddr;
+ kal_uint8 subaddr[MAX_SIM_ADDR_BCD_LEN];
+ kal_uint32 duration1;
+ kal_uint32 duration2;
+ kal_uint16 no_username;
+ kal_uint8 username[16];
+ kal_uint8 dcs_of_username;
+ kal_uint16 no_passwd;
+ kal_uint8 passwd[16];
+ kal_uint8 dcs_of_passwd;
+ kal_uint8 protocol_type;
+ kal_uint16 port_num;
+ kal_int16 no_local_addr;
+ kal_uint8 local_addr[16];
+ kal_int16 no_dest_addr;
+ kal_uint8 dest_addr[16];
+ kal_uint8 dns[4];
+ kal_uint8 apn[50];
+ kal_uint8 apn_length;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ } mmi_rsat_open_channel_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_id;
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ } mmi_rsat_close_channel_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_id;
+ kal_uint8 ch_type;
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 data_size;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_data;
+ kal_uint8* data;
+ } mmi_rsat_send_data_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_id;
+ kal_uint8 ch_type;
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 ch_data_length;
+ kal_uint8 no_alpha_id;
+ kal_uint8* alpha_id;
+ kal_uint8 is_alpha_id_present;
+ kal_uint8 dcs_of_alpha_id;
+ } mmi_rsat_recv_data_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_id;
+ } mmi_rsat_ch_status_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 channel_status[2];
+ kal_uint8 channel_data_length;
+ } mmi_rsat_evdl_data_available_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_evdl_data_available_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 channel_status[2];
+ } mmi_rsat_evdl_channel_status_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_evdl_channel_status_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_status[2];
+ kal_uint8 bearer;
+ sat_gprs_bearer_para_struct bearer_para;
+ kal_uint16 buffer_size;
+ } mmi_rsat_open_gprs_channel_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_open_gprs_channel_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_status[2];
+ kal_uint8 bearer;
+ sat_csd_bearer_para_struct bearer_para;
+ kal_uint16 buffer_size;
+ } mmi_rsat_open_csd_channel_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_open_csd_channel_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_status[2];
+ kal_uint8 bearer;
+ kal_uint16 buffer_size;
+ } mmi_rsat_open_server_mode_channel_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_open_server_mode_channel_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ } mmi_rsat_close_channel_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_close_channel_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_type;
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_data_length;
+ } mmi_rsat_send_data_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_send_data_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_type;
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_data_length;
+ kal_uint8 no_data;
+ kal_uint8* data;
+ } mmi_rsat_recv_data_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_recv_data_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 channel_status[2];
+ } mmi_rsat_ch_status_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_rsat_ch_status_res_rsp_struct;
+#endif /* defined(__SATCE__) */
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 sn;
+ kal_uint16 mi;
+ kal_uint8 dcs;
+ kal_uint8 page;
+ kal_uint8 pages;
+ kal_uint16 msg_length;
+ kal_uint8 msg_data[1];
+ } mmi_cb_msg_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 on_off;
+ } mmi_cb_subscribe_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_cb_subscribe_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ l4c_cb_info_struct info;
+ } mmi_sms_set_cb_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_sms_set_cb_mode_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 mode;
+ kal_uint8 total_mid_num;
+ kal_uint8 total_mir_num;
+ kal_uint8 total_dcs_num;
+ l4c_cb_info_struct info;
+ } mmi_sms_get_cb_mode_rsp_struct;
+/* Engineer Mode */
+#if defined(__EM_MODE__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mod_id;
+ kal_uint32 em_info;
+ peer_buff_struct* info;
+ } mmi_em_status_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 info_request[EM_INFO_REQ_NUM];
+ } mmi_em_update_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 cause;
+ } mmi_em_update_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ vt_em_config_struct em_config;
+ } mmi_vt_em_get_config_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ vt_em_config_struct em_config;
+ } mmi_vt_em_set_config_req_struct;
+#endif /* defined(__EM_MODE__) */
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 keypad_status;
+ kal_uint8 keypad_code;
+ kal_uint32 time_stamp;
+ } mmi_em_keypad_event_output_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_em_keypad_event_output_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 color;
+ } mmi_em_lcm_test_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ } mmi_em_keypad_event_act_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ } mmi_factory_test_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 op;
+ kal_uint8 category;
+ kal_uint8 param1;
+ kal_uint8 param2;
+ kal_uint8 param3;
+ kal_uint8 param4[10];
+ } mmi_set_mmi_default_prof_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 status;
+ } mmi_em_cell_resel_suspend_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 cause;
+ } mmi_em_cell_resel_suspend_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 cause;
+ } mmi_em_cell_resel_resume_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_bool turn_on_or_off;
+ kal_bool band_indicator;
+ kal_uint16 lock_arfcn;
+ } mmi_em_get_cell_lock_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool turn_on_or_off;
+ kal_bool band_indicator;
+ kal_uint16 lock_arfcn;
+ } mmi_em_set_cell_lock_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_em_set_cell_lock_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint32 enabled_bitmap;
+ kal_bool band_indicator;
+ kal_uint16 lock_arfcn[MAX_NUM_CELL_LOCK_ARFCN];
+ } mmi_em_ext_get_cell_lock_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint32 enabled_bitmap;
+ kal_bool band_indicator;
+ kal_uint16 lock_arfcn[MAX_NUM_CELL_LOCK_ARFCN];
+ } mmi_em_ext_set_cell_lock_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_em_ext_set_cell_lock_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ kal_uint16 red;
+ kal_uint16 green;
+ kal_uint16 blue;
+ } mmi_em_rgb_test_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 lcd_test_mode;
+ } mmi_em_lcd_test_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_on;
+ kal_uint8 num_of_mod;
+ module_type mod_list[20];
+ } mmi_em_nw_event_notify_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_em_nw_event_notify_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 group_id;
+ kal_uint32 event_id;
+ } mmi_em_nw_event_notify_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 em_feature;
+ kal_uint8 em_feature_state;
+ } mmi_em_feature_command_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 em_feature;
+ } mmi_em_feature_command_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 conf_test_mode;
+ kal_uint32 test_profile;
+ } mmi_em_get_conform_test_param_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 conf_test_mode;
+ kal_uint32 test_profile;
+ } mmi_em_set_conform_test_param_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int8 result;
+ } mmi_em_set_conform_test_param_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 test_count;
+ kal_uint8 test_list[L4C_EM_QUICK_TEST_MAX_COUNT];
+ } mmi_em_quick_test_report_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_uint8 line_num;
+ } mmi_cphs_display_cfu_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 is_spn_valid;
+ kal_uint8 is_spn_RPLMN_required;
+ kal_uint8 spn[LEN_OF_SPN];
+ kal_uint8 is_opname_valid;
+ kal_uint8 opname[21];
+ kal_uint8 is_sopname_valid;
+ kal_uint8 sopname[11];
+ kal_uint8 no_msisdn;
+ l4csmu_addr_struct msisdn[2];
+ kal_uint8 no_info_num;
+ l4csmu_info_num_struct info_num[20];
+ kal_uint8 is_valid_csp;
+ kal_uint8 csp[22];
+ kal_uint8 is_puct_valid;
+ kal_uint8 ef_puct[5];
+ kal_uint8 is_autolock_enable;
+ kal_uint8 autolock_result;
+ kal_uint8 autolock_remain;
+ kal_bool is_valid_ef_acting_hplmn;
+ kal_uint8 ef_acting_hplmn[3];
+ kal_uint8 imsi[17];
+ kal_uint8 digits_of_mnc;
+ kal_bool is_usim;
+ kal_bool is_valid_ef_ehplmn;
+ kal_uint8 num_of_ehplmn;
+ kal_uint8 ef_ehplmn[12];
+ } mmi_cphs_mmi_info_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 line_id;
+ } mmi_cphs_update_als_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+ kal_uint16 cause;
+ } mmi_cphs_update_als_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 line;
+ } mmi_cphs_display_als_ind_struct;
+/* IrDA */
+#if defined(__IRDA_SUPPORT__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 wait_duration;
+ } mmi_eq_irda_open_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_irda_open_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_irda_close_rsp_struct;
+#endif /* defined(__IRDA_SUPPORT__) */
+/* USB */
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 folderId;
+ kal_uint8 retrievalMode;
+ } wap_mmc_read_folder_status_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint32 numOfMsg;
+ kal_uint32 numOfUnreadMsg;
+ kal_uint8 mmsHomeDirectory[100];
+ kal_uint8 infoFilePath[100];
+ } wap_mmc_read_folder_status_output_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 filePath[100];
+ } wap_mmc_upload_msg_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint32 msgId;
+ kal_uint8 storage;
+ } wap_mmc_upload_msg_output_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint32 msgId;
+ kal_uint8 folderId;
+ } wap_mmc_delete_msg_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ } wap_mmc_delete_msg_output_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint32 msgId;
+ } wap_mmc_read_msg_path_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint32 msgId;
+ kal_uint8 path[100];
+ } wap_mmc_read_msg_path_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool mode;
+ kal_uint8 dcs;
+ kal_uint8 text[UEM_GREETING_LEN];
+ kal_uint8 length;
+ } mmi_eq_query_greeting_text_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 lang_code;
+ } mmi_eq_query_language_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool mode;
+ } mmi_eq_query_silent_mode_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool mode;
+ } mmi_eq_query_vibrator_mode_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_date;
+ } mmi_eq_query_date_time_format_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_date;
+ kal_uint8 mode;
+ } mmi_eq_query_date_time_format_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool mode;
+ } mmi_eq_query_mute_mode_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 poweroff;
+ kal_uint8 poweron;
+ kal_uint8 rtc_timer;
+ } mmi_power_reset_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 string[80];
+ } mmi_at_general_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 pwd[16];
+ } mmi_factory_restore_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 mode;
+ kal_uint16 index;
+ kal_uint8 file_path[50];
+ } mmi_eq_vcard_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_bool result;
+ kal_uint8 file_path[50];
+ } mmi_eq_vcard_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint16 vcal_type;
+ kal_uint16 index;
+ kal_uint8 file_path[50];
+ } mmi_eq_vcalendar_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_bool result;
+ kal_uint8 cause;
+ kal_uint8 total;
+ kal_uint8 used;
+ kal_uint8 index;
+ kal_uint8 file_path[50];
+ } mmi_eq_vcalendar_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool enable;
+ } mmi_eq_str_enable_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 length;
+ kal_uint8 data_string[250];
+ } mmi_eq_str_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 length;
+ kal_uint8 data_string[250];
+ } mmi_eq_str_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_uint8 source_id;
+ kal_bool cmd_from_bt;
+ kal_uint8 length;
+ kal_uint8 number[50];
+ kal_uint8 opcode;
+ kal_uint8 call_id;
+ } mmi_ucm_at_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 result;
+ kal_uint8 cause;
+ } mmi_ucm_at_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 source_id;
+ kal_uint8 type;
+ kal_uint8 call_id;
+ kal_uint8 call_type;
+ l4c_number_struct number;
+ } mmi_ucm_general_rcode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 ind_type;
+ kal_uint8 event;
+ } mmi_ucm_hf_ciev_rcode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 style;
+ kal_uint8 volume;
+ kal_uint8 out_path;
+ kal_uint16 sound_id;
+ } mmi_eq_ringtone_play_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 cause;
+ } mmi_eq_ringtone_play_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool is_force;
+ kal_wchar* jad_file_name;
+ kal_wchar* jar_file_name;
+ } mmi_java_local_install_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint32 error_code;
+ } mmi_java_local_install_res_req_struct;
+/* Bluetooth */
+#if defined(__BT_SUPPORT__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 name[32];
+ kal_uint8 bd_addr[6];
+ kal_uint8 dcs;
+ } mmi_l4_bt_fcty_set_param_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 bd_addr[6];
+ kal_uint8 pin_code[17];
+ } mmi_l4_bt_loopback_test_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ } mmi_l4_bt_set_vr_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ } mmi_l4_bt_set_vr_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_l4_bt_set_vr_rsp_struct;
+#endif /* defined(__BT_SUPPORT__) */
+/* HOMEZONE */
+#if defined(__HOMEZONE_SUPPORT__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool action;
+ kal_bool is_hz;
+ kal_uint8 tag[12];
+ } mmi_hz_tag_ind_struct;
+#endif /* defined(__HOMEZONE_SUPPORT__) */
+/* CTM */
+#if defined(__CTM_SUPPORT__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ } mmi_ctm_set_status_req_struct;
+#endif /* defined(__CTM_SUPPORT__) */
+/* VOIP */
+#if defined(__VOIP__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 action;
+ void* string_ptr;
+ void* node_ptr;
+ void* err_id;
+ } mmi_voip_at_call_ctrl_approve_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_voip_at_call_ctrl_approve_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ void* string_ptr;
+ void* node_ptr;
+ void* err_id;
+ } mmi_voip_at_call_ctrl_approve_ind_struct;
+#endif /* defined(__VOIP__) */
+/* GEMINI */
+#if defined(__GEMINI__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 new_sim_config;
+ } mmi_smu_sim_status_update_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 sim_inserted_status;
+ kal_uint8 dual_sim_mode_setting;
+ } mmi_smu_sim_status_update_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool on_off;
+ } mmi_nw_set_monitor_peer_pch_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_bool on_off;
+ } mmi_nw_get_monitor_peer_pch_rsp_struct;
+#endif /* defined(__GEMINI__) */
+/* A-GPS Control Plane LCS Service */
+#if defined(__AGPS_CONTROL_PLANE__)
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ L4C_SS_LocationNotificationArg notification;
+ kal_uint8 ss_id;
+ } mmi_ss_mtlr_begin_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ L4C_SS_LocationNotificationRes response;
+ kal_uint8 ss_id;
+ } mmi_ss_mtlr_begin_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 ss_id;
+ } mmi_ss_mtlr_begin_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ L4C_SS_LCS_AreaEventRequestArg aerq;
+ kal_uint8 ss_id;
+ } mmi_ss_aerq_begin_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 ss_id;
+ } mmi_ss_aerq_begin_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 ss_id;
+ } mmi_ss_aerq_begin_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ L4C_SS_LCS_AreaEventReportArg aerp;
+ kal_uint8 ss_id;
+ kal_uint8 is_initial;
+ } mmi_ss_aerp_begin_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ kal_uint8 ss_id;
+ } mmi_ss_aerp_begin_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 ss_id;
+ } mmi_ss_aerp_end_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ } mmi_ss_aerp_end_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ L4C_SS_LCS_AreaEventCancellationArg aecl;
+ kal_uint8 ss_id;
+ } mmi_ss_aecl_begin_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 ss_id;
+ } mmi_ss_aecl_begin_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint8 ss_id;
+ } mmi_ss_aecl_begin_res_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ L4C_SS_LCS_MOLRArg molr;
+ kal_uint8 ss_id;
+ kal_uint8 is_initial;
+ } mmi_ss_molr_begin_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint16 cause;
+ L4C_SS_LCS_MOLRRes molr_res;
+ kal_uint8 ss_id;
+ } mmi_ss_molr_begin_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 cause;
+ kal_uint8 ss_id;
+ } mmi_ss_molr_end_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ } mmi_ss_molr_end_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 enable;
+ } mmi_agps_enable_disable_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 sib15_current_deciphering_key[7];
+ kal_uint8 sib15_next_deciphering_key[7];
+ kal_uint8 sib15_ciphering_key_flag;
+ } mmi_agps_key_update_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 is_abort_molr;
+ } mmi_agps_cp_abort_req_struct;
+#endif /* defined(__AGPS_CONTROL_PLANE__) */
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ } mmi_eq_ram_usage_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int8 result;
+ kal_uint32 used;
+ } mmi_eq_ram_usage_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ kal_uint8 mids_idx;
+ kal_uint16 midlet_idx;
+ kal_uint8 mode;
+ kal_uint16 appName[260];
+ } mmi_eq_launch_app_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int8 result;
+ } mmi_eq_launch_app_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ kal_uint8 op;
+ } mmi_eq_app_info_output_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ kal_uint16 log[1000];
+ } mmi_eq_app_info_output_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_uint16 x_coords;
+ kal_uint16 y_coords;
+ } mmi_eq_screen_touch_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int8 result;
+ } mmi_eq_screen_touch_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 orient;
+ } mmi_eq_scrnorient_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int8 result;
+ kal_uint8 mode;
+ } mmi_eq_scrnorient_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int8 result;
+ kal_uint16 max_x;
+ kal_uint16 max_y;
+ } mmi_eq_scrnsize_query_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 tscrn;
+ } mmi_eq_scrntch_event_act_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 action;
+ kal_uint16 x_coords;
+ kal_uint16 y_coords;
+ } mmi_eq_scrntch_event_output_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 op;
+ } mmi_eq_screen_shot_req_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int8 result;
+ kal_uint8 op;
+ kal_wchar file_path[30];
+ } mmi_eq_screen_shot_res_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+ } mmi_eq_uart_transfer_ind_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+ } mmi_eq_uart_transfer_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_uart_transfer_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+ } mmi_eq_uart_release_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ } mmi_eq_uart_release_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8* melody;
+ kal_uint32 len;
+ kal_uint8 format;
+ kal_uint8 play_style;
+ kal_uint16 identifier;
+ kal_uint32 start_offset;
+ kal_uint32 end_offset;
+ kal_uint8 volume;
+ kal_uint8 output_path;
+ kal_uint8 blocking;
+ } mmi_eq_play_audio_stream_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_play_audio_stream_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+ } mmi_eq_stop_audio_stream_rsp_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 lcd_type;
+ kal_uint8 lcd_contrast;
+ } mmi_eq_lcd_set_contrast_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_int32 result;
+ } mmi_eq_lcd_set_contrast_rsp_struct;
+
+/* Below are NOT script generated code struct */
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 scrnid;
+#if defined(__COSMOS_MMI__) || defined(__MMI_VUI_LAUNCHER__)
+ kal_char file[30];
+#endif
+ }mmi_inject_string_rsp_struct;
+
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint16 ec_data;
+ } mmi_ecompass_msg_struct;
+
+ /* V33 BT test mode support */
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 bd_addr[6];
+ } bt_adv_test_mode_req_struct;
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 mode;
+ kal_uint16 cause;
+ } bt_adv_test_mode_cnf_struct;
+
+#endif
diff --git a/mcu/interface/protocol/general/mmi_sm_enums.h b/mcu/interface/protocol/general/mmi_sm_enums.h
new file mode 100644
index 0000000..a0949ed
--- /dev/null
+++ b/mcu/interface/protocol/general/mmi_sm_enums.h
@@ -0,0 +1,172 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mmi_sm_enums.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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _MMI_SM_ENUMS_H
+#define _MMI_SM_ENUMS_H
+
+#define MAX_CONFIG_OPTION_LEN 251
+
+//#include "custom_nvram_editor_data_item.h"
+//------------------------------ suggest Add ------------------------------
+//#include "mmi2abm_struct.h"
+//------------------------------ suggest Add ------------------------------
+#include "ps_public_enum.h" /* Poying: MAUI_02735345 */
+#include "mmi_sm_enums_public.h"
+/* Modified by: CH_Liang 2005.04.26
+ * Description: the length of user_name and password are configurable.
+ */
+#define TCM_MAX(A, B) (((A) > (B)) ? (A):(B))
+
+/* Poying: MSBB. Move to ps_public_enum.h. */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#if (MAX_CONFIG_OPTION_CONTENT_LEN > LIMIT_CONFIG_OPTION_CONTENT_LEN)
+/* under construction !*/
+#endif
+#if (TCM_MAX_GPRS_APN_LEN > 100)
+/* under construction !*/
+#endif
+/* under construction !*/
+#endif
+
+typedef enum
+{
+ MS_INITIATED = 0,
+ NW_INITIATED = 1
+}initiated_enum;
+
+typedef enum
+{
+ NO_TEARDOWN = 0,
+ TEARDOWN_ALL = 1
+}teardown_enum;
+
+typedef enum
+{
+ NO_OP_TFT = 0,
+ CREATE_NEW_TFT = 1,
+ DELETE_EXISTING_TFT = 2,
+ ADD_PKT_FILTER_TO_TFT = 3,
+ REPLACE_PKT_FILTER_IN_TFT = 4,
+ DELETE_PKT_FILTER_FROM_TFT = 5
+} tft_opcode_enum;
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/mnsms_struct.h b/mcu/interface/protocol/general/mnsms_struct.h
new file mode 100644
index 0000000..b30185a
--- /dev/null
+++ b/mcu/interface/protocol/general/mnsms_struct.h
@@ -0,0 +1,333 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mnsms_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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 : mnsms_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _MNSMS_STRUCT_H
+#define _MNSMS_STRUCT_H
+
+#include "ps_public_struct.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "smsal_l4c_enum.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 error_type; /* cp or rp error*/
+ kal_uint16 error_cause;
+} sms_err_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+ kal_uint8 seq_num;
+} sms_submit_abort_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result; /* Indicate the result of aborting request*/
+} sms_submit_abort_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+ kal_uint8 src_id; /* identify background sending or else */
+ kal_uint8 mms_mode; /* more msg to send */
+ sms_addr_struct sc_addr; /* service centre address*/
+ kal_uint8 seq_num;
+ kal_bool is_stk_sms;
+} sms_submit_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+ kal_bool is_nack_converted_to_ack; /*Identify whether to consider RP_ERROR as RP_ACK or not */
+} sms_submit_report_ack_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+ sms_err_info_struct err_info;
+} sms_submit_report_nack_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+ sms_addr_struct sc_addr; /* service centre address*/
+} sms_deliver_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 sc_addr[22]; /* service centre address */
+
+ kal_uint8 reply_flag; /* whether reply is sought*/
+ kal_uint8 udh_p; /* indicates presence of user data header*/
+ kal_uint8 status_rep_flag; /* whether status reports are sought*/
+ kal_uint8 mms; /* more message to send*/
+ kal_uint8 orig_addr[22]; /* assumed to be byte-packed*/
+ kal_uint8 pid; /* to be bit-wise decoded*/
+ kal_uint8 dcs; /* to be bit-wise decoded*/
+ kal_uint16 year;
+ kal_uint8 nMonth;
+ kal_uint8 nDay;
+ kal_uint8 nHour;
+ kal_uint8 nMin;
+ kal_uint8 nSec;
+
+ kal_uint8 user_data[161]; /* can have user data header also*/
+} smsal_tst_deliver_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+} sms_deliver_report_ack_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+} sms_deliver_report_nack_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+ sms_addr_struct sc_addr; /* service centre address*/
+} sms_status_report_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi; /* short message identifier*/
+ kal_uint8 src_id; /* identify background sending or else */
+ kal_uint8 mms_mode; /* more msg to send */
+ sms_addr_struct sc_addr; /* service centre address*/
+ kal_uint8 seq_num;
+} sms_command_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result; /* Indicate the result of mem avl. notif.*/
+} sms_mem_avl_notif_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mr; /* Message Reference*/
+ kal_uint8 src_id; /* identify background sending or else */
+ kal_uint8 req_type; /* Indicate request type: send or about mem avl. notif.*/
+} sms_mem_avl_notif_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mode; /* mode of MMS*/
+} sms_more_msg_send_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 service_bit_mask; // bit mask to indicate which var should be updated
+ kal_uint8 service; /* preferred service*/
+ kal_uint8 nr_service; /* NR preferred service*/
+} sms_service_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 tl_id; /* re-try tl_id */
+} sms_try_next_bearer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 smi;
+ kal_uint8 result;
+ kal_uint32 cause;
+} sms_mt_final_ack_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool enable;
+} sms_enable_sms_over_sgs_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 bitmap;
+} sms_set_stub_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ l4csms_cs_call_status_enum cs_call_status;
+} l4csms_cs_call_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ vdm_call_domain_enum call_domain_name;
+} l4csms_call_domain_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 ref; /* concat. message reference*/
+ kal_uint8 total_seg; /* total segments*/
+ kal_uint32 seg_bitmask;/* bit1 is the 1st segment and so on, bit=0 not received,bit=1 received */
+} sms_imcsms_mt_long_sms_info_ind_struct,imcsms_sms_mt_long_sms_info_ind_struct;
+
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/mrs_as_inter_core_def.h b/mcu/interface/protocol/general/mrs_as_inter_core_def.h
new file mode 100644
index 0000000..3df9ece
--- /dev/null
+++ b/mcu/interface/protocol/general/mrs_as_inter_core_def.h
@@ -0,0 +1,195 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mrs_as_inter_core_def.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ******************************************************************************/
+
+#ifndef __MRS_AS_INTER_CORE_DEF_H__
+#define __MRS_AS_INTER_CORE_DEF_H__
+
+#include "as_inter_core_enum.h"
+
+/*****************************************************************************
+ * GSM Inter-Core Definitions
+ *****************************************************************************/
+
+/*****************************************************************************
+ * UMTS Inter-Core Definitions
+ *****************************************************************************/
+
+ /*****************************************************************************
+ * LTE Inter-Core Definitions
+ *****************************************************************************/
+#define LTE_BAND_NUM SIZE_LTE_BAND * 8
+#define LTE_BAND_NUM_EXTENDED ( SIZE_LTE_BAND_MASK_TABLE_EXTENDED * 8 )
+
+#define EAS_BAND_INFO_SHIFT 5
+#define EAS_POWER_CLASS_MASK 0x0c
+#define LTE_BAND_INVALID 0xffff
+#define NR_BAND_INVALID 0xffff
+#define LTE_FREQ_INVALID 0xffffffff
+#define NR_FREQ_INVALID 0xffffffff
+#define LTE_EARFCN_INVALID 0xffffffff
+#define EAS_EF_ERRC_PARTIAL_BAND_NUM 10
+#define IRAT_EUTRA_CAPA_MAX_LEN 1000 //should be smaller than "URR MAX_L2_EXTERNAL_SDU_SIZE(1800) - other RAT self capability size"
+#define NR_QUERY_EUTRA_CAPA_MAX_LEN 999 //TBD
+#define NR_BAND_INFO_SHIFT 41
+
+#ifdef __CHANNEL_LOCK__
+#define MRS_CH_LOCK_PCI_INVALID 0xFFFF
+#define MRS_CH_LOCK_PSC_INVALID 0xFFFF
+#define MRS_CH_LOCK_NR_PCI_MAX 1007
+#define MRS_CH_LOCK_PCI_MAX 503
+#define MRS_CH_LOCK_PSC_MAX 511
+#define MRS_CH_LOCK_BAND_INDICATOR_DCS1800 0
+#define MRS_CH_LOCK_BAND_INDICATOR_PCS1900 1
+
+/* LOCK MODE */
+#define MRS_CH_LOCK_IDLE_ONLY 0x0
+#define MRS_CH_LOCK_IDLE_MR 0x1
+#define MRS_CH_LOCK_IDLE_HOCCO 0x2
+#define MRS_CH_LOCK_IDLE_CONNECTED 0x3
+#define MRS_CH_LOCK_MODE_UNCHANGED 0xFF
+
+/* Procedures on Locked Channel */
+#define MRS_CH_LOCK_MR_LOCK_BIT 0x01
+#define MRS_CH_LOCK_HO_CCO_LOCK_BIT 0x02
+
+#ifdef __WHITE_CELL_LOCK__
+#define MRS_WH_CELL_LOCK_STATE_INACTIVE 0x00
+#define MRS_WH_CELL_LOCK_STATE_EAS_LOCK 0x01
+#define MRS_WH_CELL_LOCK_STATE_NRAS_LOCK 0x02
+#endif /* __WHITE_CELL_LOCK__ */
+
+#endif /* __CHANNEL_LOCK__ */
+#endif /* __MRS_AS_INTER_CORE_DEF_H__ */
diff --git a/mcu/interface/protocol/general/mrs_as_inter_core_enum.h b/mcu/interface/protocol/general/mrs_as_inter_core_enum.h
new file mode 100644
index 0000000..f274fa8
--- /dev/null
+++ b/mcu/interface/protocol/general/mrs_as_inter_core_enum.h
@@ -0,0 +1,140 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mrs_as_inter_core_enum.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ******************************************************************************/
+
+#ifndef __MRS_AS_INTER_CORE_ENUM_H__
+#define __MRS_AS_INTER_CORE_ENUM_H__
+
+/*****************************************************************************
+ * GSM Inter-Core Definitions
+ *****************************************************************************/
+typedef enum{
+ UTRA_POWER_CLASS_1,
+ UTRA_POWER_CLASS_2,
+ UTRA_POWER_CLASS_3,
+ UTRA_POWER_CLASS_3bis,
+ UTRA_POWER_CLASS_4,
+ UTRA_POWER_CLASS_INVALID = -1
+} mrs_utra_power_class_enum;
+
+/*****************************************************************************
+ * UMTS Inter-Core Definitions
+ *****************************************************************************/
+ typedef enum
+ {
+ GSM_POWER_CLASS_1,
+ GSM_POWER_CLASS_2,
+ GSM_POWER_CLASS_3,
+ GSM_POWER_CLASS_4,
+ GSM_POWER_CLASS_5,
+ GSM_POWER_CLASS_INVALID = -1 /* for non-supported band */
+} mrs_gsm_power_class_enum;
+
+ /*****************************************************************************
+ * LTE Inter-Core Definitions
+ *****************************************************************************/
+
+ /*****************************************************************************
+ * NR Inter-Core Definitions
+ *****************************************************************************/
+typedef enum
+{
+ MRS_NR_SCS_15 = 0,
+ MRS_NR_SCS_30 = 1,
+ MRS_NR_SCS_60 = 2,
+ MRS_NR_SCS_120 = 3,
+ MRS_NR_SCS_240 = 4,
+ MRS_NR_SCS_TYPE_NUM,
+ MRS_NR_SCS_UNKNOWN = 0xFF
+} mrs_nr_scs_enum;
+
+ /****************************************************************************
+ * CHANNEL LOCK FEATURE
+ ****************************************************************************/
+#ifdef __CHANNEL_LOCK__
+typedef enum
+{
+ MRS_CH_LOCK_STATE_INACTIVE,
+ MRS_CH_LOCK_STATE_GAS_LOCK,
+ MRS_CH_LOCK_STATE_UAS_LOCK,
+ MRS_CH_LOCK_STATE_EAS_LOCK,
+ MRS_CH_LOCK_STATE_NRAS_LOCK
+} MRS_CH_LOCK_STATE;
+
+#endif /* __CHANNEL_LOCK__ */
+#endif /* __MRS_AS_INTER_CORE_ENUM_H__ */
diff --git a/mcu/interface/protocol/general/mrs_as_inter_core_struct.h b/mcu/interface/protocol/general/mrs_as_inter_core_struct.h
new file mode 100644
index 0000000..291fc98
--- /dev/null
+++ b/mcu/interface/protocol/general/mrs_as_inter_core_struct.h
@@ -0,0 +1,167 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * mrs_as_inter_core_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *------------------------------------------------------------------------------
+ * $Log$
+ *
+ * 09 18 2020 tom.wu
+ * [MOLY00554348] [Colgin] cell measure and white cell lock feature development
+ *
+ * .
+ *
+ * 09 24 2019 stanley.su
+ * [MOLY00441807] [MT6297][CBRS]NR Channel lock
+ *
+ * Channel lock interface(SWRD)
+ *
+ * 11 10 2016 vend_mtb_aricent_05
+ * [MOLY00212319] [MT6293] Channel Lock feature porting and enhancement -MRS
+ *
+ * .
+ *
+ *
+ ******************************************************************************/
+
+#ifndef __MRS_AS_INTER_CORE_STRUCT_H__
+#define __MRS_AS_INTER_CORE_STRUCT_H__
+
+#include "as_inter_core_enum.h"
+
+
+#include "mrs_as_inter_core_enum.h"
+#include "global_type.h"
+
+/*****************************************************************************
+ * GSM Inter-Core Definitions
+ *****************************************************************************/
+/* power_class_struct is used by ERRC */
+typedef struct{
+ mrs_gsm_power_class_enum pow_class_band450;
+ mrs_gsm_power_class_enum pow_class_band480;
+ mrs_gsm_power_class_enum pow_class_band710;
+ mrs_gsm_power_class_enum pow_class_band750;
+ mrs_gsm_power_class_enum pow_class_band810;
+ mrs_gsm_power_class_enum pow_class_band850;
+ mrs_gsm_power_class_enum pow_class_band900P;
+ mrs_gsm_power_class_enum pow_class_band900E;
+ mrs_gsm_power_class_enum pow_class_band900R;
+ mrs_gsm_power_class_enum pow_class_band1800;
+ mrs_gsm_power_class_enum pow_class_band1900;
+}mrs_gsm_power_class_struct;
+
+/*****************************************************************************
+ * UMTS Inter-Core Definitions
+ *****************************************************************************/
+
+ /*****************************************************************************
+ * LTE Inter-Core Definitions
+ *****************************************************************************/
+
+ /*****************************************************************************
+ * NR Inter-Core Definitions
+ *****************************************************************************/
+
+ /****************************************************************************
+ * CHANNEL LOCK FEATURE
+ ****************************************************************************/
+#ifdef __CHANNEL_LOCK__
+
+#define MRS_CH_LOCK_NR_MAX_NUM 32
+#define MRS_CH_LOCK_LTE_MAX_NUM 32
+
+typedef struct
+{
+ kal_uint16 nr_band_indicator;
+ NRARFCN nr_dl_arfcn;
+ kal_uint16 pci;
+ mrs_nr_scs_enum scs;
+} mrs_ch_lock_nras_info_struct;
+
+typedef struct
+{
+ EARFCN earfcn;
+ kal_uint16 pci;
+} mrs_ch_lock_eas_info_struct;
+
+typedef struct
+{
+ kal_uint16 uarfcn;
+ kal_uint16 psc;
+} mrs_ch_lock_uas_info_struct;
+
+typedef struct
+{
+ kal_uint16 arfcn;
+ kal_uint8 band_indicator;
+} mrs_ch_lock_gas_info_struct;
+
+
+typedef struct
+{
+ MRS_CH_LOCK_STATE lock_state;
+
+ kal_uint8 nras_info_num;
+ mrs_ch_lock_nras_info_struct nras_info_list[MRS_CH_LOCK_NR_MAX_NUM];
+
+ kal_uint8 eas_info_num;
+ mrs_ch_lock_eas_info_struct eas_info_list[MRS_CH_LOCK_LTE_MAX_NUM];
+
+ mrs_ch_lock_uas_info_struct uas_info;
+ mrs_ch_lock_gas_info_struct gas_info;
+ kal_uint8 lock_mode;
+#ifdef __WHITE_CELL_LOCK__
+ kal_uint8 wh_cell_lock_state;
+#endif /*__WHITE_CELL_LOCK__ */
+} mrs_ch_lock_info_struct;
+#endif /*__CHANNEL_LOCK__ */
+
+#endif /* __MRS_AS_INTER_CORE_STRUCT_H__ */
diff --git a/mcu/interface/protocol/general/mspm_public_api.h b/mcu/interface/protocol/general/mspm_public_api.h
new file mode 100644
index 0000000..5ad32ae
--- /dev/null
+++ b/mcu/interface/protocol/general/mspm_public_api.h
@@ -0,0 +1,358 @@
+/******************************************************************************
+* 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).
+*
+*******************************************************************************/
+
+#ifndef MSPM_PUBLIC_STRUCT_H
+#define MSPM_PUBLIC_STRUCT_H
+
+#include "kal_public_defs.h"
+
+/********************************************
+ * MACROS *
+ ********************************************/
+#if !defined(__MTK_TARGET__) && !defined(__UE_SIMULATOR__)
+#ifndef MSPM_UT
+#define MSPM_UT
+#endif
+#endif
+
+#define MSPM_MAX_PRIORITY_LEVEL 32
+
+/********************************************
+ * TYPE DEFINITIONS & ENUMS *
+ ********************************************/
+typedef enum
+{
+ MSPM_PROC_ATTR_AS_CONNECTION,
+ MSPM_PROC_ATTR_C2K_AS_CONNECTION,
+ MSPM_PROC_ATTR_PRIORITY_CAN_CHANGE,
+ MSPM_PROC_ATTR_PREEMPTED_BY_PEER_NOT_ALLOWED,
+ MSPM_PROC_ATTR_OCCUPY_RF_IMMEDIATELY,
+ MSPM_PROC_ATTR_SUSPEND_PEER_SIM,
+ MSPM_PROC_ATTR_23G_NAS_PS_SIG,
+ MSPM_PROC_ATTR_MAX_NUM
+} mspm_procedure_attribute_enum;
+
+typedef enum
+{
+ MSPM_CELLULAR_EMERGENCY_CALL_SESSION,
+ MSPM_CELLULAR_CALL_SESSION,
+ MSPM_CELLULAR_CONNECTED_CALL_SESSION,
+ MSPM_CELLULAR_SRVCC_CALL_SESSION,
+ MSPM_VODATA_CALL_SESSION,
+ MSPM_VODATA_EMERGENCY_CALL_SESSION,
+ MSPM_IMS_CALL_ALT1,
+ MSPM_IMS_CALL_ALT2,
+ MSPM_BIP,
+ MSPM_CS_CALL,
+ MSPM_SMS,
+ MSPM_MMS,
+ MSPM_DDM_RETRY_FOR_SUSPEND,
+ MSPM_CISS,
+ MSPM_XCAP_SS,
+ MSPM_DATA_SIM,
+ MSPM_RSIM,
+ MSPM_PROTECT_NON_PS_REGISTRATION,
+ MSPM_AFR_SIM_PROTECT,
+ MSPM_1X_CS_CALL,
+ MSPM_IMS_SMS,
+ MSPM_IMS_C2K_SMS,
+ MSPM_IMS_STK_SMS,
+ MSPM_IMS_CMSS_SMS,
+ MSPM_IMS_UTK_SMS,
+ MSPM_IMS_RE_REG,
+ MSPM_IMS_REG_INITIAL,
+ MSPM_IMS_REG_INITIAL_LOW,
+ MSPM_IMS_SUBSCRIBE,
+ MSPM_IMS_USSD,
+ MSPM_IMS_CONF_SUBSCRIBE,
+ MSPM_IMS_MWI_SUBSCRIBE,
+ MSPM_IMS_CALLPULL_SUBSCRIBE,
+ MSPM_SM_ACT_PDP,
+ MSPM_SM_ACT_PDP_TOP,
+ MSPM_SM_ACT_PDP_RETRY,
+ MSPM_SM_MOD_PDP,
+ MSPM_SM_DEACT_PDP,
+ MSPM_SM_DEACT_PDP_RETRY,
+ MSPM_C2K_ACT_PDP,
+ MSPM_C2K_DEACT_PDP,
+ MSPM_C2K_HIGH_DATA,
+ MSPM_C2K_SMS,
+ MSPM_MM_LU,
+ MSPM_MM_IMSI_DETACH,
+ MSPM_MM_CSFB,
+ MSPM_MM_3G_CS_PAGING,
+ MSPM_MM_CS_SIG,
+ MSPM_MM_PS_SIG,
+ MSPM_GMM_ATTACH,
+ MSPM_GMM_ATTACH_POWER_ON,
+ MSPM_GMM_ATTACH_RETRANSMIT,
+ MSPM_GMM_ATTACH_NON_DATA_SIM,
+ MSPM_GMM_ATTACH_NON_DATA_SIM_LOW,
+ MSPM_AFR_CONN_PROTECT,
+ MSPM_GMM_DETACH,
+ MSPM_GMM_DETACH_POWER_OFF,
+ MSPM_GMM_RAU,
+ MSPM_GMM_RAU_DDS,
+ MSPM_GMM_RAU_RETRANSMIT,
+ MSPM_GMM_RAU_SYNC,
+ MSPM_GMM_RAU_NON_DATA_SIM,
+ MSPM_GMM_SERVICE,
+ MSPM_GMM_COMBINED_ATTACH,
+ MSPM_GMM_COMBINED_ATTACH_POWER_ON,
+ MSPM_GMM_COMBINED_DETACH,
+ MSPM_GMM_COMBINED_DETACH_POWER_OFF,
+ MSPM_GMM_COMBINED_RAU,
+ MSPM_ESM_ACT_PDN,
+ MSPM_ESM_ACT_PDN_IMS,
+ MSPM_ESM_ACT_PDN_EMC,
+ MSPM_ESM_ACT_BEARER,
+ MSPM_ESM_MOD_BEARER,
+ MSPM_ESM_DEACT_PDN,
+ MSPM_ESM_IMS_DED,
+ MSPM_EMM_ATTACH,
+ MSPM_EMM_DETACH,
+ MSPM_EMM_DETACH_POWER_OFF,
+ MSPM_EMM_DETACH_RSIM,
+ MSPM_EMM_TAU,
+ MSPM_EMM_TAU_IRAT,
+ MSPM_EMM_TAU_DRB,
+ MSPM_EMM_TAU_RSIM,
+ MSPM_EMM_TAU_RETRY,
+ MSPM_EMM_TAU_CSFB,
+ MSPM_EMM_TAU_AFR_NR,
+ MSPM_EMM_SERVICE,
+ MSPM_EMM_SERVICE_RSIM,
+ MSPM_EMM_EXT_SERVICE,
+ MSPM_EMM_PS_PAGING,
+ MSPM_EMM_SMC,
+ MSPM_5G_AS_CONNECTION,
+ MSPM_5G_AS_INACTIVE,
+ MSPM_5G_AS_RNA_UPDATE,
+ MSPM_4G_AS_CONNECTION,
+ MSPM_4G_AS_CONNECTION_ABORT,
+ MSPM_4G_AS_RECONFIG_DURING,
+ MSPM_3G_AS_CONNECTION,
+ MSPM_3G_AS_PCH,
+ MSPM_2G_AS_CONNECTION_CS,
+ MSPM_2G_AS_CONNECTION_PS,
+ MSPM_C1X_AS_CONNECTION_CS,
+ MSPM_C1X_AS_CONNECTION_SRLTE_ENHAN,
+ MSPM_C1X_AS_CONNECTION_PS,
+ MSPM_CDO_AS_CONNECTION_PS,
+ MSPM_CDO_AS_CONNECTION_HPS,
+ MSPM_VGSM_EST_EMERGENCY_PDU_SESSION,
+ MSPM_VGSM_EST_IMS_PDU_SESSION,
+ MSPM_VGSM_EST_PDUS,
+ MSPM_VGSM_MOD_PDUS,
+ MSPM_VGSM_REL_PDUS,
+ MSPM_VGSM_CONN_REQ,
+ MSPM_VGMM_REG,
+ MSPM_VGMM_DEREG,
+ MSPM_VGMM_DEREG_POWER_OFF,
+ MSPM_VGMM_REG_UPDATE,
+ MSPM_VGMM_REG_UPDATE_IRAT,
+ MSPM_VGMM_REG_UPDATE_UP,
+ MSPM_VGMM_SERVICE,
+ MSPM_VGMM_PS_PAGING,
+ MSPM_VGMM_PS_PAGING_NON_PREEMPTED,
+ MSPM_VGMM_PAGING_DRB,
+ MSPM_VGMM_IRAT_PROTECT,
+ MSPM_ERRC_TEST_RFDB_CHECK,
+ MSPM_ERRC_CONFIG_RFDB_CHECK,
+ MSPM_NRRC_TEST_RFDB_CHECK,
+ MSPM_NRRC_CONFIG_RFDB_CHECK,
+ MSPM_EL1_RFDB_CONFIG,
+ MSPM_NL1_RFDB_CONFIG,
+ MSPM_MT_SGS_SMS,
+ MSPM_MT_IMS_SMS,
+ MSPM_GEMINI_ABORT_4G_PROTECT,
+ MSPM_NRRC_ODSI_RA_HIGH,
+ MSPM_NRRC_ODSI_RA_LOW,
+ MSPM_PRE_GEMINI_ABORT,
+ MSPM_IMSM_ACT,
+ MSPM_ERRC_NR_GAPLESS_SFTD,
+ MSPM_NFR_PROTECT,
+ MSPM_OTTAPP_VV_TOP,
+ MSPM_LPP_POS_MEAS_MEM_SHARE,
+ MSPM_N3GPP_ACT_PDN,
+ MSPM_N3GPP_ACT_PDN_IMS,
+ MSPM_N3GPP_ACT_PDN_EMC,
+ MSPM_N3GPP_IKEV2_EXCHANGE,
+ MSPM_PROCEDURE_ENUM_NUM
+} mspm_procedure_enum;
+
+typedef enum
+{
+ MSPM_SIM1 = 0,
+ MSPM_SIM2 = 1,
+ MSPM_SIM3 = 2,
+ MSPM_SIM4 = 3,
+ MSPM_SIM_NONE = 0xFF
+} mspm_sim_index_enum;
+
+typedef enum
+{
+ MSPM_VC_CAUSE_NONE,
+ MSPM_VC_CAUSE_SRLTE,
+ MSPM_VC_CAUSE_RSIM,
+ MSPM_VC_CAUSE_SIGNALING
+} mspm_vc_cause_enum;
+
+// MSG_ID_MSPM_SESSION_START_REQ
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_sim_index_enum sim_index; // sim_index in current module
+ mspm_procedure_enum procedure; // procedure to be started
+ kal_bool is_block_waiting; // TRUE : Source module will wait CNF message with result success for "wait_time" seconds
+ // False : MSPM will reply the request immediately no matter success or fail CNF
+ kal_uint32 wait_time; // "wait_time" seconds for "wait_time">0. In case "wait_time" = 0, it means infinitely wait
+} mspm_session_start_req_struct;
+
+// MSG_ID_MSPM_SESSION_START_CNF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_procedure_enum procedure;
+ kal_bool result; // TRUE : success; FALSE : fail
+} mspm_session_start_cnf_struct;
+
+// MSG_ID_MSPM_SESSION_START_NTF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_sim_index_enum sim_index;
+ mspm_procedure_enum procedure;
+} mspm_session_start_ntf_struct;
+
+// MSG_ID_MSPM_SESSION_END_NTF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_sim_index_enum sim_index;
+ mspm_procedure_enum procedure;
+ kal_bool is_extend_timer_disable;
+} mspm_session_end_ntf_struct;
+
+// MSG_ID_MSPM_AS_SESSION_START_REQ
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_sim_index_enum sim_index;
+ mspm_procedure_enum procedure;
+ kal_uint32 mspm_ack_id; // 0: from primitive, none 0: from callback function
+} mspm_as_session_start_req_struct;
+
+// MSG_ID_MSPM_AS_SESSION_START_CNF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_procedure_enum procedure;
+ kal_bool result;
+} mspm_as_session_start_cnf_struct;
+
+// MSG_ID_MSPM_AS_SESSION_END_NTF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_sim_index_enum sim_index;
+ mspm_procedure_enum procedure;
+ kal_uint32 mspm_ack_id; // 0: from primitive, none 0: from callback function
+} mspm_as_session_end_ntf_struct;
+
+// MSG_ID_MSPM_RF_OWNER_CHANGE_NTF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_sim_index_enum rf_owner;
+} mspm_rf_owner_change_ntf_struct;
+
+// MSG_ID_MSPM_RF_OWNER_PRIORITY_CHANGE_NTF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_sim_index_enum rf_owner;
+ kal_uint8 priority;
+} mspm_rf_owner_priority_change_ntf_struct;
+
+// MSG_ID_MSPM_AS_LEAVE_VC_SUSPEND_REQ
+typedef struct
+{
+ LOCAL_PARA_HDR
+ mspm_sim_index_enum sim_index;
+} mspm_as_leave_vc_suspend_req_struct;
+
+// MSG_ID_MSPM_XL1_DR_STATUS_IND
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_dr_enable;
+} mspm_xl1_dr_status_ind_struct;
+/********************************************
+ * VARIABLES *
+ ********************************************/
+
+/********************************************
+ * FUNCTION DECLARATIONS *
+ ********************************************/
+extern kal_bool mspm_as_session_start_request(mspm_sim_index_enum sim_index, module_type mod_src, mspm_procedure_enum procedure);
+extern void mspm_as_session_end_ntf(mspm_sim_index_enum sim_index, module_type mod_src, mspm_procedure_enum procedure);
+
+extern mspm_sim_index_enum mspm_query_rf_owner(void);
+extern kal_bool mspm_is_this_sim_rf_owner(mspm_sim_index_enum sim_index);
+extern kal_uint8 mspm_query_sim_priority(mspm_sim_index_enum sim_index);
+extern kal_bool mspm_is_proc_ongoing(mspm_sim_index_enum sim_index, mspm_procedure_enum procedure);
+extern kal_uint8 mspm_query_proc_priority(mspm_procedure_enum procedure);
+extern kal_uint8 mspm_query_num_of_ongoing_proc(mspm_sim_index_enum sim_index);
+extern mspm_sim_index_enum mspm_query_sim_index_with_highest_ongoing_proc(mspm_sim_index_enum current_sim_index);
+extern kal_uint8 mspm_query_ongoing_proc_num_with_attr(mspm_sim_index_enum sim_index, mspm_procedure_attribute_enum proc_attr);
+extern kal_uint8 mspm_query_ongoing_as_session_num(mspm_sim_index_enum sim_index);
+extern kal_bool mspm_query_proc_attr(mspm_procedure_enum procedure, mspm_procedure_attribute_enum proc_attr);
+extern kal_bool mspm_is_any_peer_sim_proc_ongoing(mspm_sim_index_enum current_sim_index, mspm_procedure_enum procedure);
+extern kal_bool mspm_is_current_sim_occupy_rf_possible(mspm_sim_index_enum current_sim_index);
+extern kal_bool mspm_is_peer_sim_in_connected(mspm_sim_index_enum current_sim_index);
+extern mspm_vc_cause_enum mspm_query_vc_cause(mspm_sim_index_enum current_sim_index);
+extern kal_bool mspm_is_this_sim_in_vc(mspm_sim_index_enum sim_index);
+extern kal_bool mspm_is_peer_sim_in_nr_connected(mspm_sim_index_enum current_sim_index);
+
+#ifdef MSPM_UT
+void mspm_ut_set_rf_owner(mspm_sim_index_enum sim_index);
+void mspm_ut_set_sim_priority(mspm_sim_index_enum sim_index, kal_uint32 priority);
+void mspm_ut_reset(void);
+void mspm_ut_set_non_as_session_status(mspm_sim_index_enum sim_index, mspm_procedure_enum procedure, kal_bool is_ongoing);
+#endif
+
+#endif /* MSPM_PUBLIC_STRUCT_H */
+
diff --git a/mcu/interface/protocol/general/n3epc_public_defs.h b/mcu/interface/protocol/general/n3epc_public_defs.h
new file mode 100644
index 0000000..6d0da07
--- /dev/null
+++ b/mcu/interface/protocol/general/n3epc_public_defs.h
@@ -0,0 +1,130 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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 __N3EPC_PUBLIC_DEFS_H__
+#define __N3EPC_PUBLIC_DEFS_H__
+
+#include "kal_public_defs.h"
+
+typedef enum {
+ N3EPC_PDN_REJECT_NONE = 0,
+ N3EPC_PDN_REJECT_DNS_TIMEOUT = 1040,
+ N3EPC_PDN_REJECT_DNS_NO_ADDRESS = 1041,
+
+ N3EPC_PDN_REJECT_CERTIFICATE_VALIDATE_FAIL = 1010,
+ N3EPC_PDN_REJECT_CERTIFICATE_EXPIRED = 1011,
+
+ N3EPC_PDN_REJECT_TUNNEL_ESTABLISH_TIMEOUT = 1081,
+ N3EPC_PDN_REJECT_TUNNEL_ESTABLISH_FAILED = 1082,
+
+ N3EPC_PDN_REJECT_HANDOVER_IP_DISCONTINUITY = 1999,
+
+ N3EPC_PDN_REJECT_HANDOVER_PROTOCOL_NOT_MATCHED = 2006,
+ N3EPC_PDN_REJECT_ABORT = 2008,
+ N3EPC_PDN_REJECT_IS_BLOCKED = 2013,
+ N3EPC_PDN_REJECT_UNKNOWN_REASON = 2014,
+ N3EPC_PDN_REJECT_WIFI_NOT_READY = 2015,
+ N3EPC_PDN_REJECT_ACT_REQ_IN_WRONG_STATE = 2016,
+} n3epc_pdn_reject_enum;
+
+typedef enum {
+ N3EPC_STATUS_OK = 0,
+ N3EPC_STATUS_FAIL = 1, // Can't be used in the errcause of
+ // d2rm_n3epc_act_data_call_cnf_prv_struct
+
+ N3EPC_STATUS_MAIN_ERROR_START = 1001,
+
+ /* NW error */
+ N3EPC_STATUS_DNS_QUERY_TIMEOUT = 1040,
+ N3EPC_STATUS_FQDN_NO_ADDRESS = 1041,
+ N3EPC_STATUS_UNABLE_CONNET_EPDG = 1081, // from strongswan
+ N3EPC_STATUS_UNABLE_MAKE_IPSEC_TUNNEL = 1082,
+ N3EPC_STATUS_UNABLE_TO_VALIDATE_SERVER_CERTIFICATE =
+ 1010, // Not support for ePDG
+ N3EPC_STATUS_UNABLE_TO_VALIDATE_SERVER_CERTIFICATE_EPDG = 1101,
+ N3EPC_STATUS_INVALID_CERTIFICATE = 1011, // Not support for ePDG
+ N3EPC_STATUS_INVALID_CERTIFICATE_EPDG = 1111,
+ N3EPC_STATUS_INVALID_IP_IN_HANDOVER = 1999,
+
+ /* Internal error */
+ N3EPC_STATUS_NOT_READY = 2001,
+ N3EPC_STATUS_NO_APN_CONNECTION = 2002,
+ N3EPC_STATUS_PDN_INFO_NOT_MATCHED = 2003,
+ N3EPC_STATUS_PDN_CAN_NOT_CREATE = 2004,
+ N3EPC_STATUS_REJECT_PDN_ACT_REQ_IN_WRONG_STATE = 2005,
+ N3EPC_STATUS_HO_ADDR_PROTO_NOT_MATCHED = 2006,
+ N3EPC_STATUS_WRONG_PDN_REQ_TYPE = 2007,
+ N3EPC_STATUS_PDN_ACT_ABORT = 2008,
+ N3EPC_STATUS_PDN_ACT_TIMEOUT = 2009,
+ N3EPC_STATUS_EMERGENCY_NO_IMEI = 2010,
+ N3EPC_STATUS_PDN_LOCAL_RELEASE = 2011,
+ N3EPC_STATUS_TUNNEL_SETUP_TIMEOUT = 2012,
+ N3EPC_STATUS_MAIN_ERROR_END = 3000,
+} n3epc_status_enum;
+
+typedef enum {
+ IKE_NOTIFICATION_NONE = 0,
+ UNSUPPORTED_CRITICAL_PAYLOAD = 1,
+ INVALID_IKE_SPI = 4,
+ INVALID_MAJOR_VERSION = 5,
+ INVALID_SYNTAX = 7,
+ INVALID_MESSAGE_ID = 9,
+ INVALID_SPI = 11,
+ NO_PROPOSAL_CHOSEN = 14,
+ INVALID_KE_PAYLOAD = 17,
+ AUTHENTICATION_FAILED = 24,
+ SINGLE_PAIR_REQUIRED = 34,
+ NO_ADDITIONAL_SAS = 35,
+ INTERNAL_ADDRESS_FAILURE = 36,
+ FAILED_CP_REQUIRED = 37,
+ TS_UNACCEPTABLE = 38,
+ INVALID_SELECTORS = 39,
+ UNACCEPTABLE_ADDRESSES = 40,
+ UNEXPECTED_NAT_DETECTED = 41,
+ USE_ASSIGNED_HoA = 42,
+ TEMPORARY_FAILURE = 43,
+ CHILD_SA_NOT_FOUND = 44,
+
+ /*
+ * Unassigned: 47-8191
+ * private use: 8192-16383
+ */
+ NOTIFY_ERROR_END = 16383,
+
+ /* reactivation_requested_cause,ref 24.302-d80 */
+ REACTIVATION_REQUESTED_CAUSE = 40961,
+} n3epc_ike_error_notify_enum;
+
+#endif /* __N3EPC_PUBLIC_DEFS_H__ */
diff --git a/mcu/interface/protocol/general/nas2l4c_struct.h b/mcu/interface/protocol/general/nas2l4c_struct.h
new file mode 100644
index 0000000..60bf520
--- /dev/null
+++ b/mcu/interface/protocol/general/nas2l4c_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:
+ * ---------
+ * nas2l4c_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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * 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 : nas2l4c_struct.h
+ * SYNOPSIS :
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _NAS2L4C_STRUCT_H
+#define _NAS2L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef enum
+{
+ /* Defined in AT&T Device Requirement Table 21.2 for AT$ARME */
+ ERROR_TYPE_UNDEFINED,
+ ERROR_MM,
+ ERROR_CM,
+ ERROR_GMM_NON_COMBINED,
+ ERROR_SM,
+ ERROR_GMM_COMBINED_NON_GPRS,
+ ERROR_GMM_COMBINED,
+ ERROR_EMM_NON_COMBINED,
+ ERROR_EMM_COMBINED_NON_EPS,
+ ERROR_EMM_COMBINED,
+ ERROR_ESM,
+ /* Additional enum for ACMT */
+ ERROR_GMM_SERVICE,
+ ERROR_GMM_MT_DETACH
+} protocol_error_type_enum;
+
+/* This is for AT&T Communication Manager Client for Tablets(ACMT)
+*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ protocol_error_type_enum error_type;
+ kal_uint32 cause;
+} l4c_protocol_rej_ind_struct;
+
+// MSG_ID_L4C_RATCM_LBM_INFO_IND, MSG_ID_L4C_EVAL_LBM_INFO_IND
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_lbm_activated; /*0: deactivated, 1:activated*/
+} l4c_ratcm_lbm_info_ind_struct, l4c_eval_lbm_info_ind_struct;
+
+#endif /* _NAS2L4C_STRUCT_H */
diff --git a/mcu/interface/protocol/general/nas_as_inter_core_enum.h b/mcu/interface/protocol/general/nas_as_inter_core_enum.h
new file mode 100644
index 0000000..ad1d10a
--- /dev/null
+++ b/mcu/interface/protocol/general/nas_as_inter_core_enum.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) 2014
+*
+* 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:
+ * ---------
+ * as_inter_core_enum.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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 __NAS_AS_INTER_CORE_ENUM_H__
+#define __NAS_AS_INTER_CORE_ENUM_H__
+
+typedef enum
+{
+ DATA_PREFER, // default value
+ CALL_PREFER,
+ AS_OPTIMAL // decided by AS
+} gprs_transfer_preference_enum;
+
+#endif /* __NAS_AS_INTER_CORE_ENUM_H__ */
+
+
diff --git a/mcu/interface/protocol/general/nas_as_inter_core_struct.h b/mcu/interface/protocol/general/nas_as_inter_core_struct.h
new file mode 100644
index 0000000..74b3063
--- /dev/null
+++ b/mcu/interface/protocol/general/nas_as_inter_core_struct.h
@@ -0,0 +1,76 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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_as_inter_core_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __NAS_AS_INTER_CORE_STRUCT_H__
+#define __NAS_AS_INTER_CORE_STRUCT_H__
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+
+#endif /* __L4C_AS_INTER_CORE_STRUCT_H__ */
diff --git a/mcu/interface/protocol/general/nas_sv_ratdm_struct.h b/mcu/interface/protocol/general/nas_sv_ratdm_struct.h
new file mode 100644
index 0000000..713bde1
--- /dev/null
+++ b/mcu/interface/protocol/general/nas_sv_ratdm_struct.h
@@ -0,0 +1,98 @@
+/*****************************************************************************
+* 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_ratdm_struct.h
+*
+* Project:
+* --------
+* UMOLYA
+*
+* Description:
+* ------------
+*
+* Author:
+* -------
+ * -------
+******************************************************************************/
+
+#ifndef _NAS_SV_RATDM_STRUCT_H_
+#define _NAS_SV_RATDM_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 "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "gmss_public.h"
+
+typedef enum {
+ RATDM_NO_RAT,
+ RATDM_GSM_RAT,
+ RATDM_WCDMA_RAT,
+ RATDM_LTE_RAT,
+ RATDM_C2K_RAT,
+ RATDM_NR_RAT,
+} ratdm_rat_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ratdm_rat_enum dst_rat;
+} nas_sv_ratdm_rat_change_req_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;
+} nas_sv_ratdm_duplex_mode_change_req_struct;
+
+#endif /* _NWSEL_RATDM_STRUCT_H */
diff --git a/mcu/interface/protocol/general/nbr_public_struct.h b/mcu/interface/protocol/general/nbr_public_struct.h
new file mode 100644
index 0000000..74fda85
--- /dev/null
+++ b/mcu/interface/protocol/general/nbr_public_struct.h
@@ -0,0 +1,783 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * nbr_public_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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * 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 : nbr_public_struct.h
+ * SYNOPSIS :
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _NBR_PUBLIC_STRUCT_H
+#define _NBR_PUBLIC_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "global_type.h"
+
+#define GAS_MAX_MEASURED_CELL_NUM 6
+
+#define UAS_MAX_MEASURED_RESULTS_NUM 3
+#define UAS_MAX_CELL_MEASURED_RESULTS_NUM 6
+#define UAS_MAX_TIMESLOT_PER_SUBFRAME 7
+
+#define EAS_MAX_MEASURED_CELL_NUM 32
+
+#define NR_AS_MAX_SERVING_CELL_NUM 32
+#define NR_AS_MAX_MEASURED_CELL_NUM 32
+
+/*-----UAS cell info struct start-------------*/
+
+typedef struct
+{
+ kal_uint8 uarfcn_ul_used;
+ kal_uint16 uarfcn_ul;
+ kal_uint16 uarfcn_dl;
+} uas_freq_info_fdd_struct;
+
+typedef struct
+{
+ kal_uint16 uarfcn;
+} uas_freq_info_tdd_struct;
+
+typedef enum
+{
+ UAS_FREQ_INFO_MODE_FDD = 1,
+ UAS_FREQ_INFO_MODE_TDD,
+ UAS_FREQ_INFO_MODE_END
+} uas_freq_info_mode_enum;
+
+typedef struct uas_freq_info_mode_specific_info_struct
+{
+ kal_uint8 mode; // uas_freq_info_mode_enum
+ union
+ {
+ uas_freq_info_fdd_struct fdd;
+ uas_freq_info_tdd_struct tdd;
+ } choice;
+} uas_freq_info_mode_specific_info_struct;
+
+typedef struct
+{
+ uas_freq_info_mode_specific_info_struct mode_specific_info;
+} uas_freq_info_struct;
+
+/* Measurement results for FDD cell */
+typedef struct
+{
+ kal_uint16 psc;
+ kal_uint8 cpich_Ec_N0_used;
+ kal_uint8 cpich_Ec_N0;
+ kal_uint8 cpich_rscp_used;
+ kal_uint8 cpich_rscp;
+ kal_uint8 pathloss_used;
+ kal_uint8 pathloss;
+} uas_cell_measured_results_fdd_struct;
+
+/* Measurement results for TDD cell, not implemented now */
+typedef struct
+{
+ kal_uint8 num;
+ kal_uint8 element[2*UAS_MAX_TIMESLOT_PER_SUBFRAME];
+}uas_cell_measured_result_tdd_timeslot_iscp_struct;
+
+typedef struct
+{
+ kal_uint8 cellParameterId;
+ kal_uint8 tgsn_used;
+ kal_uint8 tgsn;
+ kal_uint8 pccpch_rscp_used;
+ kal_uint8 pccpch_rscp;
+ kal_uint8 pathloss_used;
+ kal_uint8 pathloss;
+ kal_uint8 timeSlot_iscp_used;
+ uas_cell_measured_result_tdd_timeslot_iscp_struct timeslot_iscp_list;
+
+} uas_cell_measured_results_tdd_struct;
+
+typedef enum
+{
+ UAS_CELL_MEASURED_RESULTS_MODE_FDD = 1,
+ UAS_CELL_MEASURED_RESULTS_MODE_TDD,
+ UAS_CELL_MEASURED_RESULTS_MODE_END
+} uas_cell_measured_results_mode_enum;
+
+typedef struct uas_cell_measured_results_mode_specific_info_struct
+{
+ kal_uint8 mode; // uas_cell_measured_results_mode_enum
+
+ union
+ {
+ uas_cell_measured_results_fdd_struct fdd;
+ uas_cell_measured_results_tdd_struct tdd;
+ } choice;
+} uas_cell_measured_results_mode_specific_info_struct;
+
+typedef struct
+{
+ kal_uint8 cell_id_used;
+ kal_uint32 cell_id;
+ uas_cell_measured_results_mode_specific_info_struct mode_specific_info;
+} uas_cell_measured_results_struct;
+
+/* Measured results of most 32 different cells in one UARFCN */
+typedef struct
+{
+ kal_uint8 num;
+ uas_cell_measured_results_struct element[UAS_MAX_CELL_MEASURED_RESULTS_NUM];
+} uas_cell_measured_results_list_struct;
+
+typedef struct
+{
+ kal_uint8 freq_info_used;
+ uas_freq_info_struct freq_info;
+ kal_uint8 utra_carrier_rssi_used;
+ kal_uint8 utra_carrier_rssi;
+ kal_uint8 cell_measured_results_list_used;
+ uas_cell_measured_results_list_struct cell_measured_results_list;
+} uas_measured_results_struct;
+
+/* Measurement results of most 8 different UARFCN's */
+typedef struct
+{
+ kal_uint8 num;
+ uas_measured_results_struct element[UAS_MAX_MEASURED_RESULTS_NUM];
+} uas_measured_results_list_struct;
+
+typedef struct uas_cell_plmn_id_struct
+{
+ kal_uint16 mcc;
+ kal_uint16 mnc;
+} uas_cell_plmn_id_struct;
+
+typedef struct
+{
+ kal_uint8 is_LAC_valid;
+ kal_uint16 lac;
+ kal_uint8 is_RAC_valid;
+ kal_uint8 rac;
+ kal_uint8 num_plmn_id;
+ uas_cell_plmn_id_struct plmn_id_list[6];
+} uas_cell_info_struct;
+
+typedef struct
+{
+ kal_uint8 num;
+ uas_cell_info_struct cell_info[UAS_MAX_CELL_MEASURED_RESULTS_NUM];
+} uas_cell_info_list_struct;
+
+typedef struct
+{
+ uas_cell_info_list_struct cell_info_list;
+} uas_cell_info_per_freq_struct;
+
+/* Measurement results of most 3 different UARFCN's */
+typedef struct
+{
+ kal_uint8 num_freq;
+ uas_cell_info_per_freq_struct cell_info_per_freq[UAS_MAX_MEASURED_RESULTS_NUM];
+} uas_cell_info_ext_struct;
+
+/* WCDMA cell info */
+typedef struct
+{
+ kal_uint16 mcc;
+ kal_uint16 mnc;
+ kal_uint32 uc;
+ kal_uint8 freq_info_used;
+ uas_freq_info_struct freq_info;
+ kal_uint8 psc_used;
+ kal_uint16 psc;
+ kal_uint8 measured_results_list_used;
+ uas_measured_results_list_struct measured_results_list;
+
+ // Extended information
+ uas_cell_measured_results_mode_specific_info_struct serving_meas_result;
+ uas_cell_info_struct serving_cell_ext_info;
+ uas_cell_info_ext_struct cell_info_ext_list;
+} uas_nbr_cell_info_struct;
+
+/*-----UAS cell info struct end-------------*/
+
+
+// mtk02480
+/*-----GAS cell info struct--------- */
+typedef struct
+{
+ kal_uint16 arfcn;
+ kal_uint8 bsic;
+ kal_uint8 rxlev;
+ kal_int16 rssi_in_qdbm; /* 1 means invalid */
+}gas_nbr_cell_meas_struct;
+
+typedef struct
+{
+ kal_uint16 mcc;
+ kal_uint16 mnc;
+ kal_uint16 lac;
+ kal_uint16 ci;
+}global_cell_id_struct;
+
+typedef struct
+{
+ kal_int8 nbr_meas_num;
+ gas_nbr_cell_meas_struct nbr_cells[15];
+}gas_nbr_meas_struct;
+
+
+typedef struct
+{
+ global_cell_id_struct gci;
+ kal_uint8 nbr_meas_rslt_index;
+}gas_cell_info_struct;
+
+
+typedef struct
+{
+ gas_cell_info_struct serv_info;
+ kal_uint8 ta;
+/* 091125 shuang CVM_PWR_LEV add for CVM network command power level*/
+ kal_uint8 ordered_tx_pwr_lev;
+ kal_uint8 nbr_cell_num;
+ gas_cell_info_struct nbr_cell_info[GAS_MAX_MEASURED_CELL_NUM];
+ gas_nbr_meas_struct nbr_meas_rslt;
+}gas_nbr_cell_info_struct;
+
+/*-----GAS cell info struct--end------- */
+
+/*-----EAS cell info struct start-------------*/
+
+typedef struct
+{
+ EARFCN dl_freq;
+ kal_uint16 pci; //0~503
+ kal_uint8 rsrp; //0~97
+ kal_uint8 rsrq; //0~34
+
+ kal_uint8 is_cell_id_used;
+ kal_uint32 cell_id; //0~0x0FFFFFFF
+ kal_uint16 mcc; //0~999
+ kal_uint16 mnc; //0~999
+ kal_uint8 is_2_digit_mnc; //ncell cell plmn is 2 digits or 3 digits
+ kal_uint16 tac; //0~65535
+ kal_uint8 rssi; //0~31,99
+} eas_cell_measured_results_struct;
+
+typedef struct
+{
+ kal_uint16 ta;
+ kal_uint8 s_tag_id;
+} eas_s_tag_ta_struct;
+
+/* LTE cell info */
+typedef enum {
+ EAS_NR_PDCP_INVALID = 0, // Invalid value for initialization and check
+ EAS_NR_PDCP_PRESENCE = 1, // nr pdcp is configured
+ EAS_NR_PDCP_NOT_PRESENCE = 2, // nr pdcp is not configured
+ EAS_NR_PDCP_UNKNOWN = 3 // no valid result of nr pdcp presence
+} eas_nr_pdcp_presence_enum;
+
+typedef struct
+{
+ /* Serving cell info */
+ kal_uint16 mcc; //0~999
+ kal_uint16 mnc; //0~999
+ kal_uint8 is_2_digit_mnc; //serving cell plmn is 2 digits or 3 digits
+ kal_uint32 cell_id; //0~0x0FFFFFFF
+ EARFCN dl_freq;
+ kal_uint8 ul_freq_used;
+ EARFCN ul_freq;
+ kal_uint16 pci; //0~503
+ kal_uint8 is_ta_used;
+ kal_uint16 time_advance; //0~1282
+ kal_uint8 is_rsrp_valid;
+ kal_uint8 rsrp; //0~97
+ kal_uint8 is_rsrq_valid;
+ kal_uint8 rsrq; //0~34
+ kal_uint16 tac; //0~65535
+
+ /* Neighbor cell info */
+ kal_uint8 num_nbr_cell;
+ eas_cell_measured_results_struct nbr_cell_list[EAS_MAX_MEASURED_CELL_NUM];
+
+ /* Timing advance info for sTAG */
+ eas_s_tag_ta_struct s_tag_ta;
+ kal_bool s_tag_ta_is_valid;
+ kal_uint8 rssi; //0~31,99
+
+ kal_bool is_endc_available;
+ kal_bool is_b1_nr_report_send; //for 5G icon show
+ kal_bool is_nr_cell_measured; //for 5G icon show
+ kal_bool is_nr_cap_queried;
+ eas_nr_pdcp_presence_enum nr_pdcp_bearer; //request from L4, bypass information from CHM
+} eas_nbr_cell_info_struct;
+
+/*-----EAS cell info struct--end------- */
+
+/*-----NR_AS cell info struct start-------------*/
+
+typedef struct
+{
+ kal_bool is_rsrp_valid;
+ kal_uint8 rsrp; // 0~127
+
+ kal_bool is_rsrq_valid;
+ kal_uint8 rsrq; // 0~127
+
+ kal_bool is_sinr_valid;
+ kal_uint8 sinr; // 0~127
+} ssb_measurement_struct, csi_measurement_struct;
+
+
+/* NR serving cell info */
+typedef struct
+{
+ kal_uint8 ssb_id;
+ kal_bool is_rsrp_valid;
+ kal_uint8 rsrp;
+} nr_as_ssb_info_struct;
+
+typedef struct
+{
+ kal_uint32 phys_cell_id; // 0~1007
+ kal_uint32 arfcn; // 0~3279165
+ kal_uint8 scs; // 0~4: 0=15kHz, 1=30kHz, 2=60kHz, 3=120kHz, 4=240kHz
+ kal_uint16 dl_freq_band; // 1~1024
+ kal_uint32 center_arfcn; // 0~3279165
+ kal_uint32 cell_bandwidth; // 0~400000, kHz
+
+ // In case cell broadcasts several sets of NAS sysinfo, NR AS informs
+ // first set of NAS sysinfo in SIB1 of the cell.
+
+ // NAS sys info (mcc/mnc/cell_id/tac) validity
+ kal_bool is_nas_sysinfo_valid;
+
+ kal_uint16 primary_plmn_mcc; // 0~999
+
+ kal_bool is_2_digit_mnc;
+ kal_uint16 primary_plmn_mnc; // 0~999
+
+ kal_uint64 primary_plmn_cell_id; // 36-bit
+ kal_uint32 primary_plmn_tac; // 24-bit
+
+ kal_bool is_ssb_valid;
+ ssb_measurement_struct ssb;
+
+ kal_bool is_csi_valid;
+ csi_measurement_struct csi;
+
+ kal_bool is_ta_valid;
+ kal_uint16 ta;
+
+ kal_uint8 ssb_num;
+ nr_as_ssb_info_struct ssb_list[8];
+} nr_as_serving_cell_info_struct;
+
+/* NR neighbor cell info */
+typedef struct
+{
+ kal_uint32 phys_cell_id; // 0~1007
+ kal_uint32 arfcn; // 0~3279165
+ kal_uint8 scs; // 0~4: 0=15kHz, 1=30kHz, 2=60kHz, 3=120kHz, 4=240kHz
+ kal_uint16 dl_freq_band; // 1~1024
+
+ // In case cell broadcasts several sets of NAS sysinfo, NR AS informs
+ // first set of NAS sysinfo in SIB1 of the cell.
+
+ // NAS sys info (mcc/mnc/cell_id/tac) validity
+ kal_bool is_nas_sysinfo_valid;
+
+ kal_uint16 primary_plmn_mcc; // 0~999
+
+ kal_bool is_2_digit_mnc;
+ kal_uint16 primary_plmn_mnc; // 0~999
+
+ kal_uint64 primary_plmn_cell_id; // 36-bit
+ kal_uint32 primary_plmn_tac; // 24-bit
+
+ kal_bool is_ssb_valid;
+ ssb_measurement_struct ssb;
+
+ kal_bool is_csi_valid;
+ csi_measurement_struct csi;
+
+ kal_uint8 ssb_num;
+ nr_as_ssb_info_struct ssb_list[4];
+} nr_as_cell_measured_result_struct;
+
+/* NR cell info */
+typedef struct
+{
+ kal_uint8 num_serving_cell;
+ nr_as_serving_cell_info_struct nr_serving_cell_list[NR_AS_MAX_SERVING_CELL_NUM];
+
+ kal_uint8 num_nbr_cell;
+ nr_as_cell_measured_result_struct nbr_cell_list[NR_AS_MAX_MEASURED_CELL_NUM];
+} nr_as_nbr_cell_info_struct;
+
+/*-----NR_AS cell info struct--end------- */
+
+typedef struct
+{
+ kal_uint8 is_nbr_info_valid;
+ kal_uint8 is_eas_nbr_info_valid;
+ kal_uint8 is_nr_as_nbr_info_valid;
+ eas_nbr_cell_info_struct eas_nbr_cell_info;
+ nr_as_nbr_cell_info_struct nr_as_nbr_cell_info;
+} l4c_endc_nbr_cell_info_struct;
+
+typedef union
+{
+ gas_nbr_cell_info_struct gas_nbr_cell_info;
+ uas_nbr_cell_info_struct uas_nbr_cell_info;
+ eas_nbr_cell_info_struct eas_nbr_cell_info;
+ nr_as_nbr_cell_info_struct nr_as_nbr_cell_info;
+}ps_nbr_cell_info_union_type;
+
+typedef struct l4c_nbr_cell_info_reg_cnf_struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 rat_mode;
+ kal_uint8 is_nbr_info_valid;
+ ps_nbr_cell_info_union_type ps_nbr_cell_info_union;
+} l4c_nbr_cell_info_reg_cnf_struct,l4c_nbr_cell_info_ind_struct;
+
+typedef enum
+{
+ GSM_NW_BAND_850 = 0x0001,
+ GSM_NW_BAND_E_900 = 0x0002,
+ GSM_NW_BAND_DCS_1800 = 0x0004,
+ GSM_NW_BAND_PCS_1900 = 0x0008,
+ GSM_NW_BAND_P_900 = 0x0010,
+ GSM_NW_BAND_R_900 = 0x0020,
+ GSM_NW_BAND_450 = 0x0040,
+ GSM_NW_BAND_480 = 0x0080,
+ GSM_INVALID_BAND = 0xffff
+}gsm_nw_band_enum;
+
+typedef struct gas_nw_band_info_struct
+{
+ kal_uint16 serv_band;
+ kal_uint16 nbr_band_list; /* Band value mapped to gsm_nw_band_enum */
+
+ kal_bool umts_bands_valid;
+ kal_uint16 umts_nbr_band_list[2]; /* Each bit in nbr_band_list represent the band.
+ nbr_band_list[0] bit0 represents UMTS band1.. nbr_band_list[0] bit15 represents UMTS band16
+ nbr_band_list[1] bit0 represents UMTS band17.. nbr_band_list[1] bit5 represents UMTS band22.*/
+ kal_bool lte_bands_valid;
+ kal_uint16 lte_nbr_band_list[16]; /* Each bit in lte_nbr_band_list represent the band.
+ lte_nbr_band_list[0] bit0 represents LTE band1.. lte_nbr_band_list[0] bit15 represents LTE band16
+ lte_nbr_band_list[15] bit0 represents LTE band240.. lte_nbr_band_list[15] bit15 represents LTE band256.*/
+}gas_nw_band_info_struct;
+
+typedef struct uas_nw_band_info_struct
+{
+ kal_uint8 serv_band; /* Serving Band number */
+ kal_uint16 nbr_band_list[2]; /* Each bit in nbr_band_list represent the band.
+ nbr_band_list[0] bit0 represents UMTS band1.. nbr_band_list[0] bit15 represents UMTS band16
+ nbr_band_list[1] bit0 represents UMTS band17.. nbr_band_list[1] bit5 represents UMTS band22.*/
+ kal_bool lte_bands_valid;
+ kal_uint16 lte_nbr_band_list[16]; /* Each bit in lte_nbr_band_list represent the band.
+ lte_nbr_band_list[0] bit0 represents LTE band1.. lte_nbr_band_list[0] bit15 represents LTE band16
+ lte_nbr_band_list[15] bit0 represents LTE band240.. lte_nbr_band_list[15] bit15 represents LTE band256.*/
+
+ kal_bool gsm_bands_valid;
+ kal_uint16 gsm_nbr_band_list; /* Band value mapped to gsm_nw_band_enum */
+
+
+}uas_nw_band_info_struct;
+
+typedef struct eas_nw_band_info_struct
+{
+ kal_uint16 serv_band; /* Serving Band number */
+ kal_uint16 nbr_band_list[16]; /* Each bit in nbr_band_list represent the band.
+ nbr_band_list[0] bit0 represents LTE band1.. nbr_band_list[0] bit15 represents LTE band16
+ nbr_band_list[15] bit0 represents LTE band240.. nbr_band_list[15] bit15 represents LTE band256.*/
+ kal_bool umts_bands_valid;
+ kal_uint16 umts_nbr_band_list[2]; /* Each bit in nbr_band_list represent the band.
+ nbr_band_list[0] bit0 represents UMTS band1.. nbr_band_list[0] bit15 represents UMTS band16
+ nbr_band_list[1] bit0 represents UMTS band17.. nbr_band_list[1] bit5 represents UMTS band22.*/
+
+ kal_bool gsm_bands_valid;
+ kal_uint16 gsm_nbr_band_list; /* Band value mapped to gsm_nw_band_enum */
+
+}eas_nw_band_info_struct;
+
+
+typedef union
+{
+ gas_nw_band_info_struct gas_nw_band_info;
+#ifdef __UMTS_RAT__
+ uas_nw_band_info_struct uas_nw_band_info;
+#endif
+#ifdef __LTE_RAT__
+ eas_nw_band_info_struct eas_nw_band_info;
+#endif
+#if !defined(__UMTS_RAT__) && !defined(__LTE_RAT__)
+ kal_uint32 dummy_padding;
+#endif
+}ps_nw_band_info_union_type;
+
+typedef struct l4c_nw_band_info_ind_struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_uint8 rat_mode;
+ kal_uint8 is_nw_band_info_valid;
+ ps_nw_band_info_union_type ps_nw_band_info_union;
+} l4c_nw_band_info_ind_struct;
+
+#ifdef __CHR_AB_INFO__
+
+//Huawei Index8 requirement: Inidication of reason for Not moving to 4G.
+typedef enum
+{
+ AS_EUTRA_INFO_NOT_AVAILABLE, // LTE info not avaialble with AS to perform measurments.
+ AS_EUTRA_CELL_NOT_FOUND, // LTE info avaialbel and triggered meansurements, but no LTE cell found.
+ AS_EUTRA_RESEL_CRIT_NOT_MET, // UE in idle and LTE measurments are going on, but cell reselection criterin not met.
+ AS_CONN_MODE_NO_HO_CCO, // UE in connected and LTE measurments are going on, either event\periodical MR not sent or NW not redirecting to 4G.
+ AS_LTE_RESEL_FAIL_S_CRI_NOT_MET, // 4G resele failed due to s criteria not satisfied.
+ AS_LTE_RESEL_FAIL_SIB_READ_ERROR, // 4G resele failed due to sib reception failed.
+ AS_LTE_RESEL_FAIL_CELL_BARRED, // 4G resele failed due to cell is barred.
+ AS_LTE_RESEL_FAIL_PLMN_MISMATCH, // 4G resele failed due to target cell's PLMN doesn't match S/E PLMN.
+ AS_LTE_RESEL_FAIL_FORBIDDEN_TA, // 4G resele failed due to target cell is in forbidden tracking area.
+ AS_3G4_HO_FAIL_PHYSICAL_CHANNEL_FAILURE, // 3G to 4G HO fail due to physical channel failure.
+ AS_3G4_HO_FAIL_FREQUENCY_NOT_IMPLEMENTED, // 3G to 4G HO fail due to evalution fail.
+ AS_3G4_HO_FAIL_PROTOCOL_ERROR, // 3G to 4G HO fail due to inconsistent or missing parameters causing protocol error
+ AS_3G4_HO_FAIL_UNSUPPORTED_CONFIGURATION, // 3G to 4G HO fail due to predefined configuration not read or default configuration not implemented..
+ AS_3G4_HO_FAIL_UNSPECIFIED_ERROR, // 3G to 4G HO fail due to unspecified error.
+ AS_LTE_CCO_FAIL_TARGET_CELL_REJECT, // CCO to 4G failed due to target cell rejected the CCO procedure
+ AS_LTE_CCO_FAIL_TARGET_CELL_NO_RESPONSE, // CCO to 4G failed due to target cell no response.
+ AS_LTE_CCO_FAIL_NAS_ABORT // CCO to 4G failed due to NAS abort
+} as_reason_not_moving_to_lte_enum;
+
+typedef enum
+{
+ NAS_LTE_CAUSE_NONE, //NO CAUSE
+ NAS_NO_USIM, //NO USIM inserted
+ NAS_LTE_CAPABILITY_NOT_SET, //SET_RAT_MODE does not have LTE
+ NAS_LTE_PS_DETACHED, //PS Attach is not requested
+ NAS_LTE_CS_SERVICE_NOT_POSSIBLE, //LTE cannot get CS normal service
+ NAS_LTE_NORMAL_SERVICE_NOT_POSSIBLE, //LTE cannot get normal service
+ NAS_LTE_IRAT_FAILED, //IRAT failed to LTE
+ NAS_LTE_HIGH_PRIO_PLMN_NOT_FOUND, //LTE PLMN not found in HIGH_PRIORITY_SEARCH
+ NAS_CS_CALL_ONGOING, //CS_CALL ongoing
+ NAS_LTE_DISABLED, //EUTRAN capability is disabled for the current PLMN
+ NAS_LTE_ENABLED_NEED_RESELECTION, //EUTRAN is enabled, need AS to reselect
+ NAS_LTE_PLMN_LOSS, //LTE cell lost
+ NAS_LTE_PLMN_NOT_FOUND_DURING_SEARCH //LTE PLMN not found during search
+} nas_reason_not_moving_to_lte_enum;
+
+typedef struct
+{
+ as_reason_not_moving_to_lte_enum as_reason; // AS reason for not moving to 4G.
+ nas_reason_not_moving_to_lte_enum nas_reason; // NAS reason for not moving to 4G.
+} ps_reason_not_moving_to_lte_struct;
+#endif /* __CHR_AB_INFO__ */
+
+#endif /* _NBR_PUBLIC_STRUCT_H */
diff --git a/mcu/interface/protocol/general/ndis_ratdm_struct.h b/mcu/interface/protocol/general/ndis_ratdm_struct.h
new file mode 100644
index 0000000..0462d2e
--- /dev/null
+++ b/mcu/interface/protocol/general/ndis_ratdm_struct.h
@@ -0,0 +1,147 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ndis_ratdm_struct.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!
+ *
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ ******************************************************************************/
+
+#ifndef NDIS_RATDM_STRUCT_H
+#define NDIS_RATDM_STRUCT_H
+/******************************************************************************/
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ps_public_enum.h"
+
+/******************************************************************************/
+
+//MSG_ID_NDIS_RATDM_DATA_ACTIVATE_IND,
+typedef struct {
+ LOCAL_PARA_HDR
+// UART_PORT uart_port_number;
+ kal_uint8 context_id;
+ kal_uint8 src_id;
+ //#ifdef __IPV4V6__
+ kal_uint8 /*pdp_addr_type_enum*/ pdp_type; // IPv4, IPv6, IPv4v6
+ kal_uint8 channel_id; // UPS channel ID
+ //#endif // ~ #ifdef __IPV4V6__
+} ndis_ratdm_data_activate_ind_struct;
+
+//MSG_ID_NDIS_RATDM_DATA_ACTIVATE_RSP,
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_bool result;
+ kal_uint8 src_id;
+} ndis_ratdm_data_activate_rsp_struct;
+
+//MSG_ID_NDIS_RATDM_DATA_DEACTIVATE_IND,
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+} ndis_ratdm_data_deactivate_ind_struct;
+
+//MSG_ID_NDIS_RATDM_DATA_DEACTIVATE_RSP,
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_bool result;
+} ndis_ratdm_data_deactivate_rsp_struct;
+// --- __HSPA_DATA_PATH_OPT__
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 pool_id;
+// UART_PORT port;
+} ndis_flc_data_resume_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 pool_id;
+// UART_PORT port;
+} ndis_flc_data_suspend_ind_struct;
+
+/******************************************************************************/
+#endif /* NDIS_RATDM_STRUCT_H*/
diff --git a/mcu/interface/protocol/general/netinfo_common_struct.h b/mcu/interface/protocol/general/netinfo_common_struct.h
new file mode 100644
index 0000000..383a21c
--- /dev/null
+++ b/mcu/interface/protocol/general/netinfo_common_struct.h
@@ -0,0 +1,257 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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 __NETINFO_COMMON_STRUCT_H__
+#define __NETINFO_COMMON_STRUCT_H__
+
+#include "kal_public_defs.h"
+#include "atcmd_struct.h"
+#include "l3_inc_enums_public.h"
+
+#define MAX_NETWORK_V4_IP_INFO_NUM (1)
+#define MAX_NETWORK_V6_IP_INFO_NUM (1)
+
+#define MAX_IPSTK_V4_IP_INFO_NUM (1)
+#define MAX_IPSTK_V6_IP_INFO_NUM (8)
+
+typedef struct {
+ kal_bool mtu_present;
+ kal_int32 mtu;
+ kal_uint8 addr[IPV4_ADDR_LEN];
+ kal_int32 netmask;
+} ipv4_info_struct;
+
+typedef struct {
+ kal_bool mtu_present;
+ kal_int32 mtu;
+ kal_uint8 addr[IPV6_ADDR_LEN];
+ kal_int32 prefix;
+} ipv6_info_struct;
+
+typedef struct {
+ kal_uint32 v4_count;
+ ipv4_info_struct v4_list[MAX_NETWORK_V4_IP_INFO_NUM];
+ kal_uint32 v6_count;
+ ipv6_info_struct v6_list[MAX_NETWORK_V6_IP_INFO_NUM];
+} network_ip_info_struct;
+
+typedef struct {
+ kal_uint32 v4_count;
+ ipv4_info_struct v4_list[MAX_IPSTK_V4_IP_INFO_NUM];
+ kal_uint32 v6_count;
+ ipv6_info_struct v6_list[MAX_IPSTK_V6_IP_INFO_NUM];
+ network_ip_info_struct network_ip_info; // Colgin workaround for L5 obtaining the network IP address to setup the IP stack manually
+} ipstk_ip_info_struct;
+
+typedef struct {
+ network_ip_info_struct network_ip_info;
+ ipstk_ip_info_struct ap_ipstk_ip_info;
+ ipstk_ip_info_struct md_ipstk_ip_info;
+} new_ip_info_struct;
+
+
+#define MAX_ADDR_BUF_NUM 10
+
+typedef enum {
+ INTERFACE_TYPE_NONE,
+ INTERFACE_TYPE_CCMNI,
+ INTERFACE_TYPE_RNDIS,
+ INTERFACE_TYPE_DUMMY_RNDIS,
+ INTERFACE_TYPE_VNIF,
+ INTERFACE_TYPE_MBIM,
+ INTERFACE_TYPE_MAX
+} interface_type_enum;
+
+typedef struct
+{
+ kal_bool PDPv4_addr_present;
+ kal_uint8 PDPv4_addr[IPV4_ADDR_LEN];
+ kal_int32 PDPv4_netmask;
+ kal_bool PDPv6_addr_present;
+ kal_uint8 PDPv6_addr[IPV6_ADDR_LEN];
+ kal_int32 PDPv6_prefix;
+ // Colgin workaround for L5 obtaining the network IP address to setup the IP stack manually
+ kal_bool network_PDPv4_addr_present;
+ kal_uint8 network_PDPv4_addr[IPV4_ADDR_LEN];
+ kal_int32 network_PDPv4_netmask;
+ kal_bool network_PDPv6_addr_present;
+ kal_uint8 network_PDPv6_addr[IPV6_ADDR_LEN];
+ kal_int32 network_PDPv6_prefix;
+} ip_info_struct;
+
+typedef struct
+{
+ kal_bool bearer_id_present;
+ kal_uint32 bearer_id;
+ kal_bool local_addr_and_subnet_mask_present;
+ at_addr_and_mask_struct local_addr_and_subnet_mask;
+ kal_bool gw_addr_present;
+ at_addr_struct gw_addr;
+ kal_uint32 pcscfv4_num;
+ kal_uint8 pcscfv4_addr[MAX_ADDR_BUF_NUM][IPV4_ADDR_LEN];
+ kal_uint32 pcscfv6_num;
+ kal_uint8 pcscfv6_addr[MAX_ADDR_BUF_NUM][IPV6_ADDR_LEN];
+ kal_uint32 dnsv4_num;
+ kal_uint8 dnsv4_addr[MAX_ADDR_BUF_NUM][IPV4_ADDR_LEN];
+ kal_uint32 dnsv6_num;
+ kal_uint8 dnsv6_addr[MAX_ADDR_BUF_NUM][IPV6_ADDR_LEN];
+ kal_bool IM_CN_Signalling_Flag_present;
+ atcmd_IM_CN_Signalling_Flag_enum IM_CN_Signalling_Flag;
+ kal_bool IPv4_MTU_present;
+ kal_uint32 IPv4_MTU;
+ kal_bool QCI_present;
+ kal_uint32 QCI;
+ kal_bool network_interface_id_present;
+ kal_uint32 network_interface_id; // get byipc_get_netif_id_from_l2p_chid(IPC_NETIF_ID_LHIF_BEGIN, interface_id.network_interface_id)
+ kal_bool PS_Data_off_Support_present;
+ kal_uint8 PS_Data_off_Support;
+ kal_bool PSI_present;
+ kal_uint8 PSI;
+ kal_bool SSC_mode_present;
+ kal_uint8 SSC_mode;
+ kal_bool S_NSSAI_present;
+ at_s_nssai_struct S_NSSAI;
+ kal_bool Access_type_present;
+ kal_uint8 Access_type;
+} net_info_struct;
+
+typedef struct
+{
+ kal_bool QCI_present;
+ kal_uint32 QCI;
+ kal_bool DL_GBR_present;
+ kal_uint32 DL_GBR;
+ kal_bool UL_GBR_present;
+ kal_uint32 UL_GBR;
+ kal_bool DL_MBR_present;
+ kal_uint32 DL_MBR;
+ kal_bool UL_MBR_present;
+ kal_uint32 UL_MBR;
+ kal_bool DL_AMBR_present;
+ kal_uint32 DL_AMBR;
+ kal_bool UL_AMBR_present;
+ kal_uint32 UL_AMBR;
+
+ /*c5gqosrdp_ind*/
+ kal_bool VQI_present;
+ kal_uint32 VQI; // integer type
+ kal_bool DL_GFBR_present;
+ kal_uint64 DL_GFBR; // integer type
+ kal_bool UL_GFBR_present;
+ kal_uint64 UL_GFBR; // integer type
+ kal_bool DL_MFBR_present;
+ kal_uint64 DL_MFBR; // integer type
+ kal_bool UL_MFBR_present;
+ kal_uint64 UL_MFBR; // integer type
+ kal_bool DL_SAMBR_present;
+ kal_uint64 DL_SAMBR; // integer type
+ kal_bool UL_SAMBR_present;
+ kal_uint64 UL_SAMBR; // integer type
+ kal_bool Averaging_window_present;
+ kal_uint32 Averaging_window; // integer type
+}QosInfo_t;
+typedef struct
+{
+ kal_bool packet_filter_identifier_present;
+ kal_uint32 packet_filter_identifier; // integer type
+ kal_bool evaluation_precedence_index_present;
+ kal_uint32 evaluation_precedence_index; // integer type
+ kal_bool remote_address_and_subnet_mask_present;
+ pdp_addr_len_enum remote_address_and_subnet_mask_len;
+ kal_uint8 remote_address_and_subnet_mask[MAXIMUM_POSSIBLE_ADDR_LEN * 2]; // string type
+ kal_bool protocol_number_next_header_present;
+ kal_uint32 protocol_number_next_header; // integer type
+ kal_bool local_port_range_present;
+ kal_uint8 local_port_range[LOCAL_PORT_RANGE_STRING_LEN]; // string type
+ kal_bool remote_port_range_present;
+ kal_uint8 remote_port_range[REMOTE_PORT_RANGE_STRING_LEN]; // string type
+ kal_bool ipsec_spi_present;
+ kal_uint32 ipsec_spi; // numeric value
+ kal_bool tos_traffic_class_and_mask_present;
+ kal_uint8 tos_traffic_class_and_mask[TOS_TRAFFIC_CLASS_AND_MASK_STRING_LEN]; // string type
+ kal_bool flow_label_present;
+ kal_uint32 flow_label; // numeric value
+ kal_bool direction_present;
+ atcmd_direction_enum direction; // integer type
+ kal_bool NW_packet_filter_Identifier_present;
+ kal_uint32 NW_packet_filter_Identifier; // integer type
+ kal_bool local_address_and_subnet_mask_present;
+ pdp_addr_len_enum local_address_and_subnet_mask_len;
+ kal_uint8 local_address_and_subnet_mask[MAXIMUM_POSSIBLE_ADDR_LEN * 2]; // string type
+ kal_bool QRI_present;
+ kal_uint32 QRI; // integer type
+}PktFilter_t;
+
+typedef struct
+{
+ kal_bool ims_info_present;
+ rat_enum current_rat;
+ pdp_addr_type_enum pdp_addr_type;
+ kal_uint32 primary_cid;
+ kal_uint32 bearer_id;
+ kal_uint8 pdu_session_id;
+ atcmd_IM_CN_Signalling_Flag_enum IM_CN_Signalling_Flag;
+ QosInfo_t qos;
+ kal_uint8 tft_count;
+ PktFilter_t tft[32];
+ kal_uint16 cgact_error_cause;
+ ps_cause_enum cgev_modify_cause;
+}ims_info_struct;
+
+typedef struct {
+ kal_uint32 if_type;
+ kal_uint32 if_id;
+} if_info_struct;
+
+typedef enum {
+ RETRYTIME_RESERVED_START = 0xFFFF0000,
+ RETRYTIME_NO_RETRY = 0xFFFFFFFF, //infinite
+ RETRYTIME_RESERVED_END = 0xFFFFFFFF,
+} retrytime_enum;
+
+typedef enum {
+ RETRY_CAUSE_UNKNOWN = 0,
+ RETRY_CAUSE_MAX = 0x7FFFFFFF,
+} retry_cause_enum;
+
+typedef struct {
+ kal_bool retrytime_present;
+ kal_uint32 retrytime;
+ retry_cause_enum cause;
+ kal_bool is_s_nssai_present;
+ at_s_nssai_struct s_nssai;
+} retry_info_struct;
+
+#endif /* __NETINFO_COMMON_STRUCT_H__ */
diff --git a/mcu/interface/protocol/general/pdn_public_defs.h b/mcu/interface/protocol/general/pdn_public_defs.h
new file mode 100644
index 0000000..b7ccea6
--- /dev/null
+++ b/mcu/interface/protocol/general/pdn_public_defs.h
@@ -0,0 +1,283 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * pdn_public_defs.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!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * 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 __PDN_PUBLIC_DEFS_H__
+#define __PDN_PUBLIC_DEFS_H__
+
+#include "kal_public_defs.h"
+#include "d2pm_public_defs.h"
+#include "d2cm_public_defs.h"
+#include "d2rm_public_defs.h"
+#include "iwlan_public_defs.h"
+#include "atcmd_struct.h"
+
+typedef enum {
+ DCCHG_C2K_IRAT = 0,
+ DCCHG_NW_MOD_99,
+ DCCHG_NW_MOD_39,
+ //DCCHG_ROAMING,
+ DCCHG_MAX = 0x7FFFFFFF
+} data_call_change_reason_enum;
+
+typedef enum {
+ RETRY_TYPE_NO_SUGGEST,
+ RETRY_TYPE_NO_RETRY,
+ RETRY_TYPE_WITH_SUGGEST,
+ RETRY_TYPE_DEFAULT_POLICY,
+ RETRY_TYPE_MAX = 0x7FFFFFFF
+} retrytime_type_enum;
+
+typedef enum {
+ RETRY_RESET_POWER_CYCLE_OFF,
+ RETRY_RESET_POWER_CYCLE_ON,
+ RETRY_RESET_APN_CONFIG_CHANGED,
+} retrytime_reset_event_enum;
+
+
+typedef enum {
+ RESET_USER_AP,
+ RESET_USER_MD,
+ RETRY_USER_MAX = 0x7FFFFFFF
+} data_retry_reset_user_enum;
+typedef struct apn_data_retry_info {
+ kal_uint8 apn[APN_STRING_LEN];
+ ddm_apn_type_enum apn_type;
+ kal_bool error_occured;
+ kal_uint32 error_cause;
+#ifdef __TC01__
+ kal_uint16* timer_id;
+#endif
+ retrytime_type_enum retrytime_type;
+ kal_uint32 retry_time;
+ kal_uint8 retry_count;
+ kal_uint32 end_time;
+ kal_bool retry_count_exhaustible;
+ kal_bool retry_count_setted;
+ kal_bool has_power_off;
+ kal_bool is_from_mcf;
+ kal_bool is_s_nssai_present;
+ at_s_nssai_struct s_nssai;
+}apn_data_retry_info_t;
+
+typedef enum {
+ RETRY_PDN_TYPE_ALL = 0,
+ RETRY_PDN_TYPE_IMS,
+ RETRY_PDN_TYPE_EMERGENCY,
+ RETRY_PDN_TYPE_NON_IMS,
+ RETRY_PDN_TYPE_NON_EMERGENCY,
+ RETRY_PDN_TYPE__MAX = 0x7FFFFFFF
+}data_retry_pdn_type_enum;
+
+typedef enum {
+ RETRY_RAT_ALL = 0,
+ RETRY_RAT_5G,
+ RETRY_RAT_LTE,
+ RETRY_RAT_23G,
+ RETRY_RAT_MAX = 0x7FFFFFFF
+}data_retry_rat_enum;
+
+typedef struct mcf_data_retry_info {
+ data_retry_rat_enum rat;
+ data_retry_pdn_type_enum pdn_type;
+ retrytime_type_enum retry_type; // 0: NO_RETRY, 1: Retry with suggest time, 2: No suggest time
+ kal_uint16 error_cause[20];
+ kal_uint8 error_cause_count;
+ kal_uint32 retry_time[10];
+ kal_uint8 retry_time_count;
+ kal_bool all_error_cause_set;
+ kal_bool default_error_cause_set;
+ kal_uint8 retry_time_idx;
+}mcf_data_retry_info_t;
+
+typedef struct mcf_parsed_data_retry_info {
+ mcf_data_retry_info_t retry_info[20]; // we assume effective_retry_info_cnt < 20, so we use 20 for its size
+ kal_uint8 effective_retry_info_cnt;
+ kal_bool is_valid;
+} mcf_parsed_data_retry_info_t;
+
+typedef struct pco_info {
+ kal_bool IE_present;
+ kal_uint8 IE[IE_STRING_LEN]; // string type
+ kal_bool contents_present;
+ kal_uint8 contents[AT_EGPCORDP_CONTENTS_STRING_LEN]; // string type
+} pco_info_t;
+
+#endif
+
diff --git a/mcu/interface/protocol/general/perf_api.h b/mcu/interface/protocol/general/perf_api.h
new file mode 100644
index 0000000..f445723
--- /dev/null
+++ b/mcu/interface/protocol/general/perf_api.h
@@ -0,0 +1,311 @@
+/******************************************************************************
+* 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 _PERF_API_H_
+#define _PERF_API_H_
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "kal_public_api.h"
+#include "kal_trace.h"
+#include "event_info_utility.h"
+#include "md_sap.h"
+#include "perf_msgid.h"
+
+/********************************************
+ * TYPE DEFINITIONS & ENUMS *
+ ********************************************/
+typedef enum
+{
+ RECOVERY_TYPE_ASSERT = 0,
+ RECOVERY_TYPE_SIM_PLUG = 0, /// not support yet
+ RECOVERY_TYPE_FLIGHT_MODE,
+ RECOVERY_TYPE_REATTACH = RECOVERY_TYPE_FLIGHT_MODE, /// not support yet
+ RECOVERY_TYPE_LTE_LOCAL_RELEASE,
+ RECOVERY_TYPE_LTE_RRC_REESTABLISH,
+ RECOVERY_TYPE_PERF_SUPPORT_NUM, /// the max number PERF support (not include NR)
+
+ RECOVERY_TYPE_NR_LOCAL_RELEASE = RECOVERY_TYPE_PERF_SUPPORT_NUM,
+ RECOVERY_TYPE_NR_RRC_REESTABLISH,
+ RECOVERY_TYPE_NR_SCG_FAILURE_INFO,
+ RECOVERY_TYPE_NR_RRC_REDIRECT_FAIL, // RRC ask ERM to notify scenario when redirection fail, and notify NRRC when scenario happened
+} protocol_exception_recovery_type_enum;
+
+typedef enum
+{
+ LTE_LOCAL_RELEASE_RESULT_OK,
+ LTE_LOCAL_RELEASE_RESULT_FAIL
+} lte_local_release_result_enum;
+
+typedef enum
+{
+ LTE_RRC_REESTABLISH_RESULT_OK,
+ LTE_RRC_REESTABLISH_RESULT_ONGOING,
+ LTE_RRC_REESTABLISH_RESULT_FAIL
+} lte_rrc_reestablish_result_enum;
+
+typedef enum
+{
+ PERF_UT_MSG_SEND_NONE = 0,
+ PERF_UT_MSG_SEND_KAL,
+ PERF_UT_MSG_SEND_UTT
+} perf_ut_msg_send_mode_enum;
+
+/********************
+ NR related enum
+********************/
+
+typedef enum
+{
+ ERROR_RECOVERY_METHOD_NON = 0,
+ ERROR_RECOVERY_METHOD_RELEASE,
+ ERROR_RECOVERY_METHOD_REEST,
+ ERROR_RECOVERY_METHOD_SCG_FAIL_INFO,
+} error_recovery_method_enum;
+
+/********************************************
+ * VARIABLES *
+ ********************************************/
+#define PEFR_ALL_PROTOCOL_ID (0xF)
+#define PERF_MAX_DEBUG_BUF_SIZE (128) /// in byte
+#define PERF_FILENAME_LENGTH (90)
+#define PERF_FUNCTION_NAME_LENGTH (50)
+
+/********************************************
+ * STRUCTURES *
+ ********************************************/
+/// interface for Offender
+typedef struct
+{
+ void *p_buf;
+ kal_uint32 size; /// size of p_buf in byte
+} protocol_exception_recovery_debug_struct;
+
+/// User API parameter: PROTOCOL_EXCEPTION_RECOVERY()
+typedef struct
+{
+ kal_uint8 protocol_id; /**<
+ 0x0 ~ 0x3: protocol stack 1 ~ 4
+ PEFR_ALL_PROTOCOL_ID (0xF): all protocol stack id
+ **/
+ kal_bool disable_escalate_recovery; /// KAL_TRUE: disable escalating recovery feature
+ protocol_exception_recovery_debug_struct debug;
+} protocol_exception_recovery_info_struct;
+
+/// trigger PERF primitive structure (MSG_ID_PROTOCOL_EXCEPTION_RECOVERY)
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ protocol_exception_recovery_type_enum recovery_type;
+ protocol_exception_recovery_info_struct info;
+ char filename[PERF_FILENAME_LENGTH];
+ char function_name[PERF_FUNCTION_NAME_LENGTH];
+ kal_uint32 line;
+ //kal_uint8 debug_buff_id;
+} protocol_exception_recovery_struct;
+
+/// interface for flight mode Actor
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_bool is_flight_mode;
+ kal_uint8 ps_id; /// protocol stack id bitmap
+} perf_l4bpwr_flight_mode_recovery_req, perf_l4bpwr_flight_mode_recovery_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_bool result;
+} perf_l4bpwr_flight_mode_recovery_cnf, perf_l4bpwr_flight_mode_recovery_cnf_struct;
+
+/// interface for LTE local release Actor
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ lte_local_release_result_enum cause;
+ kal_uint8 protocol_id;
+} perf_emm_lte_local_release_recovery_cnf, perf_emm_lte_local_release_recovery_cnf_struct;
+
+/// interface for LTE RRC reestablishment Actor
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ lte_rrc_reestablish_result_enum cause;
+} perf_errc_lte_rrc_reestablishment_recovery_cnf, perf_errc_reestablishment_recovery_cnf_struct;
+
+/********************
+ NR related Struct.
+********************/
+/* MSG_ID_ERM_ERROR_IND*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ protocol_exception_recovery_type_enum err_event;
+ protocol_exception_recovery_info_struct info;
+} erm_error_ind_struct;
+
+/* MSG_ID_ERM_VGMM_ERROR_RECOVERY_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ error_recovery_method_enum recovery_method;
+ kal_uint16 timer_period;
+} erm_vgmm_error_recovery_req_struct;
+
+/* MSG_ID_ERM_VGMM_ERROR_RECOVERY_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+} erm_vgmm_error_recovery_cnf_struct;
+/********************************************
+ * MACROS and API *
+ ********************************************/
+/// interface for LTE Local Release Actor
+/// hook function pointer from EMM to PERF
+typedef kal_bool (*perf_query_is_lte_conn_status_idle_f)(kal_uint8 protocol_id);
+extern void lte_local_release_actor_hook_conn_status_query_fp(perf_query_is_lte_conn_status_idle_f fp_query);
+
+/// atomic read PERF need update IDLE status (for local release recovery result)
+extern void lte_local_release_actor_update_conn_status(kal_bool is_idle, kal_uint8 protocol_id);
+
+kal_bool protocol_exception_recovery_trigger(
+ module_type module_id,
+ const char *filename,
+ const char *function_name,
+ kal_uint32 line,
+ protocol_exception_recovery_type_enum recovery_type,
+ protocol_exception_recovery_info_struct *p_info);
+/// Note: User shall "not" use below internal macro directly !
+#define __PERF_TRIGGER(_module, _file, _func, _line, _type, _info) \
+ protocol_exception_recovery_trigger(\
+ (_module),\
+ (_file),\
+ (_func),\
+ (kal_uint32)(_line),\
+ (protocol_exception_recovery_type_enum)(_type),\
+ (protocol_exception_recovery_info_struct *)(_info));
+
+#define _PERF_TRIGGER(_module, _type, _info) \
+ __PERF_TRIGGER((_module),__FILE__,__func__,__LINE__,(_type),(_info))
+
+#define _PERF_TRIGGER_LITE(_module, _type, _info) \
+ __PERF_TRIGGER((_module),"","",__LINE__,(_type),(_info))
+
+/// recovery API for general user
+#if defined(__MTK_TARGET__) && defined(__PERF_SUPPORT__) && !defined(__DEBUG_ASSERT_SUPPORT__) && !defined(__UE_SIMULATOR__)
+/// will change before/after SQC start
+#define PROTOCOL_EXCEPTION_RECOVERY _PERF_TRIGGER
+#define PROTOCOL_EXCEPTION_RECOVERY_LITE _PERF_TRIGGER_LITE
+#define EMM_HOOK_CONN_STATUS_QUERY_FP(_fp) lte_local_release_actor_hook_conn_status_query_fp((_fp))
+#define EMM_UPDATE_CONN_STATUS_TO_PERF(_is_idle, _protocol_id) lte_local_release_actor_update_conn_status((_is_idle), (_protocol_id))
+
+#elif defined(UNIT_TEST) && defined(__PERF_SUPPORT__) && !defined(__UE_SIMULATOR__)
+ /// UT always enable API
+#define PROTOCOL_EXCEPTION_RECOVERY _PERF_TRIGGER
+#define PROTOCOL_EXCEPTION_RECOVERY_LITE _PERF_TRIGGER_LITE
+#define EMM_HOOK_CONN_STATUS_QUERY_FP(_fp) lte_local_release_actor_hook_conn_status_query_fp((_fp))
+#define EMM_UPDATE_CONN_STATUS_TO_PERF(_is_idle, _protocol_id) lte_local_release_actor_update_conn_status((_is_idle), (_protocol_id))
+
+#else
+ /// for other build, always keep assert
+#define PROTOCOL_EXCEPTION_RECOVERY(_module, _type, _info) \
+ ASSERT(0); \
+ kal_prompt_trace((_module), "[PROTOCOL EXCEPTION] current stage is disable (%x,%x,%x)", (_module), (_type), (_info));
+#define PROTOCOL_EXCEPTION_RECOVERY_LITE PROTOCOL_EXCEPTION_RECOVERY
+#define EMM_HOOK_CONN_STATUS_QUERY_FP(_fp) lte_local_release_actor_hook_conn_status_query_fp((_fp))
+#define EMM_UPDATE_CONN_STATUS_TO_PERF(_is_idle, _protocol_id) if ((_is_idle) && (_protocol_id)){}
+
+#endif // ~ #if defined(__MTK_TARGET__) && !defined(__DEBUG_ASSERT_SUPPORT__) #elif defined(UNIT_TEST) #else
+
+/// recovery API for HISR user
+#define PROTOCOL_EXCEPTION_RECOVERY_HISR PROTOCOL_EXCEPTION_RECOVERY
+
+/// recovery API for LISR without multi-thread user
+#define PROTOCOL_EXCEPTION_RECOVERY_LISR PROTOCOL_EXCEPTION_RECOVERY
+
+/// recovery API for LISR with multi-thread user
+#define PROTOCOL_EXCEPTION_RECOVERY_MT_LISR PROTOCOL_EXCEPTION_RECOVERY
+
+/// Actor result update message send
+#ifdef UNIT_TEST
+extern perf_ut_msg_send_mode_enum g_ut_enable_msg_send;
+#ifdef __GTEST_ENABLE__
+#define PERF_UT_MSG_SEND6(...) \
+ if (g_ut_enable_msg_send == PERF_UT_MSG_SEND_NONE) \
+ { \
+ } \
+ else if (g_ut_enable_msg_send == PERF_UT_MSG_SEND_UTT) \
+ { \
+ utt_msg_send6(__VA_ARGS__); \
+ } \
+ else \
+ { \
+ msg_send6(__VA_ARGS__); \
+ }
+#else
+#define PERF_UT_MSG_SEND6(...) \
+ if (g_ut_enable_msg_send == PERF_UT_MSG_SEND_NONE) \
+ { \
+ } \
+ else \
+ { \
+ msg_send6(__VA_ARGS__); \
+ }
+#endif // ~ #ifdef __GTEST_ENABLE__ #else
+
+#define PERF_MSG_SEND6(...) PERF_UT_MSG_SEND6(__VA_ARGS__)
+#define ENABLE_PERF_MSG_SEND6() do{g_ut_enable_msg_send = PERF_UT_MSG_SEND_UTT;}while(0);
+#define ENABLE_PERF_MSG_SEND6_FOR_MSC() do{g_ut_enable_msg_send = PERF_UT_MSG_SEND_KAL;}while(0);
+#define DISABLE_PERF_MSG_SEND6() do{g_ut_enable_msg_send = PERF_UT_MSG_SEND_NONE;}while(0);
+#define DISABLE_PERF_MSG_SEND6_FOR_MSC DISABLE_PERF_MSG_SEND6
+#else
+#define PERF_MSG_SEND6(...) msg_send6(__VA_ARGS__)
+#endif // ~ #ifdef UNIT_TEST #else
+
+#ifdef __PERF_TEST_MODE__
+typedef void (*perf_test_mode_case_f)(void *param);
+extern kal_uint32 perf_test_mode_regist_a_case(perf_test_mode_case_f fp, void *param);
+#define PERF_REGIST_IT_CASE_FP(_fp, _param) perf_test_mode_regist_a_case((_fp), (void *)(_param))
+#else
+#define PERF_REGIST_IT_CASE_FP(_fp, _param)
+#endif // ~ #ifdef __PERF_TEST_MODE__
+
+#endif // ~ #ifndef _PERF_API_H_
\ No newline at end of file
diff --git a/mcu/interface/protocol/general/phb_defs.h b/mcu/interface/protocol/general/phb_defs.h
new file mode 100644
index 0000000..5ebb39d
--- /dev/null
+++ b/mcu/interface/protocol/general/phb_defs.h
@@ -0,0 +1,224 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * phb_defs.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file contains common definitions for PHB module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef _PHB_DEFS_H
+#define _PHB_DEFS_H
+
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "kal_general_types.h"
+#include "kal_public_api.h"
+#include "sim_public_api.h"
+#if defined(__NG_ECALL_SUPPORT__)
+#include "ps_public_struct.h"
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/* Header files should be include before this one */
+
+#define PHB_INVALID_VALUE ~0
+#define PHB_NULL_VALUE 0
+
+#define BYTE_SIZE 8
+#define BYTE_SIZE_SHIFT_ARITHMETIC 3
+
+
+#define PHB_TYPE2_FILE_FLAG (0x80)
+
+/* delete all turbo */
+#define __PHB_DELETE_ALL_TURBO__
+/* Concurrency degree is the number of control blocks. */
+#define PHB_CONCURRENCY_DEGREE 3
+
+/* In byte(s). Must not exceeds the capacity defined by l4_common_struct.h. */
+/* 20040802 Wilson, If LMMI providing sorting mechanism, it does not need to sort in L4 */
+
+#define PHB_ALPHA_ID_DEPTH 10
+
+/* Number of bytes after ALPHA_ID field */
+#define PHB_LENGTH_AFTER_ALPHA_ID 14
+
+/* Byte size of TON/NPI allocated in NVRAM/SIM */
+#define TON_NPI_SIZE 1
+
+/**
+ * Maximum bytes of TON/NPI and DIALLING_NUMBER/SSC_STRING
+ * fields allocated for ADN-like EF's
+ */
+#define PHB_EF_MAX_TON_NPI_TEL_NUMBER_LEN 11
+
+/**
+ * Maximum bytes of DIALLING_NUMBER/SSC_STRING field allocated
+ * for EXT-like EF's.
+ */
+#define PHB_EF_EXT_MAX_TEL_NUMBER_LEN 10
+
+#define PHB_EMAIL_MAX_LEN 60
+
+ /* TON and NPI constants */
+#define NPI_UNKNOWN 0
+#define NPI_ISDN 1
+/**
+ * Most significant bit is always 1 for TON. ie, 1???.
+ * Hence,
+ * TON_UNKNOW is 1000, TON_NATIONAL is 1010, and
+ * TON_INTERNATIONAL is 1001
+ */
+#define TON_EXT 0x08
+#define TON_UNKNOWN 0x00
+#define TON_INTERNATIONAL 0x01
+#define TON_NATIONAL 0x02
+#define TON_NETWORK_SPECIFIC 0x03
+#define TON_DEDICATED 0x04
+
+/* Default TON/NPI */
+#define TON_NPI_DEFAULT (((TON_EXT | TON_UNKNOWN) << 4) | NPI_ISDN)
+
+#define FETCH_TON(x) ((x >> 4) & 0x07)
+
+/* This is reserved for possible revision of l4_addr_bcd_struct */
+#define L4_ADDR_BCD_TON_NPI_OFFSET 0
+#define L4_ADDR_BCD_TON_NPI_SIZE 1
+#define L4_ADDR_BCD_TEL_NUM_OFFSET 1
+
+/* Valid digits are 0x00 ~ 0x0C; ie, before p; ranges from 0 ~ *, #. */
+#define DN_VALID_DIGIT_LIMIT 0x0C
+
+#define PHB_MCC_MNC_STR_LEN 6
+
+#if defined(GEMINI_PLUS) && (GEMINI_PLUS >= 4)
+extern module_type phb_current_mod;
+#define PHB_SIM_NUM 4
+#elif defined(GEMINI_PLUS) && (GEMINI_PLUS >= 3)
+extern module_type phb_current_mod;
+#define PHB_SIM_NUM 3
+#elif defined(__GEMINI__)
+extern module_type phb_current_mod;
+#define PHB_SIM_NUM 2
+#else
+#define PHB_SIM_NUM 1
+#endif
+
+#define MAX_NETWORK_ECC_NUM 16
+
+
+#if defined(__GEMINI__) || defined(GEMINI_PLUS)
+#define PHB_WHICH_SIM phb_which_sim_ex()
+#else /* __GEMINI__ */
+#define PHB_WHICH_SIM
+#endif /* __GEMINI__ */
+
+#define PHB_SIM_SERVICE_TABLE_QUERY_BY_PS_ID(x, ps_id) (sim_service_table_query_by_ps_id(x, ps_id) == SERVICE_SUPPORT ? KAL_TRUE : KAL_FALSE)
+#define PHB_SIM_SERVICE_TABLE_QUERY(x) (PHB_SIM_SERVICE_TABLE_QUERY_BY_PS_ID(x, phb_which_sim_ex()))
+
+
+typedef enum
+{
+ IO_NONE,
+ IO_READ_IAP,
+ IO_WRITE_IAP,
+ IO_WAIT,
+ IO_SEGMENTATION,
+ IO_COMPLETE,
+} IO_state_enum;
+
+typedef enum
+{
+ OP_READ,
+ OP_WRITE,
+ OP_DELETE
+} op_enum;
+
+typedef struct
+{
+ kal_uint8 length;
+ kal_uint8 charset;
+ kal_uint8 data[PHB_ALPHA_ID_DEPTH];
+} alpha_id_type;
+
+#define EF_TEL_NUMBER_SIZE 10
+/* Stored phone book entries structure */
+typedef struct
+{
+ kal_uint8 len;
+ kal_uint8 ton_npi;
+ kal_uint8 tel_number[EF_TEL_NUMBER_SIZE];
+ kal_uint8 cap_cnf_id;
+ kal_uint8 ext_id; /* Should not be used for nvram_access. */
+ /* Note that BDN has 1 byte more: comparison method ID */
+} phb_ef_mandatory_struct;
+
+typedef struct
+{
+ kal_uint8 *alpha_id;
+ phb_ef_mandatory_struct *mandatory;
+} phb_ef_struct;
+
+#if defined(__NG_ECALL_SUPPORT__)
+ typedef struct
+ {
+ kal_uint8 no_uri;
+ l4_phb_uri_struct uri_record[MAX_PHB_XDN_URI_NUM];
+ } phb_uri_struct;
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PHB_DEFS_H */
+
diff --git a/mcu/interface/protocol/general/ppp2csd_struct.h b/mcu/interface/protocol/general/ppp2csd_struct.h
new file mode 100644
index 0000000..1d7b708
--- /dev/null
+++ b/mcu/interface/protocol/general/ppp2csd_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:
+ * ---------
+ * ppp2csd_struct.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is the header file which define the local parameter struct
+ * between the PPP and CSD (TDT,L2R).
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _PPP2CSD_STRUCT_H
+#define _PPP2CSD_STRUCT_H
+
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_complete_frame;
+ kal_uint8 seq_number;
+} ppp_csd_data_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 seq_number;
+} ppp_csd_data_req_struct;
+
+#ifdef __PPP_UT__
+typedef ppp_csd_data_ind_struct ppp_l2r_data_ind_struct;
+#endif /* ~ __PPP_UT__ */
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/ppp2l4c_struct.h b/mcu/interface/protocol/general/ppp2l4c_struct.h
new file mode 100644
index 0000000..911d989
--- /dev/null
+++ b/mcu/interface/protocol/general/ppp2l4c_struct.h
@@ -0,0 +1,228 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * PPP2L4C_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of TCM and L4C.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _PPP2L4C_STRUCT_H
+#define _PPP2L4C_STRUCT_H
+
+#include "kal_general_types.h"
+//#include "kal_non_specific_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct {
+ /* Warning::
+ * If result is PPPE_RESULT_FAILED, then only port and cause are valid in this struct
+ * else if the result is success, then src_id,context_id, pdp_type, port, and cause are all valid value in this struct
+ */
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 context_id; // PH 20050223 MPDP
+ kal_uint8 result; /* success or failed*/
+ kal_uint8 pdp_type;
+ kal_uint8 port;
+ kal_uint8 cause; /* abnormal case */
+ kal_uint8 context_id2; //L4CPPP_FB_2, if it does not exist, fill with INVALID_PDP_CONTEXT_ID
+ kal_uint8 pdp_type2; //L4CPPP_FB_2, if it does not exist, fill with NULL PDP type
+} l4cppp_activate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 context_id; // PH 20050223 MPDP
+ kal_uint8 port;
+ kal_uint8 result;
+ kal_uint8 cause; /* abnormal case */
+ kal_uint8 context_id2; //L4CPPP_FB_2, if it does not exist, fill with INVALID_PDP_CONTEXT_ID
+} l4cppp_deactivate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 context_id; // PH 20050223 MPDP
+ kal_uint8 port;
+ kal_uint8 cause; /* abnormal case */
+ kal_uint8 context_id2; //L4CPPP_FB_2, if it does not exist, fill with INVALID_PDP_CONTEXT_ID
+} l4cppp_deactivate_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* success or failed*/
+ kal_uint8 port;
+} l4cppp_resume_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result; /* success or failed*/
+ kal_uint8 err_cause;
+ kal_uint8 ip_addr[4];
+ kal_uint8 pri_dns_addr[4];
+ kal_uint8 sec_dns_addr[4];
+ kal_uint16 mtu;
+} l4cppp_csd_activate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result; /* success or failed*/
+ kal_uint8 err_cause;
+} l4cppp_csd_deactivate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 port;
+} l4cppp_escape_ind_struct;
+
+typedef struct {
+ kal_uint16 id;
+ kal_uint32 time_stamp;
+ kal_uint32 time_100us;
+ kal_uint16 frame_size;
+ kal_uint16 data_size;
+} frame_statistic_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 direction;
+ frame_statistic_struct statistic[10];
+ kal_uint32 time_in_ms;
+} ppp_status_report_ind_struct;
+
+// PPP Type PDP Dialup Feature
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 context_id;
+ kal_uint8 port;
+ kal_uint8 result; // success or fail
+} l4cppp_ppptypepdp_activated_ind_struct;
+
+//__IPV4V6__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool pdp_activate_rsp_accept; // accept or reject
+ kal_uint8 pdp_activate_rsp_pdp_type; // IPV4V6, IPV4, IPV6 --> only need when accept
+ kal_uint8 pdp_activate_rsp_cid; // 1, 2, 3
+ kal_uint16 pdp_activate_cause; // only for reject
+ kal_bool pdp_activate_cause2_present; // only for accept
+ kal_uint16 pdp_activate_cause2; // only for accept
+} l4cppp_ipv4v6_fallback_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 context_id;
+ kal_uint8 pdp_type;
+} l4cppp_initial_ip_type_ind_struct; //L4CPPP_FB
+#endif
+
+
diff --git a/mcu/interface/protocol/general/ppp2tcm_struct.h b/mcu/interface/protocol/general/ppp2tcm_struct.h
new file mode 100644
index 0000000..0df125a
--- /dev/null
+++ b/mcu/interface/protocol/general/ppp2tcm_struct.h
@@ -0,0 +1,225 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * PPP2TCM_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of TCM and L4C.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _PPP2TCM_STRUCT_H
+#define _PPP2TCM_STRUCT_H
+
+//#include "mmi_l3_enums.h"
+
+//------------------------------ suggest Add ------------------------------
+//#include "kal_non_specific_general_types.h"
+
+/* Poying: MSBB. */
+//#include "mmi_sm_enums.h"
+//#include "tcm2sm_struct.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+
+//------------------------------ suggest Add ------------------------------
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 l2p_type; /* layer two protocol*/
+ kal_uint8 pdp_addr_len; /* pdp address length*/
+ kal_uint8 pdp_type; /* pdp address type*/
+ kal_uint8 pdp_addr[16];
+ kal_uint8 config_protocol;
+ kal_uint8 config_option_len; /* config option length*/
+ config_option_struct config_option[MAX_NUM_CONFIG_OPTION_PACKETS];
+ kal_uint8 src_id;
+ //mtk04121
+ kal_uint32 req_reason;
+} mmi_ext_pdp_activate_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 flc_pool_type;
+ kal_uint8 pool_id;
+} mmi_ext_data_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 src_id;
+ #ifdef __LOCAL_DEACTIVATE_PDP_SUPPORT__
+ kal_bool local_deactivate_pdp; /* __LOCAL_DEACTIVATE_PDP_SUPPORT__ */
+ #endif // ~ __LOCAL_DEACTIVATE_PDP_SUPPORT__
+ tcm_pdp_deact_reason_enum deact_reason; // this deactivation is due to MSG_ID_TCM_RAT_TCM_INIT_DEACTIVATE_CONTEXT_IND
+} mmi_ext_pdp_deactivate_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 cause;
+} mmi_link_free_ind_struct;
+
+typedef struct {
+ // [Note] 20081114
+ // This struct shall be aligned with cmux_pkt_data_ind_struct
+ // If you need to modify it, please notify both TCM & CMUX owners. Thanks!
+ LOCAL_PARA_HDR
+ kal_uint8 context_id; /* for __APP_SECONDARY_PDP_SUPPORT__ */
+ kal_uint8 profile_id;
+ kal_uint8 flc_pool_type;
+ kal_uint8 pool_id;
+} mmi_data_ind_struct;
+
+// PPP Type PDP Dialup Feature
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 serial_number; // for matching request and confirm
+ kal_uint8 context_id;
+ kal_uint8 src_id;
+ kal_uint8 ipv4_addr[4];
+ kal_uint8 ipv4_dns1[4];
+ kal_uint8 ipv4_dns2[4];
+ kal_uint8 ipv6_addr[16];
+ kal_uint8 ipv6_dns1[16];
+ kal_uint8 ipv6_dns2[16];
+} mmi_ext_pdp_set_ip_and_dns_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 context_id;
+ kal_uint8 channel_id;
+ pdp_addr_type_enum pdp_type;
+ kal_uint8 additional_para_type; //tcm_pdp_activate_req_additional_para_type_enum (TCM_PDP_ACT_REQ_HAS_EXTRA_PARA_AS_MODULE_ID)
+ kal_uint32 additional_para_content; // module id
+}ppptcm_enter_data_mode_req_struct;
+
+
+typedef mmi_ext_pdp_activate_ind_struct taf_ext_pdp_activate_ind_struct;
+typedef mmi_ext_data_ind_struct taf_data_ind_struct;
+typedef mmi_data_ind_struct tcpip_tcm_data_req_struct;
+typedef mmi_ext_pdp_deactivate_ind_struct taf_ext_pdp_deactivate_ind_struct;
+typedef mmi_link_free_ind_struct taf_link_free_ind_struct;
+typedef mmi_ext_pdp_set_ip_and_dns_info_req_struct taf_ext_pdp_set_ip_and_dns_info_req_struct;
+
+typedef ppptcm_enter_data_mode_req_struct taf_ext_enter_data_mode_req_struct;
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/ppp_ext_modem_callback.h b/mcu/interface/protocol/general/ppp_ext_modem_callback.h
new file mode 100644
index 0000000..304b599
--- /dev/null
+++ b/mcu/interface/protocol/general/ppp_ext_modem_callback.h
@@ -0,0 +1,99 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * PPP_EXT_MODEM_CALLBACK.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends to provide callback functions for
+ * the EXT_MODEM task to call.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _PPP_EXT_MODEM_CALLBACK_H
+#define _PPP_EXT_MODEM_CALLBACK_H
+
+#include "kal_general_types.h"
+//#include "app_ltlcom.h"
+#include "kal_public_api.h"
+
+kal_bool pppextmodem_flc_activate (void);
+void pppextmodem_flc_deactivate (void);
+void pppextmodem_free_ul_appdu_flc_buf (peer_buff_struct *ptr);
+void pppextmodem_free_dl_appdu_flc_buf (peer_buff_struct *ptr);
+peer_buff_struct* pppextmodem_get_dl_appdu_flc_buff (kal_uint16, kal_uint16, kal_uint16);
+
+
+#endif /* _PPP_EXT_MODEM_CALLBACK_H */
diff --git a/mcu/interface/protocol/general/ppp_l4_enums.h b/mcu/interface/protocol/general/ppp_l4_enums.h
new file mode 100644
index 0000000..139f51d
--- /dev/null
+++ b/mcu/interface/protocol/general/ppp_l4_enums.h
@@ -0,0 +1,353 @@
+/*******************************************************************************
+* 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:
+ * ---------
+ * ppp_l4_enums.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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _PPP_L4_ENUMS_H
+#define _PPP_L4_ENUMS_H
+
+typedef enum
+{
+ NORMAL_LINK_TERMINATION,
+ ABNORMAL_LINK_TERMINATION
+} mmi_link_free_enum;
+
+typedef enum
+{
+ PPPE_MOBILE_DEACT,
+ PPPE_NW_DEACT
+} pppcsd_deact_cause_enum;
+
+typedef enum
+{
+ PPPE_NONE,
+ PPPE_LCP_FAIL,
+ PPPE_AUTH_FAIL,
+ PPPE_IPCP_FAIL,
+ PPPE_ESC_DETECT,
+ PPPE_PLUGOUT_DETECT,
+ PPPE_PPP_GPRS_DIALUP_ALREADY_ACTIVATED,
+ PPPE_PPP_NOT_ACTIVATED_BY_EXT_MODEM_YET,
+ PPPE_PPP_ALREADY_ACTIVATED_BY_EXT_MODEM,
+ PPPE_PPP_NOT_ACTIVATED_BY_WAP_OVER_CSD_YET,
+ PPPE_PPP_ALREADY_ACTIVATED_BY_WAP_OVER_CSD,
+ PPPE_PPP_WRONG_CSD_MOD_ID,
+ PPPE_PPP_DETECT_AT_CMD_DURING_DIALUP, //[MONZA00008185]
+ PPPE_PPP_DETECT_ESCAPE_DURING_DIALUP, //[MONZA00008185]
+ PPPE_PPP_IN_GEMINI_DIALUP_ACTIVATED_BY_ANOTHER_L4C, // change feature 2008 03 26
+ PPPE_PPP_DIALUP_ABORTED_BY_L4C_AT_CGACT_0,
+ PPPE_PPP_DIALUP_WITH_UNSUPPORTED_PDP_TYPE, // __PPP_TYPE_PDP_DIALUP_SUPPORT__
+ PPPE_PPP_PDP_CONTEXT_INCORRECT,
+ PPPE_PPP_ERROR_CAUSE_ENUM_SIZE
+} ppp_error_cause_enum;
+
+typedef enum
+{
+ NULL_L2P = 1,
+ PPP,
+ MANUFACTURER_PROTOCOL
+} mmi_ltwoh_protocol_enum;
+
+enum
+{
+ PPPE_RESULT_SUCCESS,
+ PPPE_RESULT_FAILED
+};
+
+typedef enum {
+ FSM_INITIAL,
+ FSM_STARTING,
+ FSM_CLOSED,
+ FSM_STOPPED,
+ FSM_CLOSING,
+ FSM_STOPPING,
+ FSM_REQSENT,
+ FSM_ACKRCVD,
+ FSM_ACKSENT,
+ FSM_OPENED,
+ FSM_STATE_SIZE
+} ppp_fsm_state_enum;
+
+typedef enum {
+ VENDOREXT = 0,
+ CONF_REQ = 1,
+ CONF_ACK = 2,
+ CONF_NAK = 3,
+ CONF_REJ = 4,
+ TERM_REQ = 5,
+ TERM_ACK = 6,
+ CODE_REJ = 7,
+ PROTO_REJ = 8,
+ ECHO_REQ = 9,
+ ECHO_RPLY = 10,
+ DISCARD_REQ = 11,
+ IDENTIFICATION = 12,
+ TIMEREMAIN = 13,
+ RESET_REQ = 14,
+ RESET_ACK = 15,
+ NULL_CODE = 0xFF
+} ppp_fsm_code_enum;
+
+/*
+ * PPP Phase
+ */
+typedef enum
+{
+ PPP_INIT_STATE = 0,
+ PPP_TYPE_PDP_DIALUP_INIT_STATE = PPP_INIT_STATE,
+ PPP_LCP_STATE,
+ PPP_AUTH_STATE,
+ PPP_PDP_STATE,
+ PPP_IPCP_STATE,
+ PPP_IPV6CP_STATE,
+ PPP_DATA_STATE,
+ PPP_TERM_0_STATE,
+ PPP_TERM_1_STATE,
+ PPP_TERM_2_STATE,
+ PPP_TERM_3_STATE,
+ /*
+ * When Used for GPRS dialup, the state PPP_TERM_3_STATE
+ * means PPP will send L4CPPP_DEACTIVATE_CNF to L4C after receiving TAF_EXT_PDP_DEACTIVATE_ACK_RSP,
+ * After 2 scenarios, PPP will enter this state:
+ * (1) CBM L4C deactivate PPP in PPP_DATA_STATE, or
+ * (2) AT+CGACT=0 L4C deactivate PPP in PPP_PDP_STATE, PPP_IPCP_STATE, PPP_DATA_STATE, PPP_TERM_1_STATE, or PPP_TERM_2_STATE
+ */
+ PPP_TERM_4_STATE,
+ /*
+ * When Used for GPRS dialup, the state PPP_TERM_4_STATE
+ * means PPP will send L4CPPP_DEACTIVATE_CNF to L4C after receiving Term_Ack,
+ * After 1 scenarios, PPP will enter this state:
+ * (1) AT+CGACT=0 L4C deactivate PPP in PPP_LCP_STATE, PPP_AUTH_STATE, PPP_TERM_0_STATE
+ */
+ PPP_TYPE_PDP_DIALUP_PDP_ACTIVATING_STATE, /* __PPP_TYPE_PDP_DIALUP_SUPPORT__ */
+ PPP_TYPE_PDP_DIALUP_PDP_ACTIVATED_STATE, /* __PPP_TYPE_PDP_DIALUP_SUPPORT__ */
+ PPP_TYPE_PDP_DIALUP_LCP_NEGOTIATING_STATE, /* __PPP_TYPE_PDP_DIALUP_SUPPORT__ */
+ PPP_TYPE_PDP_DIALUP_AUTH_NEGOTIATING_STATE, /* __PPP_TYPE_PDP_DIALUP_SUPPORT__ */
+ PPP_TYPE_PDP_DIALUP_NCP_NEGOTIATING_STATE, /* __PPP_TYPE_PDP_DIALUP_SUPPORT__ */
+ PPP_TYPE_PDP_DIALUP_DATA_STATE, /* __PPP_TYPE_PDP_DIALUP_SUPPORT__ */
+ PPP_TYPE_PDP_DIALUP_DEACTIVATING_STATE, /* __PPP_TYPE_PDP_DIALUP_SUPPORT__ */
+ PPP_TYPE_PDP_LAST_STATE = PPP_TYPE_PDP_DIALUP_DEACTIVATING_STATE,
+ PPP_STATE_SIZE
+} ppp_state_enum;
+
+/*
+ * PPP FSM index
+ */
+typedef enum
+{
+ LCP,
+ AUTH,
+ IPCP, //IPV4 or IPV4V6 or IPV6
+ IPV6CP, //IPV4 + IPV6
+ PPP_FSM_SIZE
+} ppp_fsm_idx_enum;
+
+typedef enum /* remember who activate CSD, WAP or EXT-MODEM*/ /*Not Used*/
+{
+ CSD_CONTEXT_OCCUPIED_BY_NONE,
+ CSD_CONTEXT_OCCUPIED_BY_WAP_OVER_CSD,
+ CSD_CONTEXT_OCCUPIED_BY_EXT_MODEM,
+ CSD_CONTEXT_OCCUPIED_BY_WHO_ENUM_SIZE
+} csd_context_occupied_by_which_app_enum;
+
+typedef enum // For __PPP_TYPE_PDP_DIALUP_SUPPORT__
+{
+ PPP_PDP_NW_PPP_STATUS_NOT_RUNNING = 0,
+ PPP_PDP_NW_PPP_STATUS_RUNNING,
+ PPP_PDP_NW_PPP_STATUS_UE_HAS_SENT_TERM_REQ,
+ PPP_PDP_NW_PPP_STATUS_UE_HAS_RCVD_TERM_REQ,
+ PPP_PDP_NW_PPP_STATUS_ENUM_SIZE
+}ppppdp_nw_ppp_status_enum;
+
+typedef enum // For __PPP_TYPE_PDP_DIALUP_SUPPORT__
+{
+ PPP_PDP_NW_PDP_STATUS_NOT_ACTIVATED = 0,
+ PPP_PDP_NW_PDP_STATUS_ACTIVATING,
+ PPP_PDP_NW_PDP_STATUS_ACTIVATED,
+ PPP_PDP_NW_PDP_STATUS_DISCONNECTING,
+ PPP_PDP_NW_PDP_STATUS_ENUM_SIZE
+}ppppdp_nw_pdp_status_enum;
+
+typedef enum // For __PPP_TYPE_PDP_DIALUP_SUPPORT__
+{
+ PPP_PDP_PC_PPP_STATUS_NOT_RUNNING = 0,
+ PPP_PDP_PC_PPP_STATUS_RUNNING,
+ PPP_PDP_PC_PPP_STATUS_UE_HAS_SENT_TERM_REQ,
+ PPP_PDP_PC_PPP_STATUS_UE_HAS_RCVD_TERM_REQ,
+ PPP_PDP_PC_PPP_STATUS_ENUM_SIZE
+}ppppdp_pc_ppp_status_enum;
+
+typedef enum // For __PPP_TYPE_PDP_DIALUP_SUPPORT__
+{
+ PPP_PDP_FINAL_MSG_TO_L4_NONE = 0,
+ PPP_PDP_FINAL_MSG_TO_L4_IS_ACTIVATE_CNF_FAIL, // 1
+ PPP_PDP_FINAL_MSG_TO_L4_IS_DEACTIVATE_IND, // 2
+ PPP_PDP_FINAL_MSG_TO_L4_IS_DEACTIVATE_CNF, // 3
+ PPP_PDP_FINAL_MSG_TO_L4_ENUM_SIZE
+}ppppdp_final_msg_to_l4_enum;
+
+typedef enum
+{
+ PPPPDP_EVENT_SEE_IP_PACKET,
+ PPPPDP_EVENT_RCV_L4CPPP_ACTIVATE_REQ,
+ PPPPDP_EVENT_RCV_TAF_EXT_PDP_ACTIVATE_REJ_RSP,
+ PPPPDP_EVENT_RCV_TAF_EXT_PDP_ACTIVATE_ACK_RSP,
+ PPPPDP_EVENT_RCV_L4CPPP_PPPTYPEPDP_UART_TRANSFER_IND,
+ PPPPDP_EVENT_RCV_L4C_DEACTIVATE_REQ,
+ PPPPDP_EVENT_RCV_NW_PDP_DEACTIVATE_REQ,
+ PPPPDP_EVENT_RCV_NW_PDP_DEACTIVATE_ACK_RSP, //
+ PPPPDP_EVENT_RCV_PC_PPP_LCP_TERM_REQ,
+ PPPPDP_EVENT_RCV_PC_PPP_LCP_TERM_ACK,
+ PPPPDP_EVENT_RCV_NW_PPP_LCP_TERM_REQ,
+ PPPPDP_EVENT_RCV_NW_PPP_LCP_TERM_ACK,
+ PPPPDP_EVENT_RCV_AT_COMMAND,
+ PPPPDP_EVENT_RCV_UART_PLUGOUT,
+ PPPPDP_EVENT_RCV_ESCAPE,
+ PPPPDP_EVENT_SEE_AUTH_FRAME,
+ PPPPDP_EVENT_SEE_NCP_FRAME,
+ PPPPDP_EVENT_SEE_NCP_IPV4CP_NW_TO_PC_CONF_ACK_FRAME,
+ PPPPDP_EVENT_ALL_DISCONNECT_CONDITIONS_ARE_FULFILLED,
+ PPPPDP_EVENT_ENUM_SIZE
+} ppp_ppp_pdp_event_enum;
+
+#endif
+
+
diff --git a/mcu/interface/protocol/general/protocol_section.h b/mcu/interface/protocol/general/protocol_section.h
new file mode 100644
index 0000000..37cb99e
--- /dev/null
+++ b/mcu/interface/protocol/general/protocol_section.h
@@ -0,0 +1,359 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * protocol_section.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#ifndef _PROTOCOL_SECTION_H
+#define _PROTOCOL_SECTION_H
+
+typedef enum /* Global Protocol Section ID */
+{
+ PROTOCOL_SECTION__GAN_TCP = 100,
+ PROTOCOL_SECTION__GAN_UDP,
+
+ PROTOCOL_SECTION__GSM_RLCMAC_DL = 200,
+ PROTOCOL_SECTION__GSM_RLCMAC_UL,
+
+ PROTOCOL_SECTION__LLC = 300,
+
+ PROTOCOL_SECTION__NAS = 400,
+ PROTOCOL_SECTION__NAS_MM_UL,
+ PROTOCOL_SECTION__NAS_MM_DL,
+ PROTOCOL_SECTION__NAS_GMM_UL,
+ PROTOCOL_SECTION__NAS_GMM_DL,
+ PROTOCOL_SECTION__NAS_SMS_RPDU, // 405
+ PROTOCOL_SECTION__NAS_SMS_TPDU,
+ PROTOCOL_SECTION__NAS_SMS_TPDU_DELIVER = PROTOCOL_SECTION__NAS_SMS_TPDU,
+ PROTOCOL_SECTION__NAS_SMS_TPDU_DELIVER_REPORT_ACK,
+ PROTOCOL_SECTION__NAS_SMS_TPDU_DELIVER_REPORT_NACK,
+ PROTOCOL_SECTION__NAS_SMS_TPDU_STATUS_REPORT,
+ PROTOCOL_SECTION__NAS_SMS_TPDU_COMMAND, // 410
+ PROTOCOL_SECTION__NAS_SMS_TPDU_SUBMIT,
+ PROTOCOL_SECTION__NAS_SMS_TPDU_SUBMIT_REPORT_ACK,
+ PROTOCOL_SECTION__NAS_SMS_TPDU_SUBMIT_REPORT_NACK,
+ PROTOCOL_SECTION__NAS_SMS_TPDU_END = PROTOCOL_SECTION__NAS_SMS_TPDU_SUBMIT_REPORT_NACK,
+ PROTOCOL_SECTION__NAS_CC_UL,
+ PROTOCOL_SECTION__NAS_CC_DL,
+ PROTOCOL_SECTION__NAS_CISS_UL,
+ PROTOCOL_SECTION__NAS_CISS_DL,
+ PROTOCOL_SECTION__NAS_SM,
+ PROTOCOL_SECTION__NAS_UPDS,
+ PROTOCOL_SECTION__NAS_END = PROTOCOL_SECTION__NAS_UPDS,
+
+ /* "gsm_a_dtap" : for msg w/o pseudolength
+ "gsm_a_ccch" : for msg w/ pseudolength
+ "gsm_a_sacch": for short PD
+ */
+ PROTOCOL_SECTION__RR = 500, /*"gsm_a_dtap" */
+ PROTOCOL_SECTION__RR_with_pseudolength, /*"gsm_a_ccch" */
+ PROTOCOL_SECTION__RR_short_PD, /*"gsm_a_sacch" */
+
+ PROTOCOL_SECTION__RR_dl_with_pseudolength, /*"gsm_a_ccch" */
+ PROTOCOL_SECTION__RR_ul_with_pseudolength, /*"gsm_a_ccch" */
+
+ PROTOCOL_SECTION__RR_end = PROTOCOL_SECTION__RR_ul_with_pseudolength,
+
+ PROTOCOL_SECTION__SNDCP = 600,
+ PROTOCOL_SECTION__SNDCPXID,
+
+ PROTOCOL_SECTION__LTE_RRC_BCCH_BCH = 700,
+ PROTOCOL_SECTION__LTE_RRC_BCCH_DL_SCH,
+ PROTOCOL_SECTION__LTE_RRC_DL_CCCH,
+ PROTOCOL_SECTION__LTE_RRC_DL_DCCH,
+ PROTOCOL_SECTION__LTE_RRC_PCCH,
+ PROTOCOL_SECTION__LTE_RRC_UL_CCCH,
+ PROTOCOL_SECTION__LTE_RRC_UL_DCCH,
+ PROTOCOL_SECTION__LTE_RRC_MCCH,
+ PROTOCOL_SECTION__LTE_RRC_UE_EUTRA_CAP,
+ PROTOCOL_SECTION__LTE_RRC_UE_CAPABILITY_ENQUIRY_FROM_NR,
+
+ PROTOCOL_SECTION__NAS_EPS = 800,
+ PROTOCOL_SECTION__NAS_EPS_PLAIN,
+ PROTOCOL_SECTION__NAS_5GS,
+ PROTOCOL_SECTION__NAS_5GSM,
+ PROTOCOL_SECTION__NAS_5GS_PLAIN,
+
+ PROTOCOL_SECTION__RRC_BCCH_BCH = 900,
+ PROTOCOL_SECTION__RRC_BCCH_FACH,
+ PROTOCOL_SECTION__RRC_DL_CCCH,
+ PROTOCOL_SECTION__RRC_DL_DCCH,
+ PROTOCOL_SECTION__RRC_DL_SHCCH,
+ PROTOCOL_SECTION__RRC_MCCH,
+ PROTOCOL_SECTION__RRC_MSCH,
+ PROTOCOL_SECTION__RRC_PCCH,
+ PROTOCOL_SECTION__RRC_UL_CCCH,
+ PROTOCOL_SECTION__RRC_UL_DCCH,
+ PROTOCOL_SECTION__RRC_UL_SHCCH,
+ PROTOCOL_SECTION__RRC_HANDOVER_TO_UTRAN_COMMAND,
+ PROTOCOL_SECTION__RRC_IRAT_HO_INFO,
+
+ PROTOCOL_SECTION__RRC_SI_MIB = 1000,
+ PROTOCOL_SECTION__RRC_SI_SB1,
+ PROTOCOL_SECTION__RRC_SI_SB2,
+ PROTOCOL_SECTION__RRC_SI_SIB1,
+ PROTOCOL_SECTION__RRC_SI_SIB2,
+ PROTOCOL_SECTION__RRC_SI_SIB3,
+ PROTOCOL_SECTION__RRC_SI_SIB4,
+ PROTOCOL_SECTION__RRC_SI_SIB5,
+ PROTOCOL_SECTION__RRC_SI_SIB5bis,
+ PROTOCOL_SECTION__RRC_SI_SIB6,
+ PROTOCOL_SECTION__RRC_SI_SIB7,
+ PROTOCOL_SECTION__RRC_SI_SIB8,
+ PROTOCOL_SECTION__RRC_SI_SIB9,
+ PROTOCOL_SECTION__RRC_SI_SIB10,
+ PROTOCOL_SECTION__RRC_SI_SIB11,
+ PROTOCOL_SECTION__RRC_SI_SIB11bis,
+ PROTOCOL_SECTION__RRC_SI_SIB12,
+ PROTOCOL_SECTION__RRC_SI_SIB13,
+ PROTOCOL_SECTION__RRC_SI_SIB13_1,
+ PROTOCOL_SECTION__RRC_SI_SIB13_2,
+ PROTOCOL_SECTION__RRC_SI_SIB13_3,
+ PROTOCOL_SECTION__RRC_SI_SIB13_4,
+ PROTOCOL_SECTION__RRC_SI_SIB14,
+ PROTOCOL_SECTION__RRC_SI_SIB15,
+ PROTOCOL_SECTION__RRC_SI_SIB15bis,
+ PROTOCOL_SECTION__RRC_SI_SIB15_1,
+ PROTOCOL_SECTION__RRC_SI_SIB15_1bis,
+ PROTOCOL_SECTION__RRC_SI_SIB15_2,
+ PROTOCOL_SECTION__RRC_SI_SIB15_2bis,
+ PROTOCOL_SECTION__RRC_SI_SIB15_3,
+ PROTOCOL_SECTION__RRC_SI_SIB15_3bis,
+ PROTOCOL_SECTION__RRC_SI_SIB15_4,
+ PROTOCOL_SECTION__RRC_SI_SIB15_5,
+ PROTOCOL_SECTION__RRC_SI_SIB15_6,
+ PROTOCOL_SECTION__RRC_SI_SIB15_7,
+ PROTOCOL_SECTION__RRC_SI_SIB15_8,
+ PROTOCOL_SECTION__RRC_SI_SIB16,
+ PROTOCOL_SECTION__RRC_SI_SIB17,
+ PROTOCOL_SECTION__RRC_SI_SIB18,
+ PROTOCOL_SECTION__RRC_SI_SIB19,
+ PROTOCOL_SECTION__RRC_SI_SIB20,
+ PROTOCOL_SECTION__RRC_SI_SIB21,
+ PROTOCOL_SECTION__RRC_SI_SIB22,
+
+ PROTOCOL_SECTION__LTE_LPP_UL = 1100,
+ PROTOCOL_SECTION__LTE_LPP_DL,
+ PROTOCOL_SECTION__ULP = 1200,
+
+ PROTOCOL_SECTION__NR_START = 1300,
+ PROTOCOL_SECTION__NR_RRC_BCCH_BCH = PROTOCOL_SECTION__NR_START,
+ PROTOCOL_SECTION__NR_RRC_DL_DCCH,
+ PROTOCOL_SECTION__NR_RRC_UL_DCCH,
+ PROTOCOL_SECTION__NR_RRC_RRC_RECONFIGURATION,
+ PROTOCOL_SECTION__NR_RRC_RRC_RECONFIGURATION_COMPLETE,
+ PROTOCOL_SECTION__NR_RRC_MEASUREMENT_REPORT,
+ PROTOCOL_SECTION__NR_RRC_RADIO_BEARER_CONFIG_IE,
+ PROTOCOL_SECTION__NR_RRC_UE_MRDC_CAPABILITY_IE,
+ PROTOCOL_SECTION__NR_RRC_UE_NR_CAPABILITY_IE,
+ PROTOCOL_SECTION__NR_RRC_MEAS_RESULT_SCG_FAILURE_IE,
+ PROTOCOL_SECTION__NR_RRC_BCCH_DL_SCH,
+ PROTOCOL_SECTION__NR_RRC_PCCH,
+ PROTOCOL_SECTION__NR_RRC_DL_CCCH,
+ PROTOCOL_SECTION__NR_RRC_UL_CCCH,
+ PROTOCOL_SECTION__NR_RRC_UL_CCCH1,
+ PROTOCOL_SECTION__NR_RRC_FREQ_BAND_LIST_IE,
+ PROTOCOL_SECTION__NR_RRC_UE_CAPABILITY_REQUEST_FILTER_NR_IE,
+ PROTOCOL_SECTION__NR_SIB1,
+ PROTOCOL_SECTION__NR_SystemInformation,
+ PROTOCOL_SECTION__NR_END = PROTOCOL_SECTION__NR_SystemInformation,
+
+ PROTOCOL_SECTION__UNKOWN = 2000,
+
+ PROTOCOL_SECTION__C2K_START = 2001,
+ PROTOCOL_SECTION_C2K,
+ PROTOCOL_SECTION__C2K_OVERHEAD_START,
+ PROTOCOL_SECTION__C2K_1XRTT_OVERHEAD,
+ PROTOCOL_SECTION__C2K_EVDO_OVERHEAD,
+ PROTOCOL_SECTION__C2K_OVERHEAD_END = 2010,
+
+ PROTOCOL_SECTION__C2K_OTA_START = 2011,
+ PROTOCOL_SECTION__C2K_1X_OTA,
+ PROTOCOL_SECTION__C2K_EVDO_OTA,
+ PROTOCOL_SECTION__C2K_OTA_END = 2029,
+ PROTOCOL_SECTION__C2K_END = 2030
+} PROTOCOL_SECTION;
+
+#endif /* ~_PROTOCOL_SECTION_H */
diff --git a/mcu/interface/protocol/general/ps2sat_struct.h b/mcu/interface/protocol/general/ps2sat_struct.h
new file mode 100644
index 0000000..81f2df1
--- /dev/null
+++ b/mcu/interface/protocol/general/ps2sat_struct.h
@@ -0,0 +1,195 @@
+/*****************************************************************************
+* 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_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for SIM toolkit's message
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _PS2SAT_STRUCT_H
+#define _PS2SAT_STRUCT_H
+
+#include "sim_public_struct.h"
+#include "sim_ps_struct.h"
+
+#endif
diff --git a/mcu/interface/protocol/general/ps2sim_struct.h b/mcu/interface/protocol/general/ps2sim_struct.h
new file mode 100644
index 0000000..d27f0cd
--- /dev/null
+++ b/mcu/interface/protocol/general/ps2sim_struct.h
@@ -0,0 +1,200 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * PS2SIM_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for SIM's message
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 : ps2sim_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _PS2SIM_STRUCT_H
+#define _PS2SIM_STRUCT_H
+
+#include "sim_public_struct.h"
+#include "sim_ps_struct.h"
+
+#endif
diff --git a/mcu/interface/protocol/general/ps_em_enum.h b/mcu/interface/protocol/general/ps_em_enum.h
new file mode 100644
index 0000000..ffa9156
--- /dev/null
+++ b/mcu/interface/protocol/general/ps_em_enum.h
@@ -0,0 +1,341 @@
+/*****************************************************************************
+* 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) 2010
+*
+* 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:
+ * ---------
+ * ps_em_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is for engineer mode.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by ClearCase. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * $Log$
+ *
+ * 11 01 2016 mw.hsu
+ * [MOLY00210922] [copy MOLY00208189] [NWSEL] nas_em_display_hplmn
+ * .
+ *
+ * 04 23 2015 yuhhwang.yu
+ * [MOLY00095378] Amazon Requirement
+ * . CISE UMOLY part
+ *
+ * 11 20 2014 hong.yu
+ * [MOLY00084132] [UMOLY] sync MOLY, MT6291_DEV, and UMOLY
+ * update test mode and mmdc mode to MRS
+ *
+ * 08 11 2014 ming.lee
+ * [MOLY00075020] [2014 TMO-US][Rome][IP-ACCESS][23G][IOT] ELT- EM mode did not show the AMR ¡V HR rate codec and was displaying as AMR_MODE_INVALID
+ * .
+ *
+ * 11 07 2013 carlson.lin
+ * [MOLY00045033] [MOLY][SM][ESM][TCM][TFT][Custom] NRSPCA(NISPCA) Network Requested/Initiated Secondary PDP Context Activation
+ * Add OPERATOR_TEST_CU mode and OPERATOR_TEST_VODAFONE mode for MT Secondary Test
+ *
+ * 11 05 2013 carlson.lin
+ * [MOLY00045033] [MOLY][SM][ESM][TCM][TFT][Custom] NRSPCA(NISPCA) Network Requested/Initiated Secondary PDP Context Activation
+ * MT Secondary (Implement Ericsson IOT Mode)
+ *
+ * 05 30 2013 vend_edwin.liu
+ * [MOLY00007674] [MT6589][DoCoMo][3G][IOT][FD&ETWS][461-1101-0101] CSCB channel cannot turn on the 40960~43007 by default setting
+ * .
+ *
+ * 05 24 2013 hong.yu
+ * [MOLY00023597] [Volunteer Patch][Fast Dormancy] Telefonica_2013Q1_TR-UMTSR-FASTD-002d
+ * GENERAL_BIT_FOR_DISABLE_SCRI_ONLY
+ *
+ * 05 07 2013 morton.lin
+ * [MOLY00011957] [MT6290][3G][RRCE] Multimode IT CBr merge back to MOLY
+ * Code sync (MOLY TRUNK)
+ *
+ * 05 06 2013 ming.lee
+ * [MOLY00021409] EM & Peer Trace Optimization: Merge to MOLY
+ * Extract_AMR_Codec_from_L1
+ *
+ * 03 19 2013 xuejing.chen
+ * [MOLY00008978] modify or remove CTA related code
+ * replace CTA mode with Integrity Protection OFF mode.
+ *
+ * 01 23 2013 morton.lin
+ * [MOLY00009162] [Multimode][RRCE] Code merge back to MOLY
+ * Part 2 - Other common files for Multimode
+ *
+ * 10 30 2012 hong.yu
+ * [MOLY00005424] IOT/Operator Test Mode
+ * fix typo
+ *
+ * 10 26 2012 hong.yu
+ * [MOLY00005424] IOT/Operator Test Mode
+ * check in test profile definition
+ *
+ * 10 12 2012 chi-chung.lin
+ * [MOLY00004506] [MT6280] DoCoMo RPLMN Selection compile option `__RPLMN_INFO_CELL_SELECTION__' removal
+ * .
+ *
+ * 10 10 2012 xi.li
+ * [MOLY00004143] [PSS5]TDD_R9_DEV Patch back to MOLY
+ * .
+ *
+ * 07 17 2012 lexel.yu
+ * [MOLY00000844] [L4C] Factory mode auto camp on and auto answer
+ * Integration change.
+ *
+ * 05 09 2012 chenhao.gong
+ * removed!
+ * .
+ *
+ * 05 09 2012 lijuan.qi
+ * removed!
+ * .
+ *
+ * 05 04 2012 lexel.yu
+ * removed!
+ * Integration change.
+ *
+ * 11 18 2011 chenhao.gong
+ * removed!
+ * .
+ *
+ * 11 09 2011 chenhao.gong
+ * removed!
+ * .
+ *
+ * 10 28 2011 lexel.yu
+ * removed!
+ * Integration change.
+ *
+ * 09 27 2011 lexel.yu
+ * removed!
+ * Integration change.
+ *
+ * 06 10 2011 lexel.yu
+ * removed!
+ * Integration change.
+ *
+ * 05 11 2011 xi.li
+ * removed!
+ * .
+ *
+ * 04 20 2011 xuechao.wang
+ * removed!
+ * .
+ *
+ * 03 09 2011 popcafa.shih
+ * removed!
+ * .
+ *
+ * 03 04 2011 xi.li
+ * removed!
+ * .
+ *
+ * 03 01 2011 junzhen.qin
+ * removed!
+ * .
+ *
+ * 02 24 2011 yongjiao.yu
+ * removed!
+ * .
+ *
+ * 02 17 2011 yongjiao.yu
+ * removed!
+ * FDD2TDD code sync stage 3, CTA menu, steady_inactive_ind.
+ *
+ * 12 08 2010 yc.chen
+ * removed!
+ * .
+ *
+ * 11 24 2010 zhiwei.wang
+ * removed!
+ * Patch NVRAM parts for EM menu.
+ *
+ * 11 23 2010 chenhao.gong
+ * removed!
+ * L4 Add PS conformance test EM menu support & AT command Support
+ *
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by ClearCase. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __PS_EM_ENUM_H__
+#define __PS_EM_ENUM_H__
+
+#include "ps_em_exported_enum.h"
+
+
+/* -----------For NW EVENT start--------------------- */
+#define MAX_LEN_OF_NW_EVENT_NAME 20
+#define MAX_LEN_OF_NW_GROUP_NAME 5
+#define EM_NW_NUM_OF_QUEUE_EVENT 32
+
+typedef enum
+{
+/* John Tang 2006/11/13 */
+#ifdef __UMTS_RAT__
+
+ /* MOD_UMAC */
+ EM_NW_EVENT_ID_UMAC_EVENT_START,
+
+ EM_NW_EVENT_ID_UMAC_EVENT_END,
+
+ /* MOD_CSCE */
+ EM_NW_EVENT_ID_CSCE_CELL_RESELECTION_EVENT,
+ EM_NW_EVENT_ID_CSCE_NEW_CELL_SELECTED_EVENT,
+ EM_NW_EVENT_ID_CSCE_OUT_OF_SERVICE_EVENT,
+ EM_NW_EVENT_ID_CSCE_IN_SERVICE_EVENT,
+
+ /* MOD_MEME */
+ EM_NW_EVENT_ID_MEME_EVENT_SPECIFIC_CELL_IND,
+
+ /* MOD_RRCE */
+ EM_NW_EVENT_ID_RRCE_IRHO_3G2_EVENT,
+ EM_NW_EVENT_ID_RRCE_IRCCO_3G2_EVENT,
+ EM_NW_EVENT_ID_RRCE_IRCR_3G2_EVENT,
+
+ EM_NW_EVENT_ID_RRCE_IRHO_3G4_EVENT,
+ EM_NW_EVENT_ID_RRCE_IRCR_3G4_EVENT,
+
+ /* MOD_SLCE */
+ EM_NW_EVENT_ID_SLCE_EVENT_START,
+
+ EM_NW_EVENT_ID_SLCE_EVENT_END,
+
+#endif /* __UMTS_RAT__ */
+
+ EM_NW_EVENT_ID_TEST0, /* 0 */
+ EM_NW_EVENT_ID_TEST1,
+ EM_NW_EVENT_ID_TEST2,
+ EM_NW_EVENT_ID_TEST3,
+ EM_NW_EVENT_ID_TEST4,
+ EM_NW_EVENT_ID_TEST5,
+ EM_NW_EVENT_ID_TEST6, /* 5 */
+ EM_NW_EVENT_ID_TEST7,
+ EM_NW_EVENT_ID_TEST8,
+ EM_NW_EVENT_ID_TEST9,
+ EM_NW_EVENT_ID_TEST10,
+ EM_NW_EVENT_ID_TEST11, /* 10 */
+ EM_NW_EVENT_ID_TEST12,
+ EM_NW_EVENT_ID_TEST13,
+ EM_NW_EVENT_ID_TEST14,
+ EM_NW_EVENT_ID_TEST15,
+ EM_NW_EVENT_ID_TEST16, /* 15 */
+ EM_NW_EVENT_ID_TEST17,
+ EM_NW_EVENT_ID_TEST18,
+ EM_NW_EVENT_ID_TEST19,
+ EM_NW_EVENT_ID_TEST20,
+ EM_NW_EVENT_ID_TEST21, /* 20 */
+ EM_NW_EVENT_ID_TEST22,
+ EM_NW_EVENT_ID_TEST23,
+ EM_NW_EVENT_ID_TEST24,
+ EM_NW_EVENT_ID_TEST25,
+ EM_NW_EVENT_ID_TEST26, /* 25 */
+ EM_NW_EVENT_ID_TEST27,
+ EM_NW_EVENT_ID_TEST28,
+ EM_NW_EVENT_ID_TEST29,
+ EM_NW_EVENT_ID_TEST30,
+ EM_NW_EVENT_ID_TEST31, /* 30 */
+ EM_NW_EVENT_ID_TEST32,
+ EM_NW_EVENT_ID_TEST33,
+ EM_NW_EVENT_ID_TEST34,
+ EM_NW_EVENT_ID_TEST35,
+ EM_NW_EVENT_ID_TEST36, /* 35 */
+ EM_NW_EVENT_ID_TEST37,
+
+ /* RAC Event start */
+ EM_NW_EVENT_ID_CELL_POWER_LEVEL_IND,
+ EM_NW_EVENT_ID_GMMREG_ATTACH_CNF,
+
+ /* RAC Event End */
+ EM_NW_EVENT_ID_CSCE_WCDMA_TO_WCDMA_RESEL_FAIL_EVENT,
+ EM_NW_EVENT_ID_CSCE_WCDMA_TO_GSM_RESEL_FAIL_EVENT,
+ EM_NW_EVENT_ID_CSCE_WCDMA_CELL_SELEC_FAIL,
+
+ EM_NW_EVENT_ID_MAX
+
+} EM_NW_EVENT_ID_ENUM;
+
+typedef enum
+{
+#ifdef __UMTS_RAT__
+ //EM_NW_EVENT_GROUP_UMAC,
+ EM_NW_EVENT_GROUP_CSCE,
+ EM_NW_EVENT_GROUP_MEME,
+ EM_NW_EVENT_GROUP_RRCE,
+ //EM_NW_EVENT_GROUP_SLCE,
+#endif /* __UMTS_RAT__ */
+ EM_NW_EVENT_GROUP_RAC,
+ /* don't remove this item and add new item before it */
+ EM_NW_MAX_NO_OF_GROUP
+} EM_NW_EVENT_GROUP_ENUM;
+/* -----------For NW EVENT end------------------------- */
+
+#ifdef __AMR_SUPPORT__
+typedef enum
+{
+ EM_AMR_MODE_475,
+ EM_AMR_MODE_515,
+ EM_AMR_MODE_590,
+ EM_AMR_MODE_670,
+ EM_AMR_MODE_740,
+ EM_AMR_MODE_795,
+ EM_AMR_MODE_1020, /* This is the number of half rate codec modes. */
+ EM_AMR_MODE_1220,
+ EM_AMR_MODE_NONE, /* This is the number of full rate codec modes. */
+} em_amr_mode_enum;
+#endif /* __AMR_SUPPORT__ */
+
+typedef enum {
+ NETW_STATE_HOME,
+ NETW_STATE_HOME_EQUIV,
+ NETW_STATE_ROAM
+} netw_serv_state_enum;
+
+#endif /* __PS_EM_ENUM_H__ */
+
+
diff --git a/mcu/interface/protocol/general/ps_public_def.h b/mcu/interface/protocol/general/ps_public_def.h
new file mode 100644
index 0000000..e3437b0
--- /dev/null
+++ b/mcu/interface/protocol/general/ps_public_def.h
@@ -0,0 +1,68 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps_public_def.h
+ *
+ * Description:
+ * ------------
+ * This file is intends for put the header of PS public definition
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+*****************************************************************************/
+#ifndef _PS_PUBLIC_DEF_H_
+#define _PS_PUBLIC_DEF_H_
+
+#define EAS_POWER_LEVEL_IND_INVALID_RSRP (1)
+#define EAS_POWER_LEVEL_IND_INVALID_RSRQ (1)
+#define EAS_POWER_LEVEL_IND_INVALID_RSSI (1)
+
+#define EAS_POWER_LEVEL_IND_RSRP_DIFF_QDBM (8*4) /* If the diff between the previously reported rsrp and the latest rsrp
+ exceeds this threshold, EAS should send POWER_LEVEL_IND to update power level */
+
+#define EAS_POWER_LEVEL_IND_RSRQ_DIFF_QDBM (3*4) /* If the diff between the previously reported rsrq and the latest rsrq
+ exceeds this threshold, EAS should send POWER_LEVEL_IND to update power level */
+#define L4C_INVALID_RS_SNR 0x7fff
+
+#define L4C_INVALID_SIGNAL_INT16 0x7FFF
+
+#define L4C_INVALID_NR_SIGNAL_VALUE 0x7FFFFFFF /* Invalid value for 5G signal */
+
+#endif /* _PS_PUBLIC_DEF_H_ */
diff --git a/mcu/interface/protocol/general/ps_public_enum.h b/mcu/interface/protocol/general/ps_public_enum.h
new file mode 100644
index 0000000..bbde2e1
--- /dev/null
+++ b/mcu/interface/protocol/general/ps_public_enum.h
@@ -0,0 +1,5281 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps_public_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file contains the ABM network internal APIs
+ * and these APIs can only be used by MMI CBM and DA
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+#ifndef _PS_PUBLIC_ENUM_H_
+#define _PS_PUBLIC_ENUM_H_
+
+#include "custom_nvram_sec.h"
+#include "sbp_public_utility.h"
+#include "ps_public_enum_public.h"
+
+#define ip_addr_type_enum pdp_addr_type_enum
+
+#define MAX_PDP_ADDR_LEN 16
+#define TCM_MAX_PEER_ACL_ENTRIES 10
+
+#define MAX_GPRS_IP_ADDR 4 /* IP address length */
+
+#define GPRS_TIMER3_DEACTIVATED 0xFFFF
+
+#define LTECA_INTER_BAND_NUM_MAX 3 /* For LTE CA band settings */
+
+#if (MAX_EXT_PDP_CONTEXT >= 1)
+ #define MAX_GPRS_DIALUP_NUM MAX_EXT_PDP_CONTEXT /* MAX_GPRS_DIALUP_NUM is for L4C, ABM, RATDM use */
+#else
+ #define MAX_GPRS_DIALUP_NUM 1
+#endif /* MAX_EXT_PDP_CONTEXT >= 1 */
+
+#define INVALID_PDP_CONTEXT_ID (0x0)
+
+#ifdef __IMS_SUPPORT__
+#define MAX_NUM_CONFIG_OPTION_PACKETS 35 /* See tcm_pco_api.h for PCO number counting. */
+#else /* __IMS_SUPPORT__ */
+#define MAX_NUM_CONFIG_OPTION_PACKETS 28 /* See tcm_pco_api.h for PCO number counting. */
+#endif /* __IMS_SUPPORT__ */
+
+/* Poying: MSBB. */
+/* Support PAP or CHAP ID and PW length up to 128 Bytes */
+#define MAX_CONFIG_OPTION_CONTENT_LEN (MAX_GPRS_USER_NAME_LEN+MAX_GPRS_PASSWORD_LEN+6)
+#define LIMIT_CONFIG_OPTION_CONTENT_LEN (140)
+/* Restrict the length of user_name, password and APN */
+#if (MAX_CONFIG_OPTION_CONTENT_LEN > LIMIT_CONFIG_OPTION_CONTENT_LEN)
+ #error GPRS_USER_NAME_LEN and GPRS_PASSWORD_LEN exceed the maximum
+#endif
+
+/* Check if APN length is valid. */
+#if (MAX_GPRS_APN_LEN > 100)
+ #error MAX_GPRS_APN_LEN exceed the maximum
+#endif
+
+#define MD1_MAX_NUM_HPLMN 26
+#define MAX_EHPLMN_EF_LEN MD1_MAX_NUM_HPLMN*3
+
+#define MAX_GEO_COUNTRY_CODE_LEN 4
+#define MAX_GEO_MCC_NUM 6
+#define MAX_MCC_STR_LEN 4
+#define MAX_MNC_STR_LEN 4
+
+#define TCM_S_NSSAI_SD_LEN 3
+
+#define MAX_CHAR_CNAP 80
+
+#define MAX_NR_SET_STORED_NUM 10
+#define MAX_LTE_SET_STORED_NUM 10
+
+#define VZW_5GUW_Allowed_default 0
+#define VZW_FF03H_abnormal_default 0
+
+#define MAX_ALLOWED_MCC_LIST_NUMBER 20
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+#define MAX_PHB_XDN_URI_NUM 16
+#define MAX_PHB_XDN_URI_LEN 128
+#define MSD_MAX_LENGTH 140
+#endif /* (__ECALL_SUPPORT__) || (__NG_ECALL_SUPPORT__) */
+
+typedef enum {
+ TCM_PDP_DEACT_REASON_NORMAL_DEACT, /* Not DEACT PDN if it is the last one. */
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_TFT_CONFLICT, /* Force to DEACT PDN (even if it's the last one). */
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_TFT_VALIDATE_FAIL, /* RAT_TCM only try deactivation on the tft validation failure RAT, if iRAT to new RAT, need to re-evaluate if new RAT still have TFT_VALIDATE_FAIL */
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_RA_ERROR, // __VZW__ __VZW_7__
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_RA_INITIAL_ERROR,
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_RA_REFRESH_ERROR,
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_NO_PCSCF, // __VZW__ __VZW_11__
+ TCM_PDP_DEACT_REASON_ESM_INIT_DEACT_FOR_NON_EMC_PDN, /* Force to DEACT PDN (even if it's the last one). */
+ TCM_PDP_DEACT_REASON_ESM_INIT_DEACT_EPSB_FOR_ABNORMAL, /* Force to DEACT PDN (even if it's the last one). */
+ TCM_PDP_DEACT_REASON_INACTIVITY_TIMER_TIMEOUT,
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_USER_FORCE_TO_LOCAL_RELEASE, /* Force to DEACT PDN (even if it's the last one) */
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_AOSP_SHUTDOWN, /* AOSP Deact reason */
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_AOSP_HANDOVER, /* AOSP Deact reason */
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_APN_CHANGED, /* AOSP Deact reason */
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_IMS_HANDOVER, /* To release IMS PDN, after it handovers from Wifi to LTE */
+ TCM_PDP_DEACT_REASON_DEACT_DUE_TO_NO_IP_ADDRESS, /* VzW SA Data Retry 3.1.3.2.5 requirement*/
+ // If you need to add new enum, please make sure you have discussed with MOD_ESM, MOD_RAT_TCM, TFTLIB.
+} tcm_pdp_deact_reason_enum;
+
+typedef enum {
+ TCM_PDP_MODIFY_REASON_NORMAL_MODIFY,
+ TCM_PDP_MODIFY_REASON_NAS_INIT_TO_DELETE_QOS_RULE,
+} tcm_pdp_modify_reason_enum;
+
+typedef enum {
+ ACTIVE_NAS_UNKNOWN,
+ ACTIVE_NAS_23G,
+ ACTIVE_NAS_4G,
+ ACTIVE_NAS_5G,
+ ACTIVE_NAS_C2K,
+ MAX_NUM_OF_ACTIVE_NAS,
+} active_nas_enum;
+
+
+typedef enum {
+ NAS_PRIORITY_CONFIG_NOT_SPECIFIED, // value not given
+ NAS_PRIORITY_CONFIG_AS_LOW_PRIORITY, // 27.007: 0
+ NAS_PRIORITY_CONFIG_AS_NORMAL_PRIORITY, // 27.007: 1
+} nas_priority_config_enum ; // __MTC_SUPPORT__
+
+typedef enum {
+ EAB_OVERRIDE_CONFIG_NOT_SPECIFIED, // value not given
+ EAB_OVERRIDE_CONFIG_AS_NOT_OVERRIDE, // 27.007: 0
+ EAB_OVERRIDE_CONFIG_AS_CAN_OVERRIDE // 27.007: 1
+} eab_override_config_enum ; // __MTC_SUPPORT__
+
+//securePCO
+typedef enum
+{
+ TCM_SECUREPCO_NOT_SPECIFIED,
+ TCM_SECUREPCO_IS_NOT_REQUESTED, //Security protected transmission of PCO is not requested
+ TCM_SECUREPCO_IS_REQUESTED, //Security protected transmission of PCO is requested
+} l4c_tcm_securepco_enum;
+
+// PCO: for IPv4 MTU request
+typedef enum
+{
+ TCM_ACTIVATE_PDP_WITHOUT_IPV4_MTU_REQUEST = 0,
+ TCM_ACTIVATE_PDP_WITH_IPV4_MTU_REQUEST = 1
+}l4c_tcm_activate_pdp_request_ipv4_mtu_enum;
+
+//Local_Addr_Ind
+typedef enum
+{
+ TCM_LOCAL_ADDR_IND_NOT_SPECIFIED,
+ TCM_LOCAL_ADDR_IND_NOT_SUPPORT_LOCAL_IP_ADDRESS_IN_TFTS, //indicates that the MS does not support local IP address in TFTs
+ TCM_LOCAL_ADDR_IND_SUPPORT_LOCAL_IP_ADDRESS_IN_TFTS, //indicates that the MS supports local IP address in TFTs
+} l4c_tcm_local_addr_ind_enum;
+
+typedef enum
+{
+ TCM_NON_IP_MTU_DISCOVERY_NOT_SPECIFIED,
+ TCM_NON_IP_MTU_DISCOVERY_PREFERENCE_NOT_INFLUENCED, //Preference of Non-IP MTU size discovery not influenced by +CGDCONT
+ TCM_NON_IP_MTU_DISCOVERY_PREFERENCE_THROUGH_NAS_SIGNALLING, //Preference of Non-IP MTU size discovery through NAS signalling
+} l4c_tcm_non_ip_mtu_discovery_enum;
+
+typedef enum
+{
+ TCM_RELIABLE_DATA_SERVICE_NOT_SPECIFIED,
+ TCM_RELIABLE_DATA_SERVICE_NOT_USED, //Reliable Data Service is not being used for the PDN connection
+ TCM_RELIABLE_DATA_SERVICE_IS_USED, //Reliable Data Service is being used for the PDN connection
+} l4c_tcm_reliable_data_service_enum;
+
+typedef enum
+{
+ TCM_SSC_MODE_NOT_SPECIFIED,
+ TCM_SSC_MODE_1, //indicates that the PDU session is associated with SSC mode 1
+ TCM_SSC_MODE_2, //indicates that the PDU session is associated with SSC mode 2
+ TCM_SSC_MODE_3, //indicates that the PDU session is associated with SSC mode 3
+} l4c_tcm_ssc_mode_enum;
+
+typedef enum
+{
+ TCM_ACCESS_TYPE_NOT_SPECIFIED,
+ TCM_ACCESS_TYPE_PREFERRED_3GPP, //indicates that the preferred access type is 3GPP access
+ TCM_ACCESS_TYPE_PREFERRED_NON_3GPP, //indicates that the preferred access type is non-3GPP access
+} l4c_tcm_access_type_enum;
+
+typedef enum
+{
+ TCM_RQOS_NOT_SPECIFIED,
+ TCM_RQOS_IS_NOT_SUPPORTED, //indicates that reflective QoS is not supported for the PDU session
+ TCM_RQOS_IS_SUPPORTED, //indicates that reflective QoS is supported for the PDU session
+} l4c_tcm_rqos_ind_enum;
+
+typedef enum
+{
+ TCM_IPV6_MH_NOT_SPECIFIED,
+ TCM_IPV6_MH_IS_NOT_SUPPORTED, //indicates that IPv6 multi-homing is not supported for the PDU session
+ TCM_IPV6_MH_IS_SUPPORTED, //indicates that IPv6 multi-homing is supported for the PDU session
+} l4c_tcm_mh6_pdu_enum;
+
+typedef enum
+{
+ TCM_ALWAYS_ON_PDU_NOT_SPECIFIED,
+ TCM_ALWAYS_ON_PDU_IS_NOT_REQUIRED,
+ TCM_ALWAYS_ON_PDU_IS_REQUIRED,
+} l4c_tcm_always_on_pdu_enum;
+
+typedef enum
+{
+ TCM_LADN_DNN_NOT_SPECIFIED,
+ TCM_LADN_DNN_IS_NOT_LADN_DNN,
+ TCM_LADN_DNN_IS_LADN_DNN,
+} l4c_tcm_ladn_dnn_enum;
+
+typedef enum {
+ NAS_REQ_GEMINI_PS_HIGH_SEM_START = 0,
+ NAS_REQ_GEMINI_PS_HIGH_SEM_STOP
+} nas_req_gemini_ps_high_sem_enum ; // Multi-PS support
+
+#define MAX_SIM_PASSWD_LEN 9
+
+#define MAX_DIGITS_USSD 183
+#define MAX_CC_ADDR_LEN 81
+#define MAX_CC_ADDR_BCD_LEN 41
+#define MAX_CC_DTMF_LEN 41
+#define MAX_CC_DTMF_BCD_LEN 21
+#define L4C_MAX_CALL_LIST_LEN 7
+#define MAX_CC_SUB_ADDR_LEN 41
+#define MAX_CC_SUB_ADDR_BCD_LEN 21
+#define MAX_SIM_ADDR_BCD_LEN 41
+#define SIM_MAX_BUFFER_LEN 255
+#define SIM_MAX_AID_LEN 16
+#define SIM_MAX_APP_LABLE_LEN 32
+#define MAX_SIP_URI_LEN 129
+#define UIM_MAX_ERROR_FILE_NUM 4
+#define TC01_DUMMY_KEY_FOR_PORTUNLOCK "0123456789012345"
+
+typedef enum {
+ NO_SIM_AND_NO_USIM_ACTIVE,
+ SIM_ACTIVE,
+ USIM_ACTIVE
+} active_application_enum ;
+
+typedef enum {
+ CC_CALL_TYPE_VOICE_CALL,
+ CC_CALL_TYPE_EMERGENCY_CALL
+} cc_call_type_enum;
+
+typedef enum
+{
+ CC_DIR_MO_CALL,
+ CC_DIR_MT_CALL
+} cc_call_direction_enum;
+
+/* SMS PART START */
+#define SMSAL_MAX_CMD_LEN (156) /* max command data length */
+#define SMSAL_MAX_MSG_LEN (160)
+
+/*
+ * !! Attention !!
+ *
+ * the following constants are related to CB :
+ * the CB in RMC/MMI MUST be consistent with this defined values !!
+ *
+ */
+
+/* Ripple: CB for SMSAL/RATCM/GAS/BMC. */
+#define CB_MAX_MSG_CBMI_NUM 60
+#define SMSAL_CB_MAX_ENTRY 30
+#define CB_MAX_MSG_CBMID_NUM SMSAL_CB_MAX_ENTRY
+#define CB_MAX_MSG_CBMIR_NUM (SMSAL_CB_MAX_ENTRY*2)
+#define CB_MAX_LANG_NUM SMSAL_CB_MAX_ENTRY
+#define CB_MAX_DATA_NUM_PER_PAGE 88
+
+#define SMSAL_CB_PAGE_DATA_OCT (82) /* CBS-Message-Information-Page. defined TS 23.041. */
+#define SMSAL_CB_PAGE_DATA_AND_LEN_OCT (83) /* CBS-Message-Information-Page & CBS-Message-Information-Page-Length. defined TS 23.041. */
+#define SMSAL_CB_PER_7BIT_LEN (93)
+#define SMSAL_CB_PER_UCS2_LEN (88)
+#define SMSAL_CB_PER_UCS2_CONT_LEN (82)
+
+
+#define SMSAL_PS_CBMI_MAX_ENTRY (60)
+
+#define SMSAL_CBMI_SIM_ENTRY (20)
+#define SMSAL_CBMI_ME_ENTRY (40)
+
+#define SMSAL_DEFAULT_CBMI_ENTRY (10)
+#define SMSAL_DEFAULT_DCS_ENTRY (21) /* CBS DCS 20 language + unspecified (other language) */
+
+#define SMSAL_MMI_CBMI_MAX_ENTRY (SMSAL_CBMI_SIM_ENTRY + SMSAL_CBMI_ME_ENTRY)
+#define SMSAL_MMI_DCS_MAX_ENTRY (SMSAL_CB_MAX_ENTRY)
+
+#define SMSAL_CB_UNUSED_CBMI (0xffff) /* unused CBMIR 0xffffffff */
+#define SMSAL_CB_UNUSED_DCS (0x0080) /* one byte */
+#define SMSAL_CB_UNUSED_ISO639 (0xffff) /* two byte */
+
+#define SMSAL_CB_HOMEZONE_MI (0x00dd) /* HomeZone Message ID 221 */
+#define SMSAL_CB_HOMEZONE_SN (0x0010) /* HomeZone Series Number */
+#define SMSAL_CB_HOMEZONE_DCS (0x0000) /* HomeZone DCS */
+
+#define SMSAL_PAGE_SIZE (40) /* 40 messages/page */
+#define SMSAL_ONE_MSG_LEN (160)
+#define SMSAL_ADDR_LEN (11)
+#define SMSAL_ME_ADDR_LEN (21)
+#define SMSAL_INVALID_INDEX (0xffff)
+#define SMSAL_MAX_TPDU_SIZE (175)
+#define IMCSMS_MAX_RPDU_SIZE (249)
+#define SMSAL_CB_MSG_HEADER_LEN (6)
+#define SMSAL_WAC_BYTE_LEN (2)
+
+#define MAX_SMS_PDU_LEN (255) /* TC01 3GPP/3GPP2 SMS */
+
+
+/* SMS PART END */
+
+#define PHB_MAX_ASSOCIATE_GRP 10
+#define PHB_MAX_EMAIL_LENGTH 61
+
+#define MAX_SIM_NAME_LEN (32)
+#define MAX_PLMN_LEN 6
+#define MAX_PLMN_LIST_LEN 32
+#define MAX_NW_NAME_LEN 24
+
+/*operator name length support maximum*/
+#define MAX_NW_NAME_LENGTH 255
+
+/* DO NOT MODIFY THIS BY YOURSELF!! Please confirm with SIM task owner first.
+ 1. Enlarge this max support size will cause ctrl buffer usage grow.
+ 2. full SW library(ex: L4,SIM,MM lib) update is necessary */
+#define MAX_SUPPORT_PLMN_DATA_SIZE 2040
+#define MAX_SUPPORT_MLPL_DATA_SIZE 4096 // 3GPP2 C.S0016-D v2.0, the sizeof(MLPL) = 2 bytes = 16 bits, but we limited to 4K
+#define MAX_SUPPORT_MSPL_DATA_SIZE 4096 // 3GPP2 C.S0016-D v2.0, the sizeof(MSPL) = 2 bytes = 16 bits, but we limited to 4K
+
+#define USIM_CACHE_MAX_FILE_SIZE 50
+#ifndef __SIM_OPT_DCM__
+#define USIM_CACHE_MAX_FILE_NUM 40 // TODO: auto-count map_cache_sim_index
+#else
+#define USIM_CACHE_MAX_FILE_NUM 38 // TODO: auto-count map_cache_sim_index
+#endif
+#define USIM_CACHE_MAX_SIMAPP_FILE_NUM 27 // TODO: auto-count map_cache_sim_index2
+#define USIM_CACHE_ISIM_FILE_START 33 // TODO: auto-count map_cache_sim_index
+
+#define NR_DEFAULT_5QI 9
+#define LTE_DEFAULT_QCI 9
+
+/* Max supported PLMN record number is decided by MAX_SUPPORT_PLMN_DATA_SIZE and record size
+ SIM task can support up to MAX_SUPPORT_PLMN_DATA_SIZE / PLMN_record_size records
+ NOTE: Record size is 5 bytes for EF_UPLMNWACT,EF_OPLMNWACT,etc. 3 bytes for EF_PLMNSEL */
+#define MAX_SUPPORT_EF_PLMNSEL_REC MAX_SUPPORT_PLMN_DATA_SIZE/3
+
+#define SIZE_OF_UMTS_BAND (0+4)
+#define L4C_FDN_CHECK_FAIL 2601
+
+#define L4C_EM_QUICK_TEST_MAX_COUNT 100
+
+#define IS_INTER_NUM(ton) (( (ton) & 0x10) != 0 )
+
+#define MO_CALL_ASSIGN_FAIL_CALLID 254 /* CSMCC_INVALID_CALL_ID-1 */
+#define MO_CALL_CLCC_SPECIFIED_CALLID 253 /* ALPS01797139 */
+#define MAX_NW_ECC_NUM (16)
+#define MAX_NW_ECC_NUM_LENGTH (41)
+
+#define MAX_EN_NUMBER_LENGTH (MAX_CC_ADDR_BCD_LEN-1) // exclude type byte
+#define MAX_SOS_URN_LENGTH 256
+#define MAX_EEN_COUNT 200
+
+typedef enum {
+ EENL_VALID_IN_THIS_COUNTRY,
+ EENL_VALID_IN_THIS_PLMN
+} eenl_validity_enum;
+
+/* This value is used by MMI and equals to LMMI_SRC to prevent it using HAL private header */
+#define L4C_SOURCE_ID_DEFAULT 0
+
+#define PS_MAX_VAL(VAL_A, VAL_B) (((VAL_A) > (VAL_B)) ? (VAL_A):(VAL_B))
+
+/* 20130521 mtk04280 change the define value from 16 to 32 */
+#define SND_UL_CTRL_HEADER_LENGTH 32 //The size of ratdm_ps_data_req_struct(24) + snd_ul_sent_ack_npdu_struct(8). Reserve by PPP.
+
+/* Max Yin 2009-1006: Since PSPDU UMTS POOLs are removed, the NPDU/SPDU UL is used from app
+ * to RLC; therefore, the free header space is reserved for ratdm/pdcp/rlc usage.
+ */
+#define RATDM_UL_CTRL_RESERVED_HEADER_SPACE 64 // 52=RATDM (24) + PDCP(3) + RLC (36) + 1(4BYTES alignment)
+
+/* Max Yin 2009-12-04: L3_UL_RESERVED_HEADER_SPACE is used for PPP, CMUX, and TCPIP */
+#define L3_UL_RESERVED_HEADER_SPACE PS_MAX_VAL(RATDM_UL_CTRL_RESERVED_HEADER_SPACE, SND_UL_CTRL_HEADER_LENGTH)
+
+#define MAX_NUMBER_OF_EARFCN (8)
+
+/* This is the value of how many UMTS or LTE CSG cells for fingerprint collection */
+#define NUM_CSG_CELL_TO_COLLECT_FINGERPRINT 8
+#define NUM_GAS_STORE_CSG_FINGERPRINT_CELL 50
+
+/* This field defines the GEMINI modules */
+#define CFG_CO_GEMINI_MOD 0x40
+#define CFG_MASK_MOD 0x30
+#define CFG_GEMINI_LTE_MOD 0x20
+#define CFG_GEMINI_MOD 0x10
+#define CFG_SINGLE_MOD 0x00
+#define CFG_MASK_NUM 0x0F
+
+//refer to TS27.007, subclause 7.3 +COPS
+#define MAX_PLMN_LONG_NAME_LEN 17 //16+1 for end of string
+#define MAX_PLMN_SHORT_NAME_LEN 9 //8+1 for end of string
+#define MAX_PLMN_NUMERIC_NAME_LEN 7 //6+1 for end of string
+
+#define L4C_MAX_ARFCN_SUPPORTED 8
+
+#ifdef __SENSITIVE_DATA_MOSAIC__
+#define MAX_PARTIAL_AT_CMD 10
+#define MAX_TRACE_LENGTH 100
+#endif /* __SENSITIVE_DATA_MOSAIC__ */
+
+/* For Inactive Mode Service Recovery */
+
+#define NORMAL_OOS_RECOVERY_ROUND_DEFUALT 5
+#define NORMAL_OOS_RECOVERT_ROUND_LOW 2
+#define NORMAL_OOS_RECOVERT_ROUND_HIGH 30
+
+#define INACTIVE_FULLBAND_PERIOD_DEFUALT 200
+#define INACTIVE_FULLBAND_PERIOD_LOW 90
+#define INACTIVE_FULLBAND_PERIOD_HIGH 7200
+
+#define INACTIVE_SNIFFER_PERIOD_DEFUALT 30
+#define INACTIVE_SNIFFER_PERIOD_LOW 10
+#define INACTIVE_SNIFFER_PERIOD_HIGH 255
+
+#define INACTIVE_SCAN_TIME_DEFAULT 0
+#define INACTIVE_SCAN_TIME_LOW 180
+#define INACTIVE_SCAN_TIME_HIGH 600
+
+#define INACTIVE_SLEEP_TIME_DEFAULT 0
+#define INACTIVE_SLEEP_TIME_LOW 60
+#define INACTIVE_SLEEP_TIME_HIGH 600
+
+typedef enum
+{
+ L4C_CALL_OPERATION,
+ L4C_SS_OPERATION,
+ L4C_SMS_OPERATION, /*used by l4_custom_approval_type() only*/
+ L4C_SMS_SCA_OPERATION,
+ L4C_SMS_DA_OPERATION,
+ L4C_CSD_OPERATION, // internal CSD access e.g. wap over CSD
+ L4C_INT_GPRS_OPERATION, // internal GPRS access e.g. wap over GPRS
+ L4C_EXT_GPRS_OPERATION, // external GPRS access e.g. GPRS dialup
+ L4C_NONE_OPERATION = 255
+}l4c_operation_type_enum; //MAUI_02956467, mtk02285, moved from l4c_common_enum.h
+#define L4C_MAX_ETWS_SECURITY_INFO_LEN 50
+
+//#ifdef __PLMN_LIST_PREF_SUPPORT__
+typedef enum
+{
+ /* This enum should sync with plmn_list_preference_enum */
+ L4C_ACCURACY_PREFERED,
+ L4C_SPEED_PREFERED
+}l4c_plmn_list_preference_enum;
+//#endif
+
+#define MAX_HNB_NAME_LEN 48 /* Shall be multiple of 12 */
+
+#define MAX_SRC_ADDR_SBNET_MASK_LEN 32 // For IPv6
+
+#ifdef __CDMA2000_RAT__
+#define CONFIG_MTK_C2K_SUPPORT 1 // bit0
+#define CONFIG_MTK_SVLTE_SUPPORT 2 // bit1
+#define CONFIG_MTK_SRLTE_SUPPORT 4 // bit2
+#define CONFIG_MTK_C2K_OM_SOLUTION1 8 // bit3
+#endif
+
+#define MAX_ATCMD_EGMC_CONFIG_STR_LEN 32
+#define MAX_ATCMD_EGMC_PARAM_NUM 15
+#define MAX_ATCMD_EGMC_SHORT_STR_LEN 32
+#define MAX_L4C_AT_CMD_CONCURENT_NUM 1
+
+typedef enum {
+ PHB_STORAGE_NONE,
+ PHB_STORAGE_NVRAM,
+ PHB_STORAGE_SIM,
+ PHB_STORAGE_SIM2,
+ PHB_STORAGE_SIM3,
+ PHB_STORAGE_SIM4,
+ PHB_STORAGE_NUM = PHB_STORAGE_SIM4,
+ PHB_STORAGE_MAX
+} phb_storage_enum;
+
+
+typedef enum {
+ PHB_ERRNO_FAIL,
+ PHB_ERRNO_SUCCESS,
+ PHB_ERRNO_NOT_SUPPORT,
+ PHB_ERRNO_READ_FAIL,
+ PHB_ERRNO_READ_SUCCESS,
+ PHB_ERRNO_READ_EMPTY,
+ PHB_ERRNO_DELETE_EMPTY,
+ PHB_ERRNO_NOT_READY,
+ PHB_ERRNO_BUSY,
+ PHB_ERRNO_ANR_FULL,
+ PHB_ERRNO_EMAIL_FULL,
+ PHB_ERRNO_SNE_FULL,
+ PHB_ERRNO_SIM_SWITCH,
+ PHB_ERRNO_UIM_SWITCH,
+ PHB_ERRNO_SAT_FILE_CHANGE,
+ PHB_ERRNO_UTK_FILE_CHANGE
+} phb_errno_enum;
+
+typedef enum {
+ PHB_NONE,
+ PHB_ECC,
+ PHB_FDN,
+ PHB_BDN,
+ PHB_MSISDN,
+ PHB_SDN,
+ PHB_PHONEBOOK,
+ PHB_EXT1,
+ /* USIM */
+ PHB_SNE,
+ PHB_AAS,
+ PHB_ANR,
+ PHB_GAS,
+ PHB_GRP,
+ PHB_EMAIL,
+ PHB_PBC,
+ #if defined(__NG_ECALL_SUPPORT__)
+ PHB_FDNURI,
+ PHB_SDNURI,
+ #endif
+ /* USIM */
+ PHB_TYPE_ENUM_MAX
+} phb_type_enum;
+
+#if 1
+#ifndef VOIP_URI_LEN
+#define VOIP_URI_LEN (41)
+#endif
+#endif //remove on MAUIW1043_RHR remove stage
+
+
+#ifndef NVRAM_PHB_SIZE
+#define NVRAM_PHB_SIZE (54+MAX_PS_NAME_SIZE)
+#endif
+
+/* Max entries could be packed in peer buffer */
+#define PHB_MAX_PHB_ENTRIES (0+10)
+
+typedef enum {
+ PHB_NO_CAUSE,
+ PHB_CAUSE_STORAGE_FULL, /* This value is returned when just added entry causes storage full */
+ PHB_CAUSE_CAPACITY_EXCEEDED, /* Since storage is full, attempt of adding an entry returns this value */
+ PHB_CAUSE_NOT_SUPPORT
+} phb_cause_enum;
+
+typedef enum
+{
+ APPROVAL_TYPE_NONE,
+ APPROVAL_TYPE_ECC_ONLY,
+ APPROVAL_TYPE_FDN_ONLY,
+ APPROVAL_TYPE_FULL //check both ECC and FDN
+}l4c_phb_approval_type_enum;
+
+typedef enum {
+ PHB_BCD = 0x01,
+ PHB_ASCII = 0x00,
+ PHB_KSC5601 = 0x05,
+ PHB_UCS2 = 0x08,
+ PHB_UCS2_81 = 0x09,
+ PHB_UCS2_82 = 0x10
+} phb_charset_enum;
+
+
+
+typedef enum
+{
+ L4C_OK,
+ L4C_ERROR,
+ L4C_NVRAM_ERROR_INIT = 5
+
+} l4c_result_enum;
+
+typedef enum
+{
+ PDU_FETCH_FAIL,
+ PDU_SEND_SUCCESS,
+ PDU_SEND_FAIL
+} l4c_sms_result_enum;
+
+
+//mtk04121
+/* PPP Dial-up */
+typedef enum
+{
+ PPP_OK,
+ PPP_ERROR
+} ppp_result_enum;
+
+/* Johnny: for RMMI internal usage, do not add other enums here */
+typedef enum
+{
+ L4C_NO_CAUSE,
+ L4C_GEN_CAUSE
+} l4c_cause_enum;
+
+typedef enum
+{
+ ATCI_REQ_QOS = 0,
+ ATCI_MIN_QOS,
+ ATCI_NEG_QOS /* SATe */
+} atci_qos_enum;
+
+typedef enum {
+ SUBSCRIBED_DELAY_CLASS = 0,
+ RESERVED_NW_TO_MS_DELAY_CLASS = 0,
+ DELAY_CLASS1,
+ DELAY_CLASS2,
+ DELAY_CLASS3,
+ DELAY_CLASS4,
+ RESERVED_BIDIRECT_DELAY_CLASS = 7,
+ TOT_DELAY_CLASS = 8
+} delay_class_enum;
+
+typedef enum {
+ SUBSCRIBED_REL_CLASS = 0,
+ RESERVED_NW_TO_MS_REL_CLASS = 0,
+ REL_CLASS1,
+ REL_CLASS2,
+ REL_CLASS3,
+ REL_CLASS4,
+ REL_CLASS5,
+ RESERVED_BIDIRECT_REL_CLASS = 7
+} reliability_class_enum;
+
+typedef enum {
+ SUBSCRIBED_PTC = 0,
+ RESERVED_NW_TO_MS_PTC = 0,
+ PTC_1,
+ PTC_2,
+ PTC_3,
+ PTC_4,
+ PTC_5,
+ PTC_6,
+ PTC_7,
+ PTC_8,
+ PTC_9,
+ RESERVED_BIDIRECT_PTC = 15
+} peak_throughput_class;
+
+typedef enum {
+ SUBSCRIBED_PREC_CLASS = 0,
+ RESERVED_NW_TO_MS_PREC_CLASS = 0,
+ PREC_CLASS1,
+ PREC_CLASS2,
+ PREC_CLASS3,
+ RESERVED_BIDIRECT_PREC_CLASS = 7
+} precedence_class_enum;
+
+typedef enum {
+ SUBSCRIBED_MEAN_THROUGHPUT = 0,
+ RESERVED_NW_TO_MS_MEAN_THROUGHPUT = 0,
+ MEAN_THROUGHPUT1,
+ MEAN_THROUGHPUT2,
+ MEAN_THROUGHPUT3,
+ MEAN_THROUGHPUT4,
+ MEAN_THROUGHPUT5,
+ MEAN_THROUGHPUT6,
+ MEAN_THROUGHPUT7,
+ MEAN_THROUGHPUT8,
+ MEAN_THROUGHPUT9,
+ MEAN_THROUGHPUT10,
+ MEAN_THROUGHPUT11,
+ MEAN_THROUGHPUT12,
+ MEAN_THROUGHPUT13,
+ MEAN_THROUGHPUT14,
+ MEAN_THROUGHPUT15,
+ MEAN_THROUGHPUT16,
+ MEAN_THROUGHPUT17,
+ MEAN_THROUGHPUT18,
+ RESERVED_BIDIRECT_MEAN_THROUGHPUT = 30,
+ BEST_EFFORT_THROUGHPUT = 31
+} mean_throughput_enum;
+
+typedef enum {
+ SUBSCRIBED_DELIVERY_ORDER = 0,
+ RESERVED_NW_TO_MS_DELIVERY_ORDER = 0,
+ WITH_DELIVERY_ORDER = 1,
+ DELIVERY_ORDER1 = WITH_DELIVERY_ORDER,
+ WITHOUT_DELIVERY_ORDER = 2,
+ DELIVERY_ORDER2 = WITHOUT_DELIVERY_ORDER,
+ RESERVED_BIDIRECT_DELIVERY_ORDER = 3
+} delivery_order_enum;
+
+typedef enum {
+ SUBSCRIBED_TRAFFIC_CLASS = 0,
+ RESERVED_NW_TO_MS_TRAFFIC_CLASS = 0,
+ CONVERSATIONAL_CLASS,
+ TRAFFIC_CLASS1 = CONVERSATIONAL_CLASS,
+ STREAMING_CLASS,
+ TRAFFIC_CLASS2 = STREAMING_CLASS,
+ INTERACTIVE_CLASS,
+ TRAFFIC_CLASS3 = INTERACTIVE_CLASS,
+ BACKGROUND_CLASS,
+ TRAFFIC_CLASS4 = BACKGROUND_CLASS,
+ RESERVED_BIDIRECT_TRAFFIC_CLASS = 7,
+ INVALID_TRAFFIC_CLASS = 0xff
+} traffic_class_enum;
+
+typedef enum {
+ SUBSCRIBED_TRAFFIC_HNDL_PRIORITY = 0,
+ RESERVED_NW_TO_MS_TRAFFIC_HNDL_PRIORITY = 0,
+ TRAFFIC_HNDL_PRIORITY1,
+ TRAFFIC_HNDL_PRIORITY2,
+ TRAFFIC_HNDL_PRIORITY3
+} traffic_hndl_priority_enum;
+
+typedef enum {
+ SUBSCRIBED_BIT_ERROR_RATE = 0,
+ RESERVED_NW_TO_MS_BIT_ERROR_RATE = 0,
+ BIT_ERROR_RATE1,
+ BIT_ERROR_RATE2,
+ BIT_ERROR_RATE3,
+ BIT_ERROR_RATE4,
+ BIT_ERROR_RATE5,
+ BIT_ERROR_RATE6,
+ BIT_ERROR_RATE7,
+ BIT_ERROR_RATE8,
+ BIT_ERROR_RATE9,
+ RESERVED_BIDIRECT_MIN_BIT_ERROR_RATE = 10,
+ RESERVED_BIDIRECT_BIT_ERROR_RATE = 15
+} residual_bit_error_rate_enum;
+
+
+typedef enum {
+ SUBSCRIBED_DELIVERY_OF_ERR_SDU= 0,
+ RESERVED_NW_TO_MS_DELIVERY_OF_ERR_SDU = 0,
+ DELIVERY_OF_ERR_NO_DETECT = 1,
+ DELIVERY_OF_ERR_SDU1 = DELIVERY_OF_ERR_NO_DETECT,
+ DELIVERY_OF_ERR_YES = 2,
+ DELIVERY_OF_ERR_SDU2 = DELIVERY_OF_ERR_YES,
+ DELIVERY_OF_ERR_NO = 3,
+ DELIVERY_OF_ERR_SDU3 = DELIVERY_OF_ERR_NO,
+ RESERVED_BIDIRECT_DELIVERY_OF_ERR_SDU = 7
+} delivery_of_err_sdu_enum;
+
+typedef enum {
+ SUBSCRIBED_SDU_ERR_RATIO = 0,
+ RESERVED_NW_TO_MS_SDU_ERR_RATIO = 0,
+ SDU_ERR_RATIO1,
+ SDU_ERR_RATIO2,
+ SDU_ERR_RATIO3,
+ SDU_ERR_RATIO4,
+ SDU_ERR_RATIO5,
+ SDU_ERR_RATIO6,
+ SDU_ERR_RATIO7,
+ RESERVED_BIDIRECT_SDU_MIN_ERR_RATIO = 8,
+ RESERVED_BIDIRECT_SDU_ERR_RATIO = 15
+} sdu_err_ratio_enum;
+
+
+typedef enum
+{
+ ESM_CAUSE_NO_CAUSE = 1, /* Cause not assigned */
+ ESM_CAUSE_OPERATOR_DETERMINED_BARRING = 8, /* Operator determined barring */
+ ESM_CAUSE_INSUFFICIENT_RESOURCES = 26, /* Insufficient resources */
+ ESM_CAUSE_UNKNOWN_OR_MISSING_APN = 27, /* Unknown or missing APN */
+ ESM_CAUSE_UNKNOWN_PDN_TYPE = 28, /* Unknown PDN type */
+ ESM_CAUSE_USER_AUTH_FAILED = 29, /* User authentication failed */
+ ESM_CAUSE_REQUEST_REJECTED_BY_SGW_OR_PDNGW = 30, /* Request rejected by Serving GW or PDN GW */
+ ESM_CAUSE_REQUEST_REJECTED_UNSPECIFIED = 31, /* Request rejected unspecified */
+ ESM_CAUSE_SERVICE_OPT_NOT_SUPPORTED = 32, /* Service option not supported */
+ ESM_CAUSE_REQ_SERVICE_NOT_SUBSCRIBED = 33, /* Requested service option not subscribed */
+ ESM_CAUSE_SERVICE_TEMP_OUT_OF_ORDER = 34, /* Service option temporarily out of order */
+ ESM_CAUSE_PTI_ALREADY_USED = 35, /* PTI already in use */
+ ESM_CAUSE_REGULAR_DEACTIVATION = 36, /* Regular deactivation */
+ ESM_CAUSE_EPS_QOS_NOT_ACCEPTED = 37, /* EPS QoS not accepted */
+ ESM_CAUSE_NETWORK_FAILURE = 38, /* Network failure */
+ ESM_CAUSE_REACTIVATION_REQUESTED = 39, /* Re-activation requitred */
+ ESM_CAUSE_SEMANTIC_ERROR_IN_TFT = 41, /* Semantic error in the TFT operation */
+ ESM_CAUSE_SYNTACTIC_ERROR_IN_TFT = 42, /* Syntactical error in the TFT operation */
+ ESM_CAUSE_INVALID_EPS_BEARER_IDENTITY = 43, /* Invalid EPS bearer identity */
+ ESM_CAUSE_SEMANTIC_ERROR_IN_PACKET_FILTERS = 44, /* Semantic errors in packet filter(s) */
+ ESM_CAUSE_SYNTACTIC_ERROR_IN_PACKET_FILTERS = 45, /* Syntactical errors in packet filter(s) */
+ ESM_CAUSE_EPSB_CTXT_WITHOUT_TFT_ACTIVATED = 46, /* EPS bearer context without TFT already activated */
+ ESM_CAUSE_PTI_MISMATCH = 47, /* PTI mismatch */
+ ESM_CAUSE_LAST_PDN_DISC_NOT_ALLOWED = 49, /* Last PDN disconnection not allowed */
+ ESM_CAUSE_PDN_TYPE_IPV4_ONLY_ALLOWED = 50, /* PDN type IPv4 only allowed */
+ ESM_CAUSE_PDN_TYPE_IPV6_ONLY_ALLOWED = 51, /* PDN type IPv6 only allowed */
+ ESM_CAUSE_SINGLE_ADDRESS_ONLY_ALLOWED = 52, /* Single address bearers only allowed */
+ ESM_CAUSE_ESM_INFORMATION_NOT_RECEIVED = 53, /* ESM information not received */
+ ESM_CAUSE_PDN_CONNENCTION_NOT_EXIST = 54, /* PDN connection does not exist */
+ ESM_CAUSE_MULTIPLE_PDN_APN_NOT_ALLOWED = 55, /* Multiple PDN connections for a given APN not allowed */
+ ESM_CAUSE_COLLISION_WITH_NW_INIT_REQUEST = 56, /* Collision with network initiated request */
+ ESM_CAUSE_UNSUPPORTED_QCI_VALUE = 59, /* Unsupported QCI value */
+ ESM_CAUSE_MAXIMUM_NUM_OF_EPS_BEARERS_REACHED = 65, /* Maximum number of EPS bearers reached */
+ ESM_CAUSE_REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN_COMBINATION = 66, /* Requested APN not supported in current RAT and PLMN combination */
+ ESM_CAUSE_INVALID_PTI_VALUE = 81, /* Invalid PTI value */
+ ESM_CAUSE_SEMANTIC_INCORRECT_MSG = 95, /* Semantically incorrect message */
+ ESM_CAUSE_INVALID_MANDATORY_IE = 96, /* Invalid mandatory information */
+ ESM_CAUSE_MSG_TYPE_NON_EXISTENT = 97, /* Message type non-existent or not implemented */
+ ESM_CAUSE_MSG_TYPE_NOT_COMPATIBLE_STATE = 98, /* Message type not compatible with protocol state */
+ ESM_CAUSE_IE_NON_EXISTENT_NOT_IMPLEMENTED = 99, /* Information element non-existent or not implemented */
+ ESM_CAUSE_CONDITIONAL_IE_ERROR = 100, /* Conditional IE error */
+ ESM_CAUSE_MSG_NOT_COMPATIBLE_STATE = 101, /* Message not compatible with the protocol state */
+ ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED = 111, /* Protocol error unspecified */
+ ESM_CAUSE_APN_RESTRICT_VALUE_INCOMPATIBLE = 112 /* APN restriction value incompatible with active EPS bearer context */
+
+} esm_cause_enum;
+
+typedef enum
+{
+ PCO_IE_ID_PCSCF_IPV6_ADDR = 0x0001,
+ PCO_IE_ID_IM_CN_SIGNALLING_FLAG = 0x0002,
+ PCO_IE_ID_DNSV6_ADDR = 0x0003,
+ PCO_IE_ID_BCM = 0x0005,
+ PCO_IE_ID_ETFT = 0x0011,
+ PCO_IE_ID_IPV4_ADDR_VIA_NAS_SIGNALLING = 0x000A,
+ PCO_IE_ID_IPV4_ADDR_VIA_DHCPV4 = 0x000B,
+ PCO_IE_ID_PCSCF_IPV4_ADDR = 0x000C,
+ PCO_IE_ID_DNSV4_ADDR = 0x000D,
+ PCO_IE_ID_MSISDN_REQ = 0x000E,
+ PCO_IE_ID_IPV4_LINK_MTU = 0x0010,
+ PCO_IE_ID_PCSCF_RESELECTION_SUPPORT = 0x0012,
+ PCO_IE_ID_PS_DATA_OFF_SUPPORT = 0x0017,
+
+ PCO_IE_ID_VZW_REQUEST_FF00 = 0xFF00,
+ PCO_IE_ID_VZW_EPDGV6_ADDR = 0xFF01,
+ PCO_IE_ID_VZW_EPDGV4_ADDR = 0xFF02,
+ PCO_IE_ID_VZW_5GUW = 0xFF03,
+
+} pco_ie_id_enum;
+
+typedef enum
+{
+ L4C_GPRS_ATTACHED, //0
+ L4C_NONE_GPRS, // 1
+ L4C_GPRS_DETACHED, // 2
+ L4C_INVALID_SIM,// 3
+ L4C_GPRS_ATTEMPT_ATTACH,// 4
+ L4C_GPRS_COVERAGE,//5
+ L4C_PDP_ATTEMPT_ACT,//6
+ L4C_PDP_DEACTIVED,//7
+ L4C_PDP_ACTIVED//8
+} l4c_gprs_status_enum;
+
+typedef enum
+{
+ REG_STATE_NOT_REGISTERED=0,
+ REG_STATE_REGISTERED,
+ REG_STATE_SEARCHING,
+ REG_STATE_REG_DENIED,
+ REG_STATE_UNKNOWN,
+ REG_STATE_NOT_ACTIVE,
+ REG_STATE_SMS_ONLY,
+ REG_STATE_EMERGENCY_ONLY,
+ REG_STATE_CSFB_NOT_PREFERRED
+} reg_state_enum;
+
+typedef enum
+{
+ GPRS_ATTACHED, /* GPRS Attached */
+ GPRS_NO_COVERAGE, /* No GPRS coverage */
+ GPRS_LIMITED_SERVICE, /* GPRS not Attached */
+ GPRS_INVALID_SIM, /* SIM invalid for GPRS */
+ GPRS_REGISTERING, /* GPRS Attach on going */
+ GPRS_CELL_FOUND, /* GPRS coverage found */
+ GPRS_NULL /* GPRS not activated */
+} l4c_rac_gprs_status_enum;
+
+typedef enum
+{
+ L4C_PREFER_RAT_NONE = 0,
+ L4C_PREFER_RAT_GSM = 1,
+ L4C_PREFER_RAT_UMTS = 2,
+ L4C_PREFER_RAT_LTE = 4,
+ L4C_PREFER_RAT_INVALID
+} l4c_prefer_rat_enum;
+
+typedef enum
+{
+ L4C_SIM_NOT_INSERTED,
+ L4C_SIM_INSERTED,
+ L4C_SIM_BLOCK,
+ L4C_SIM_NONE
+}l4c_sim_status_enum;
+
+
+#define RR_NUM_OF_MAX_BAR_CELL 20
+
+typedef enum
+{
+ BAR_CELL_ADD,
+ BAR_CELL_DEL,
+ BAR_CELL_BAR_SERV,
+ BAR_CELL_QUERY,
+}bar_cell_control_enum;
+
+
+typedef enum
+{
+ CS_DOMAIN = 0,
+ PS_DOMAIN = 1,
+ CS_PS_DOMAIN = 2,
+ DOMAIN_NONE = 3
+} domain_id_enum;
+
+typedef enum
+{
+ NONE_SPECIFIED = 0x0000,
+ GPRS_SUPPORT = 0x0001,
+ EDGE_SUPPORT = 0x0002,
+ UMTS_SUPPORT = 0x0004,
+ HSDPA_SUPPORT = 0x0008,
+ HSUPA_SUPPORT = 0x0010,
+ HSDPA_UPA_SUPPORT = 0x0018,
+ HSDPAP_SUPPORT = 0x0020,
+ HSDPAP_UPA_SUPPORT = 0x0030,
+ HSUPAP_SUPPORT = 0x0040,
+ HSUPAP_DPA_SUPPORT = 0x0048,
+ HSPAP_SUPPORT = 0x0060,
+ DC_DPA_SUPPORT = 0x0088,
+ DC_DPA_UPA_SUPPORT = 0x0098,
+ DC_HSDPAP_SUPPORT = 0x00a0,
+ DC_HSDPAP_UPA_SUPPORT = 0x00b0,
+ DC_HSUPAP_DPA_SUPPORT = 0x00c8,
+ DC_HSPAP_SUPPORT = 0x00e0,
+ LTE_SUPPORT = 0x1000,
+ LTE_CA_SUPPORT = 0x2000,
+ ENDC_SUPPORT = 0x4000,
+ NR_SUPPORT = 0x8000,
+ NOT_CHANGE = 0xffff
+}data_speed_support_enum;
+
+typedef enum
+{
+ DATA_SPEED_NONE_ACTIVATE = 0x0000,
+ DATA_SPEED_GPRS_CAPABILITY = 0x0001,
+ DATA_SPEED_EDGE_CAPABILITY = 0x0002,
+ DATA_SPEED_UMTS_CAPABILITY = 0x0004,
+ DATA_SPEED_HSDPA_CAPABILITY = 0x0008, //mac-hs
+ DATA_SPEED_HSUPA_CAPABILITY = 0x0010, //mac-e/es
+ DATA_SPEED_HSDPA_HSUPA_CAPABILITY = 0x0018, //mac-hs + mac-e/es
+ DATA_SPEED_HSDPAP_CAPABILITY = 0x0020, //mac-ehs
+ DATA_SPEED_HSDPAP_UPA_CAPABILITY = 0x0030, //mac-ehs + mac-e/es
+ DATA_SPEED_HSUPAP_CAPABILITY = 0x0040, //mac-i/is
+ DATA_SPEED_HSUPAP_DPA_CAPABILITY = 0x0048, //mac-hs + mac-i/is
+ DATA_SPEED_HSPAP_CAPABILITY = 0x0060, //mac-ehs + mac-i/is
+ DATA_SPEED_DC_DPA_CAPABILITY = 0x0088, //(DC) mac-hs
+ DATA_SPEED_DC_DPA_UPA_CAPABILITY = 0x0098, //(DC) mac-hs + mac-e/es
+ DATA_SPEED_DC_HSDPAP_CAPABILITY = 0x00a0, //(DC) mac-ehs
+ DATA_SPEED_DC_HSDPAP_UPA_CAPABILITY = 0x00b0, //(DC) mac-ehs + mac-e/es
+ DATA_SPEED_DC_HSUPAP_DPA_CAPABILITY = 0x00c8, //(DC) mac-hs + mac-i/is
+ DATA_SPEED_DC_HSPAP_CAPABILITY = 0x00e0, //(DC) mac-ehs + mac-i/is
+ DATA_SPEED_LTE_CAPABILITY = 0x1000,
+ DATA_SPEED_LTE_CA_CAPABILITY = 0x2000,
+} data_speed_activate_enum;
+
+typedef enum
+{
+ L4C_CAP_GPRS = 0x0001,
+ L4C_CAP_EDGE = 0x0002,
+ L4C_CAP_WCDMA = 0x0004,
+ L4C_CAP_TDSCDMA = 0x0008,
+ L4C_CAP_UMTS = (L4C_CAP_WCDMA | L4C_CAP_TDSCDMA),
+ L4C_CAP_HSDPA = 0x0010,
+ L4C_CAP_HSUPA = 0x0020,
+ L4C_CAP_HSPA = (L4C_CAP_HSDPA | L4C_CAP_HSUPA),
+ L4C_CAP_HSPAP = 0x0040,
+ L4C_CAP_FDD_LTE = 0x0080,
+ L4C_CAP_TDD_LTE = 0x0100,
+ L4C_CAP_LTE_CA = 0x0200,
+ L4C_CAP_LTE = (L4C_CAP_FDD_LTE | L4C_CAP_TDD_LTE),
+ L4C_CAP_FDD_NR = 0x0400,
+ L4C_CAP_TDD_NR = 0x0800,
+ L4C_CAP_NR = (L4C_CAP_FDD_NR | L4C_CAP_TDD_NR),
+ L4C_CAP_MAX = (L4C_CAP_GPRS | L4C_CAP_EDGE | L4C_CAP_UMTS | L4C_CAP_HSPA | L4C_CAP_HSPAP | L4C_CAP_LTE | L4C_CAP_LTE_CA | L4C_CAP_NR)
+}l4c_modem_capability_enum;
+
+typedef enum
+{
+ CSD_BEARER_DIALUP,
+ GPRS_BEARER_DIALUP,
+ INVALID_BEARER
+}l4c_dialup_bearer_enum; //Moved from l4c_common_enum.h
+
+typedef enum
+{
+ L4C_ACTIVATE_CNF = 1,
+ L4C_ACTIVATE_REJ,
+ L4C_ACTIVATE_IND,
+ L4C_SEC_ACTIVATE_IND,
+ L4C_DEACTIVATE_CNF,
+ L4C_DEACTIVATE_IND,
+ L4C_MODIFY_CNF,
+ L4C_MODIFY_REJ,
+ L4C_MODIFY_IND
+}l4c_handler_action_enum;
+
+typedef enum
+{
+ TCM_PDP_DEACTIVATE,
+ TCM_PDP_ACTIVATE,
+ TCM_PDP_DEACTIVATE_LOCAL /* __LOCAL_DEACTIVATE_PDP_SUPPORT__ */
+}l4c_tcm_pdp_action_enum;
+
+typedef enum
+{
+ TCM_AT_PDP_CID = 1,
+ TCM_EM_PDP_CID_1 = 2,
+ TCM_EM_PDP_CID_2
+}l4c_tcm_em_pdp_cid_enum; //mtk00714 w0634
+
+typedef enum
+{
+ L4CTCM_BEARER_NOTIFY_NOT_DEFINE = 0,
+ L4CTCM_BEARER_NOTIFY_ADDED = 1,
+ L4CTCM_BEARER_NOTIFY_MODIFIED = 2,
+ L4CTCM_BEARER_NOTIFY_DELETED = 3,
+} l4ctcm_bearer_notify_type_enum;
+
+typedef enum
+{
+ L4CTCM_DEDICATED_BEARER_EVENT_REPORT,
+} l4ctcm_ps_event_report_type_enum;
+
+typedef enum
+{
+ RMMI_UCM_ATD = 0,
+ RMMI_UCM_ATD_2,
+ RMMI_UCM_ATD_3,
+ RMMI_UCM_ATD_4,
+ RMMI_UCM_ATD_DATA, //for ATD dialing data call
+ RMMI_UCM_ATH,
+ RMMI_UCM_ATA,
+ RMMI_UCM_BLDN,
+ RMMI_UCM_CHLD,
+ RMMI_UCM_CHUP,
+ RMMI_UCM_MEM_DIAL, //mem dial from SIM1
+ RMMI_UCM_MEM_DIAL_2, //mem dial from SIM2
+ RMMI_UCM_MEM_DIAL_3,
+ RMMI_UCM_MEM_DIAL_4
+} rmmi_ucm_action_enum;
+
+typedef enum
+{
+ RMMI_UCM_CAUSE_NONE = 0,
+ RMMI_UCM_CAUSE_ATD_NOT_ALLOWED,
+ RMMI_UCM_CAUSE_ATA_NOT_ALLOWED,
+ RMMI_UCM_CAUSE_ATH_NOT_ALLOWED,
+ RMMI_UCM_CAUSE_CHLD_NOT_ALLOWED,
+ RMMI_UCM_CAUSE_NO_CALL_TO_ANSWER, //specific cause for ATA
+ RMMI_UCM_CAUSE_NO_CALL_TO_HANGUP, //specific cause for ATH
+ RMMI_UCM_CAUSE_NO_CALL_TO_HOLD, //specific cause for CHLD
+ RMMI_UCM_CAUSE_NO_CALL_TO_REL, //specific cause for CHLD
+ RMMI_UCM_CAUSE_NO_CALL_TO_ECT, //specific cause for CHLD
+ RMMI_UCM_CAUSE_NO_CALL_TO_CONFERENCE, // specific cause for CHLD
+ RMMI_UCM_CAUSE_INVALID_CALLID, //specific cause for CHLD
+ RMMI_UCM_CAUSE_NO_NUM_EXIST, //specific cause for memory dial or bldn when number not exist ( BQB expect return "ERROR")
+ RMMI_UCM_CAUSE_ATD_DATA_NOT_ALLOWED //MAUI_02634907
+} rmmi_ucm_cause_enum;
+
+typedef enum
+{
+ RMMI_UCM_RCODE_OK,
+ RMMI_UCM_RCODE_CONNECT,
+ RMMI_UCM_RCODE_RING,
+ RMMI_UCM_RCODE_NO_CARRIER,
+ RMMI_UCM_RCODE_ERROR,
+ RMMI_UCM_RCODE_CCWA
+} rmmi_rcode_type_enum;
+
+typedef enum
+{
+ CLIR_INVOKE,
+ CLIR_SUPPRESS,
+ CLIR_AUTO
+} rmmi_clir_enum;
+
+typedef enum
+{
+ RMMI_CLI_VALID = 0, /* CLI valid */
+ RMMI_CLI_WITHHELD = 1, /* CLI has been withheld by the originator */
+ RMMI_CLI_INTERWORK = 2, /* CLI is not available due to interworking problems or limitations of originating network */
+ RMMI_CLI_COIN_PAYPHONE = 3, /* CLI is not available due to calling party being of type payphone */
+ RMMI_CLI_OTHERS = 4 /* CLI is not available due to other reasons */
+
+}rmmi_cli_validity_enum;
+
+typedef enum
+{
+ CALL_DIAL,
+ CALL_ANSWER
+}l4c_data_call_op_enum;
+
+typedef enum
+{
+ L4C_DISCONNECT_NONE,
+ L4C_DISCONNECT_MO,
+ L4C_DISCONNECT_MT
+} l4c_ath_req_enum;
+
+typedef enum
+{
+ L4C_SS_MO,
+ L4C_SS_MT,
+ L4C_SS_NONE
+} l4c_ss_direction_enum;
+
+typedef enum
+{
+ CSMCC_REL_HELD_OR_UDUB, /*0*/
+ CSMCC_REL_ACTIVE_AND_ACCEPT, /*1*/
+ CSMCC_REL_SPECIFIC_CALL, /*2*/
+ CSMCC_HOLD_ACTIVE_AND_ACCEPT, /*3*/
+ CSMCC_HOLD_ACTIVE_EXCEPT_SPECIFIC_CALL, /*4*/
+ CSMCC_ADD_HELD_CALL, /*5*/
+ CSMCC_EXPLICIT_CALL_TRANSFER, /*6*/
+ CSMCC_ACTIVATE_CCBS_CALL, /*7*/
+ CSMCC_REL_ALL_EXCEPT_WAITING_CALL, /*8*/
+ CSMCC_REL_SPECIFIC_ACTIVE_CALL, /* 9 */
+ CSMCC_SWAP_CALL, /* 10 */
+ CSMCC_REL_HELD, /* 11 */
+ CSMCC_REL_ACTIVE, /* 12 */
+ CSMCC_REL_ALL, /* 13 */
+ CSMCC_REL_UDUB, /* 14 */
+ CSMCC_REL_CCBS, /* 15 */
+ CSMCC_REL_ACTIVE_AND_ACCEPT_WAITING, /* 16 */
+ CSMCC_REL_ACTIVE_AND_ACCEPT_CCBS, /* 17 */
+ CSMCC_REL_ACTIVE_AND_ACCEPT_HELD, /* 18 */
+ CSMCC_HOLD_ACTIVE_AND_ACCEPT_WAITING, /* 19 */
+ CSMCC_HOLD_ACTIVE_AND_ACCEPT_CCBS, /* 20 */
+ CSMCC_VT_FALL_TO_VOICE, /* 21 */ /*MAUI_02641977 CMCC requietment, to disconnect the vt call with cause88*/
+ CSMCC_REL_CALL_REJECT,
+
+ CSMCC_INVALID_CRSS_TYPE = 255
+} csmcc_crss_req_enum;
+
+typedef enum
+{
+ CLCC_MO_CALL,
+ CLCC_MT_CALL,
+ CLCC_UNKNOWN_DIR
+} clcc_dir_enum;
+
+typedef enum
+{
+ CSMCC_SETUP_MSG,
+ CSMCC_DISCONNECT_MSG,
+ CSMCC_ALERT_MSG,
+ CSMCC_CALL_PROCESS_MSG,
+ CSMCC_SYNC_MSG,
+ CSMCC_PROGRESS_MSG,
+ CSMCC_CALL_CONNECTED_MSG,
+ CSMCC_ALL_CALLS_DISC_MSG = 129,
+ CSMCC_MO_CALL_ID_ASSIGN_MSG = 130,
+ CSMCC_STATE_CHANGE_HELD = 131,
+ CSMCC_STATE_CHANGE_ACTIVE = 132,
+ CSMCC_STATE_CHANGE_DISCONNECTED = 133,
+ CSMCC_STATE_CHANGE_MO_DISCONNECTING =134,
+#ifdef __TC01__
+ CSMCC_MO_CALL_MODIFIED_BY_SAT = 135,
+#endif
+ CSMCC_CPI_END = 255
+}csmcc_cpi_msg_type_enum; /*mtk00924 add 041210 for +ECPI*/
+
+typedef enum
+{
+ SCP_CALL_STATE_ORIGINATING = 1,
+ SCP_CALL_STATE_INCOMING,
+ SCP_CALL_STATE_CONVERSATION,
+ SCP_CALL_STATE_CC_IN_PROGRESS,
+ SCP_CALL_STATE_ALERTING,
+ SCP_CALL_STATE_HOLD,
+ SCP_CALL_STATE_WAITING,
+ SCP_CALL_STATE_DISCONNECTING,
+ SCP_CALL_STATE_END,
+ SCP_CALL_STATE_SETUP
+}scp_call_type_enum;
+
+typedef enum {
+ INVALID_OPERATION,
+ SS_OPERATION,
+ SIM_OPERATION,
+ GPRS_OPERATION,
+ CC_OPERATION
+} csmss_string_op_enum;
+
+//0: test
+//1: reconfiguration
+//2: manually
+//3: automatically
+typedef enum
+{
+ ECALL_TEST,
+ ECALL_RECONFIGURATION,
+ ECALL_MANUALLY_INITIATED,
+ ECALL_AUTOMATICALLY_INITIATED,
+ ECALL_DISABLE = 0xff
+} ecall_type_enum;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef enum
+{
+ ECALL_FORMAT_INVALID = 0,
+ ECALL_FORMAT_BINARY,
+ ECALL_FORMAT_MAX
+} ecall_format_enum;
+
+typedef enum
+{
+ ECALL_ABORT_ATTACH_REASON_TIMEOUT,
+ ECALL_ABORT_ATTACH_REASON_CANCEL,
+ ECALL_ABORT_ATTACH_REASON_INVALID
+} ecall_abort_attach_reason_enum;
+#endif
+
+//agps begin
+/* ENUMERATED NotificationToMSUser */
+typedef enum
+{
+ L4C_SS_NotificationToMSUser_notifyLocationAllowed,
+ L4C_SS_NotificationToMSUser_notifyAndVerify_LocationAllowedIfNoResponse,
+ L4C_SS_NotificationToMSUser_notifyAndVerify_LocationNotAllowedIfNoResponse,
+ // ...
+ L4C_SS_NotificationToMSUser_locationNotAllowed
+}
+L4C_SS_NotificationToMSUser;
+
+/* ENUMERATED OccurrenceInfo */
+typedef enum
+{
+ L4C_SS_OccurrenceInfo_oneTimeEvent,
+ L4C_SS_OccurrenceInfo_multipleTimeEvent
+ // ...
+}
+L4C_SS_OccurrenceInfo;
+
+/* ENUMERATED LocationEstimateType */
+typedef enum
+{
+ L4C_SS_LocationEstimateType_currentLocation,
+ L4C_SS_LocationEstimateType_currentOrLastKnownLocation,
+ L4C_SS_LocationEstimateType_initialLocation,
+ // ...
+ L4C_SS_LocationEstimateType_activateDeferredLocation,
+ L4C_SS_LocationEstimateType_cancelDeferredLocation
+}
+L4C_SS_LocationEstimateType;
+
+/* ENUMERATED LCS-FormatIndicator */
+typedef enum
+{
+ L4C_SS_LCS_FormatIndicator_logicalName,
+ L4C_SS_LCS_FormatIndicator_e_mailAddress,
+ L4C_SS_LCS_FormatIndicator_msisdn,
+ L4C_SS_LCS_FormatIndicator_url,
+ L4C_SS_LCS_FormatIndicator_sipUrl
+ // ...
+}
+L4C_SS_LCS_FormatIndicator;
+
+/* ENUMERATED VerificationResponse */
+typedef enum
+{
+ L4C_SS_VerificationResponse_permissionDenied,
+ L4C_SS_VerificationResponse_permissionGranted
+ // ...
+}
+L4C_SS_VerificationResponse;
+
+/* ENUMERATED AreaType */
+typedef enum
+{
+ L4C_SS_AreaType_countryCode,
+ L4C_SS_AreaType_plmnId,
+ L4C_SS_AreaType_locationAreaId,
+ L4C_SS_AreaType_routingAreaId,
+ L4C_SS_AreaType_cellGlobalId,
+ // ...
+ L4C_SS_AreaType_utranCellId
+}
+L4C_SS_AreaType;
+
+/* ENUMERATED MOLR-Type */
+typedef enum
+{
+ L4C_SS_MOLR_Type_locationEstimate,
+ L4C_SS_MOLR_Type_assistanceData,
+ L4C_SS_MOLR_Type_deCipheringKeys
+ // ...
+}
+L4C_SS_MOLR_Type;
+
+/* ENUMERATED LocationMethod */
+typedef enum
+{
+ L4C_SS_LocationMethod_msBasedEOTD,
+ L4C_SS_LocationMethod_msAssistedEOTD,
+ L4C_SS_LocationMethod_assistedGPS,
+ // ...
+ L4C_SS_LocationMethod_msBasedOTDOA
+}
+L4C_SS_LocationMethod;
+
+/* ENUMERATED ResponseTimeCategory */
+typedef enum
+{
+ L4C_SS_ResponseTimeCategory_lowdelay,
+ L4C_SS_ResponseTimeCategory_delaytolerant
+ // ...
+}
+L4C_SS_ResponseTimeCategory;
+//agps end
+
+/* SMS PART START */
+typedef enum
+{
+ SMSAL_DEFAULT_PID = 0x00, /* Text SMS */
+ SMSAL_TELEX_PID = 0x21, /* Telex */
+ SMSAL_G3_FAX_PID = 0x22, /* Group 3 telefax */
+ SMSAL_G4_FAX_PID = 0x23, /* Group 4 telefax */
+ SMSAL_VOICE_PID = 0x24, /* Voice Telephone */
+ SMSAL_ERMES_PID = 0x25, /* ERMES (European Radio Messaging System) */
+ SMSAL_PAGING_PID = 0x26, /* National Paging system */
+ SMSAL_X400_PID = 0x31, /* Any public X.400-based message system */
+ SMSAL_EMAIL_PID = 0x32 /* E-mail SMS */
+
+} smsal_pid_enum;
+
+typedef enum
+{
+ SMSAL_DEFAULT_DCS = 0x00, /* GSM 7-bit */
+ SMSAL_8BIT_DCS = 0x04, /* 8-bit */
+
+ SMSAL_KSC5601_DCS = 0x05, /* KSC5601 */
+
+ SMSAL_UCS2_DCS = 0x08, /* UCS2 */
+ SMSAL_RESERVED_DCS = 0x0c, /* reserved alphabet,
+ currently, MMI shall display "not support alphabet"
+ or "cannot display" when receive dcs indicated this value */
+ SMSAL_EXT_DCS = 0x10 /* Special dcs for non-standard character,
+ used by MMI and EMS */
+} smsal_dcs_enum;
+
+typedef enum
+{
+ /* Mailbox */
+ SMSAL_LINE_1 = 0,
+ SMSAL_LINE_2 = 1,
+ SMSAL_MAX_LINES = 2,
+
+ /* SMS profile parameter */
+ SMSAL_PROFILE_1 = 0,
+ SMSAL_PROFILE_2 = 1,
+ SMSAL_PROFILE_3 = 2,
+ SMSAL_PROFILE_4 = 3, /* SMSAL_MAX_PROFILE_NUM (4) */
+ SMSAL_PROFILE_NONE = 0xff /* invalid profile ID */
+} smsal_dest_no_enum;
+
+typedef enum
+{
+ SMSAL_CB_MI = 0x01,
+ SMSAL_CB_MIR = 0x02,
+ SMSAL_CB_DCS = 0x04,
+ SMSAL_CB_MI_MASK = 0x08,
+ SMSAL_CB_MIR_MASK = 0x10,
+ SMSAL_CB_DCS_MASK = 0x20,
+ SMSAL_CB_ALL_LANG = 0x40
+} smsal_cb_para_enum;
+
+/* TP-Status(TP-ST) in Status Report */
+typedef enum
+{
+ /*
+ * Short message transaction completed
+ */
+ ST_COMP_MSG_RECV_BY_SME = 0x00, /* Short message received by the SME */
+ ST_COMP_MSG_FORWARD_NOT_CONF = 0x01, /* Short message forwarded by the SC to the SME
+ but the SC is unable to confirm deliver */
+ ST_COMP_MSG_REPLACE = 0x02, /* Short message replaced by the SC */
+
+ /*
+ * Temporary error, SC still trying to transfer SM
+ */
+ ST_TE1_CONGESTION = 0x20, /* Congestion */
+ ST_TE1_SME_BUSY = 0x21, /* SME busy */
+ ST_TE1_NO_RSP_FROM_SME = 0x22, /* No response from SME */
+ ST_TE1_SERVICE_REJECT = 0x23, /* Service rejected */
+ ST_TE1_QOS_NOT_AVAIL = 0x24, /* Quality of service not available */
+ ST_TE1_ERROR_IN_SME = 0x25, /* Error in SME */
+
+ /*
+ * Permanent error, SC is not making any more transfer attempts
+ */
+ ST_PE_REMOTE_PROC_ERROR = 0x40, /* Remote procedure error */
+ ST_PE_INCOMP_DEST = 0x41, /* Incompatible destination */
+ ST_PE_CONN_REJ_BY_SME = 0x42, /* Connection rejected by SME */
+ ST_PE_NOT_OBTAINABLE = 0x43, /* Not obtainable */
+ ST_PE_QOS_NOT_AVAIL = 0x44, /* Quality of service not available */
+ ST_PE_NO_INTERWK_AVAIL = 0x45, /* No interworking available */
+ ST_PE_VP_EXPIRED = 0x46, /* SM Validity Period Expired */
+ ST_PE_DEL_BY_ORI_SME = 0x47, /* SM Deleted by originating SME */
+ ST_PE_DEL_BY_SC = 0x48, /* SM Deleted by SC Administration */
+ ST_PE_NOT_EXIST = 0x49, /* SM does not exist */
+
+ /*
+ * Temporary error, SC is not making any more transfer attempts
+ */
+ ST_TE2_CONGESTION = 0x60, /* Congestion */
+ ST_TE2_SME_BUSY = 0x61, /* SME busy */
+ ST_TE2_NO_RSP_FROM_SME = 0x62, /* No response from SME */
+ ST_TE2_SERVICE_REJECT = 0x63, /* Service rejected */
+ ST_TE2_QOS_NOT_AVAIL = 0x64, /* Quality of service not available */
+ ST_TE2_ERROR_IN_SME = 0x65, /* Error in SME */
+
+ ST_SERVICE_REJECT = 0xff /* all reserved values interpreted as "service reject" */
+
+} smsal_st_enum;
+
+/*
+ * the difference between SMSAL_SM_PREFER and SMSAL_MT is :
+ *
+ * SMSAL_SM_PREFER : in at+cpms? , only SIM storage information will be return
+ * SMSAL_MT : ..... both SIM/ME storage information will be return
+ */
+typedef enum
+{
+ SMSAL_SM = 0, /* SIM only */
+ SMSAL_ME = 1, /* ME only */
+ SMSAL_SR = 2, /* status report (currently NOT support) */
+ SMSAL_BM = 3, /* broadcast (currently NOT support) */
+ SMSAL_TA = 4, /* adaptation (currently NOT support) */
+ SMSAL_SM_PREFER = 5, /* SIM prefer, try SIM first, then ME */
+ SMSAL_ME_PREFER = 6, /* ME prefer, try ME first, then SIM */
+ SMSAL_MT = 7, /* any of storages associated with ME (SIM first) */
+ SMSAL_STORAGE_UNSPECIFIED = 7
+
+} smsal_storage_enum;
+
+#ifdef SMS_FOR_NEPTUNE
+/* This enum is for para_ind in both l4csmsal_set_parameter_req_struct (2 bytes) */
+/* and smsal_send_msg_req_struct(1 byte). */
+typedef enum
+{
+ SMSAL_PARA_FO = 0x01,
+ SMSAL_PARA_SCA = 0x02,
+ SMSAL_PARA_PID = 0x04,
+ SMSAL_PARA_DCS = 0x08,
+ SMSAL_PARA_VP = 0x10,
+ SMSAL_PARA_SUPP_CONCAT = 0x20,
+ SMSAL_PARA_BEARER = 0x40,
+ SMSAL_PARA_DIRECT_DISPLAY = 0x80,
+ SMSAL_PARA_PREFER_MEM = 0x0100,
+ SMSAL_PARA_CBCH_REQ = 0x0200,
+ SMSAL_PARA_MAILBOX_ADDR = 0x0400,
+ SMSAL_PARA_PROFILE_NAME = 0x0800,
+ SMSAL_PARA_ALL_CB_LANG = 0x1000,
+ SMSAL_PARA_SAVE_PROFILE = 0x2000,
+ SMSAL_PARA_RESTORE_PROFILE= 0x4000,
+
+ SMSAL_COM_PARA_FO = 0x0001,
+ SMSAL_COM_PARA_BEARER = 0x0002,
+ SMSAL_COM_PARA_PREFER_MEM = 0x0004,
+ SMSAL_COM_PARA_STATUS_REP = 0x0008,
+ SMSAL_COM_PARA_REPLY_PATH = 0x0010,
+ SMSAL_COM_PARA_CBCH_REQ = 0x0020, //AT+CSCB
+ SMSAL_COM_PARA_MAILBOX_ADDR = 0x0040,
+ SMSAL_COM_PARA_ALL_CB_LANG = 0x0080,
+ SMSAL_COM_PARA_RESTORE_PROFILE= 0x0100,
+ SMSAL_COM_PARA_MBI_NUM = 0x0200,
+ SMSAL_COM_PARA_ECBCH_REQ = 0x0400 //AT+ECSCBSW
+} smsal_parameter_enum;
+
+#else
+typedef enum
+{
+ SMSAL_PARA_FO = 0x0001,
+ SMSAL_PARA_PID = 0x0002,
+ SMSAL_PARA_DCS = 0x0004,
+ SMSAL_PARA_VP = 0x0008,
+ SMSAL_PARA_SCA = 0x0010,
+ SMSAL_PARA_PROFILE_NAME = 0x0020,
+ SMSAL_PARA_SAVE_PROFILE = 0x0040,
+
+ SMSAL_PARA_STATUS_REP = 0x0100,
+ SMSAL_PARA_REPLY_PATH = 0x0200
+} smsal_profile_para_enum;
+
+typedef enum
+{
+ SMSAL_COM_PARA_FO = 0x0001,
+ SMSAL_COM_PARA_BEARER = 0x0002,
+ SMSAL_COM_PARA_PREFER_MEM = 0x0004,
+ SMSAL_COM_PARA_STATUS_REP = 0x0008,
+ SMSAL_COM_PARA_REPLY_PATH = 0x0010,
+ SMSAL_COM_PARA_CBCH_REQ = 0x0020, //AT+CSCB
+ SMSAL_COM_PARA_MAILBOX_ADDR = 0x0040,
+ SMSAL_COM_PARA_ALL_CB_LANG = 0x0080,
+ SMSAL_COM_PARA_RESTORE_PROFILE= 0x0100,
+ SMSAL_COM_PARA_MBI_NUM = 0x0200,
+ SMSAL_COM_PARA_ECBCH_REQ = 0x0400, //AT+ECSCBSW
+ SMSAL_COM_PARA_NR_BEARER = 0x0800 //AT+C5GSMS
+} smsal_common_para_enum;
+#endif
+
+/* follow +CGSMS command in 07.07 */
+typedef enum
+{
+ SMS_PS_ONLY = 0,
+ SMS_CS_ONLY,
+ SMS_PREFER_PS,
+ SMS_PREFER_CS,
+ NUM_OF_SMS_SERVICE_MODE
+}sms_bearer_enum;
+
+/* follow +C5GSMS command in 07.07 */
+typedef enum
+{
+ SMS_NR_PREFER_3GPP = 0,
+ SMS_NR_PREFER_NON_3GPP = 1,
+ NUM_OF_SMS_NR_SERVICE_MODE
+}sms_nr_bearer_enum;
+
+/* follow +C5GUSMS command in 07.07 */
+typedef enum
+{
+ SMS_AVAILABLE_IN_NR_UNKNOWN = 0,
+ SMS_AVAILABLE_IN_NR_NOT_AVAILABLE = 1,
+ SMS_AVAILABLE_IN_NR_AVAILABLE = 2
+}sms_nr_available_enum;
+
+/* follow +C5GUSMS command in 07.07 */
+typedef enum
+{
+ SMS_ALLOWED_IN_NR_UNKNOWN = 0,
+ SMS_ALLOWED_IN_NR_NOT_ALLOWED = 1,
+ SMS_ALLOWED_IN_NR_ALLOWED = 2
+}sms_nr_allowed_enum;
+
+typedef enum
+{
+ /* follows intended for AT commands and MMI */
+ SMSAL_REC_UNREAD = 0, /* received unread */
+ SMSAL_REC_READ, /* received read */
+ SMSAL_STO_UNSENT, /* stored unsent */
+ SMSAL_STO_SENT, /* stored sent */
+
+ SMSAL_ALL, /* all (only applicable to +CMGL command)
+ * not for MMI
+ */
+
+ /* follows intended for MMI only */
+ SMSAL_INBOX_PARTIAL, /* parts of inbox messages */
+ SMSAL_OUTBOX_PARTIAL, /* parts of outbox messages */
+ SMSAL_STO_DRAFT, /* stored draft */
+ SMSAL_INVALID_STATUS
+} smsal_status_enum;
+
+/* for +EQSI proprietary command */
+typedef enum
+{
+ RMMI_SMSAL_SM = 0,
+ RMMI_SMSAL_ME = 1,
+ RMMI_SMSAL_MT = 2
+} rmmi_smsal_storage_enum;
+
+typedef enum
+{
+ L4C_NORMAL_CB_UPDATE = 0, /* General case, user Configure CB setting */
+ L4C_ETWS_CB_START_RX, /* ETWS Primary Notification trigger ME receive CB Start */
+ L4C_ETWS_CB_STOP_RX /* ETWS Primary Notification trigger ME receive CB Stop */
+} l4c_cb_set_type_enum;
+
+/* SMS PART END */
+
+typedef enum
+{
+ SCRI_REQ_SENT = 0,
+ SCRI_CS_SESSION_ONGOING = 1,
+ SCRI_PS_SIGNALLING_ONGOING = 2,
+ SCRI_NO_PS_DATA_SESSION = 3,
+ SCRI_REQ_NOT_SENT = 4,
+ SCRI_NOT_ALLOWED = 5,
+ SCRI_REQ_IND = 6
+} end_session_result_enum;
+
+typedef enum
+{
+ SCRI_REQ_FD = 0,
+ SCRI_REQ_AFR = 1, /* 4G3 CSFB, release PS signaling connection for AFR */
+ SCRI_REQ_FOP = 2 /* RAU Accept with FOP on */
+} end_session_cause_enum;
+
+/* mtk03643 : cipher icon share between mmi & mm */
+typedef enum {
+ GMMREG_CIPHER_OFF,
+ GMMREG_CIPHER_ON,
+ GMMREG_CIPHER_INVALID=0xff
+} gmmreg_cipher_ind_enum; /* ripple: cipher ind */
+
+typedef enum {
+ NOT_ALLOWED_CSG = 0x00,
+ ALLOWED_CSG = 0x01,
+ OPERATOR_CSG = 0x02, /* Reserved for Rel9 */
+ UNAUTH_OPERATOR_CSG = 0x03
+} csg_type_enum;
+
+#if defined(__GEMINI__)
+
+typedef enum
+{
+ SIM_RADIO_OFF = 0x00,
+ SIM1_RADIO_ON = 0x01,
+ SIM2_RADIO_ON = 0x02,
+ SIM3_RADIO_ON = 0x04,
+ SIM4_RADIO_ON = 0x08
+} sim_radio_status_enum;
+
+typedef enum
+{
+ SIM1_INSERTED = 0x01,
+ SIM2_INSERTED = 0x02,
+ SIM3_INSERTED = 0x04,
+ SIM4_INSERTED = 0x08
+} sim_inserted_status_enum;
+
+typedef enum
+{
+ SIM1_ONLY_CONFIG = SIM1_RADIO_ON,
+ SIM2_ONLY_CONFIG = SIM2_RADIO_ON,
+ DAUL_SIM_CONFIG = SIM1_RADIO_ON | SIM2_RADIO_ON,
+ TRIPLE_SIM_CONFIG = SIM1_RADIO_ON | SIM2_RADIO_ON | SIM3_RADIO_ON,
+ QUAD_SIM_CONFIG = SIM1_RADIO_ON | SIM2_RADIO_ON | SIM3_RADIO_ON | SIM4_RADIO_ON,
+ SIM_CONFIG_STATUS_NONE = 0xFF
+} sim_config_status_enum;
+
+typedef enum
+{
+ NO_SIM_INSERTED = 0,
+ ONLY_SIM1_INSERTED = 1,
+ ONLY_SIM2_INSERTED = 2,
+ DUAL_SIM_INSERTED = 3,
+ SIM_INSERT_STATUS_NONE = 0xFF
+} sim_insert_status_enum;
+
+#endif
+
+typedef enum
+{
+ PHB_APPROVE_FORMAT_FAIL = 0,
+ PHB_APPROVE_PHB_NOT_READY,
+ /* for backward compatible to PHB_CAUSE_FDN_BLOCKED */
+ PHB_APPROVE_FDN_BLOCKED = 2600
+} phb_approve_cause_enum;
+
+
+typedef enum
+{
+ ESDP_CATEGORY_WALLPAPER = 0,
+ ESDP_CATEGORY_RINGTONE,//currently disabled
+ ESDP_CATEGORY_HOMECITY,
+ ESDP_CATEGORY_THEME,
+ ESDP_CATEGORY_SHORTCUT,
+ ESDP_CATEGORY_SCREENSAVER,
+ ESDP_CATEGORY_PWRONDISPLAY,
+ ESDP_CATEGORY_PWROFFDISPLAY,
+ ESDP_CATEGORY_MAX = ESDP_CATEGORY_PWROFFDISPLAY
+}esdp_category_enum;
+
+typedef enum
+{
+ TYPE_NO_REQUIRED,
+ TYPE_PHONELOCK,
+ TYPE_CHV1,
+ TYPE_CHV2,
+ TYPE_UBCHV1,
+ TYPE_UBCHV2,
+ TYPE_NP,
+ TYPE_NSP,
+ TYPE_SP,
+ TYPE_CP,
+ TYPE_IMSI_LOCK,
+ TYPE_PERSONALIZATION_KEY,
+ TYPE_CHV1_BLOCKED,
+ TYPE_CHV2_BLOCKED,
+ TYPE_SIM_CARD_BLOCKED,
+ TYPE_UBCHV2_BLOCKED,
+ TYPE_UBCHV1_CHV1_NOT_LOCK,
+ TYPE_LINK_NS_SP,
+ TYPE_LINK_SIM_C,
+ TYPE_UNSPECIFIED,
+ TYPE_UNEXPECTED_ERROR, //Kinki: for stress test [MAUI_00859767]
+ TYPE_IGNORED_ERROR // keep l4c/smu at previous state
+}smu_security_type_enum;
+
+//Kinki: MAUI_00632199
+typedef enum
+{
+ SMU_SIM_NOT_READY, //default value
+ SMU_SIM_NO_IMSI, //if no IMSI will be got in this power-on sesssion (etc. no SIM, block SIM, IMSI can't be got.)
+ SMU_SIM_REPLACED, //IMSI is read and doesn't match with the previous IMSI.
+ SMU_SIM_NOT_REPLACED //IMSI is read and the same as the previous one.
+}smu_sim_status_enum;
+
+typedef enum
+{
+ SMU_ADD_PLMNSEL,
+ SMU_REMOVE_PLMNSEL,
+ SMU_REPLACE_PLMNSEL,
+ SMU_INSERT_EMPTY //Benson 20040407 add for AT+COPS
+}smu_plmnsel_op_enum;
+
+//Kinki add for MAUI_00632199
+#if defined(__GEMINI__)
+extern smu_sim_status_enum check_sim_status(kal_uint8 simInterface);
+#else
+extern smu_sim_status_enum check_sim_status(void);
+#endif
+
+/*--- SML related enum ---*/
+
+// TMO SML
+
+typedef enum {
+ SML_PROTECTION_SCHEME_NONE = 0,
+ SML_PROTECTION_SCHEME_HMAC_SHA256 = 1,
+ SML_PROTECTION_SCHEME_RSA2048 = 2,
+} sml_protection_scheme_enum;
+
+typedef enum {
+ SML_TMO_STATE_PERMANENT_LOCK = 0,
+ SML_TMO_STATE_TEMPORARY_UNLOCK = 1,
+ SML_TMO_STATE_PERMANENT_UNLOCK = 2,
+ SML_TMO_STATE_PARTIAL_UNLOCK = 3,
+} sml_tmo_state_enum;
+
+typedef enum {
+ SML_ATT_STATE_PERMANENT_LOCK = 0,
+ SML_ATT_STATE_TEMPORARY_UNLOCK = 1,
+ SML_ATT_STATE_PERMANENT_UNLOCK = 2,
+ SML_ATT_STATE_PARTIAL_UNLOCK = 3,
+} sml_att_state_enum;
+
+typedef enum {
+ SML_EVENT_REBOOT_REQUIRED,
+ SML_EVENT_NO_REBOOT
+} sml_event_enum;
+
+
+typedef enum {
+ SML_TMO_MOVIAL_PROTECTION_SCHEME_NONE = 0,
+ SML_TMO_MOVIAL_PROTECTION_SCHEME_RSA2048 = 1,
+
+ SML_TMO_MOVIAL_PROTECTION_SCHEME_SIZE
+} sml_tmo_movial_protection_scheme_enum;
+
+typedef enum {
+ SML_TMO_MOVIAL_STATE_PERMANENT_LOCK = 0,
+ SML_TMO_MOVIAL_STATE_PERMANENT_UNLOCK = 1,
+ SML_TMO_MOVIAL_STATE_TEMPORARY_UNLOCK = 2
+} sml_tmo_movial_state_enum;
+
+
+typedef enum {
+ SML_STATE_NULL,
+ SML_STATE_LOCK,
+ SML_STATE_UNLOCK,
+ SML_STATE_AUTOLOCK,
+ SML_STATE_DISABLE
+} sml_state_enum;
+
+typedef enum {
+ SML_KEY_EMPTY,
+ SML_KEY_SET
+} sml_key_state_enum;
+
+#ifdef __SML_PUK__
+typedef enum {
+ SML_PUK_KEY_DISABLE = 0,
+ SML_PUK_KEY_ENABLE = 1
+} sml_puk_key_state_enum;
+
+typedef enum {
+ SML_PUK_OP_VERIFY = 0,
+ SML_PUK_OP_UPDATE = 1,
+
+ SML_PUK_OP_SIZE
+} sml_puk_key_op_enum;
+#endif
+
+typedef enum {
+ // For AT+ESMLCK
+ SML_OP_UNLOCK = 0,
+ SML_OP_LOCK = 1,
+ SML_OP_ADD = 2,
+ SML_OP_REMOVE = 3,
+ SML_OP_DISABLE = 4,
+ SML_OP_UPDATE_AUTOLOCK_COUNT = 5,
+#ifdef __SML_PUK__
+ SML_OP_VERIFY_PUK = 6,
+#endif
+
+ SML_OP_SIZE,
+
+ SML_OP_CHANGE_PWD = 0xFE,
+ SML_OP_VERIFY = 0xFF
+} sml_op_enum;
+
+typedef enum {
+ // For AT+ECSMLCK
+ SML_CUST_OP_UPDATE_MAX_RETRY_COUNT = 0,
+ SML_CUST_OP_UPDATE_CAT_ALGO_AND_SECURE_KEY_DATA = 1,
+ SML_CUST_OP_UPDATE_KEY_STATE = 2,
+#ifdef __SML_PUK__
+ SML_CUST_OP_UPDATE_PUK_MAX_RETRY_COUNT = 3,
+ SML_CUST_OP_UPDATE_PUK_KEY_DATA = 4,
+ SML_CUST_OP_UPDATE_PUK_KEY_STATE = 5,
+#endif
+ SML_CUST_OP_UPDATE_GENERATED_HCK = 10,
+ SML_CUST_OP_SIZE
+} sml_custom_op_enum;
+
+typedef enum {
+ SML_CAT_N,
+ SML_CAT_NS,
+ SML_CAT_SP,
+ SML_CAT_C,
+ SML_CAT_SIM,
+ SML_CAT_NS_SP,
+ SML_CAT_SIM_C,
+ SML_CAT_SIZE
+} sml_cat_enum;
+
+typedef enum {
+ SML_INPUT_WITH_PLAINKEY,
+ SML_INPUT_WITH_HCK
+} sml_key_input_type_enum;
+
+typedef enum {
+ SML_KEY_ALGO_BCD = 0,
+ SML_KEY_ALGO_PBKDF2_HMAC_SHA256_SALT128 = 1,
+} sml_key_algo_enum;
+
+#ifdef __CARRIER_RESTRICTION__
+typedef enum {
+ SMU_CRRST_STATE_NULL,
+ SMU_CRRST_STATE_LOCKED,
+ SMU_CRRST_STATE_UNLOCKED,
+ SMU_CRRST_STATE_DISABLED
+} smu_crrst_state_enum;
+
+typedef enum {
+ SMU_CRRST_KEY_STATE_NULL,
+ SMU_CRRST_KEY_STATE_LOCKED,
+ SMU_CRRST_KEY_STATE_UNLOCKED
+} smu_crrst_key_state_enum;
+
+typedef enum {
+ SMU_CRRST_CAT_N,
+ SMU_CRRST_CAT_SPN,
+ SMU_CRRST_CAT_IMSI_PREFIX,
+ SMU_CRRST_CAT_GID1,
+ SMU_CRRST_CAT_GID2,
+ SMU_CRRST_CAT_SIZE
+} smu_crrst_cat_enum;
+
+typedef enum {
+ SMU_OP_UNLOCK,
+ SMU_OP_LOCK,
+ SMU_OP_ADD,
+ SMU_OP_REMOVE,
+ SMU_OP_DISABLE,
+ SMU_OP_ENABLE,
+ SMU_OP_REMOVE_ALL,
+ SMU_OP_REMOVE_WHITE_LIST,
+ SMU_OP_REMOVE_BLACK_LIST,
+ SMU_OP_UPDATE_MSP_ACP,
+ SMU_OP_UPDATE_KEY_DATA
+} smu_crrst_op_enum;
+#endif /* __CARRIER_RESTRICTION__ */
+
+typedef enum {
+ SML_SL_CAT_N,
+ SML_SL_CAT_NS,
+ SML_SL_CAT_SP,
+ SML_SL_CAT_SIZE
+} sml_sl_cat_enum;
+
+typedef enum {
+ SML_DEVLK_STATE_LOCKED,
+ SML_DEVLK_STATE_UNLOCKED,
+} sml_device_lock_state_enum;
+
+typedef enum {
+ SML_MAGIC_HEAD,
+ SML_MAGIC_TAIL,
+ SML_CAT_META,
+ SML_CAT_KEY,
+#ifdef __SML_PUK__
+ SML_CAT_PUK_KEY,
+#endif
+ SML_CAT_CODE,
+ SML_CAT_RANGE,
+
+ // TMO Remote SIM lock
+ SML_TMO_CAT_VERSION,
+ SML_TMO_CAT_PERTECTION_SCHEME,
+ SML_TMO_CAT_STATE,
+ SML_TMO_CAT_LENGTH,
+ SML_TMO_CAT_NUM_PLMN,
+ SML_TMO_CAT_PLMN_LIST,
+ SML_TMO_CAT_NUM_GID,
+ SML_TMO_CAT_GID_LIST,
+ SML_TMO_CAT_START_TIME,
+ SML_TMO_CAT_END_TIME,
+ SML_TMO_CAT_IMEI,
+ SML_TMO_CAT_VERIFICATION_CODE,
+ SML_TMO_CAT_UNLOCK_TIME_COUNTER,
+
+ // ATT Remote SIM lock
+ SML_ATT_CAT_VERSION,
+ SML_ATT_CAT_PERTECTION_SCHEME,
+ SML_ATT_CAT_STATE,
+ SML_ATT_CAT_LENGTH,
+ SML_ATT_CAT_NUM_PLMN,
+ SML_ATT_CAT_PLMN_LIST,
+ SML_ATT_CAT_NUM_GID,
+ SML_ATT_CAT_GID_LIST,
+ SML_ATT_CAT_START_TIME,
+ SML_ATT_CAT_END_TIME,
+ SML_ATT_CAT_IMEI,
+ SML_ATT_CAT_VERIFICATION_CODE,
+ SML_ATT_CAT_UNLOCK_TIME_COUNTER,
+
+ // Subsidy lock
+ SML_SL_CAT_MAJOR_VERSION,
+ SML_SL_CAT_MINOR_VERSION,
+ SML_SL_CAT_PROTECTION_ALGORITHM,
+ SML_SL_CAT_LOCK_OPERATION,
+ SML_SL_CAT_IMEI,
+ SML_SL_CAT_TIME_STAMP,
+ SML_SL_CAT_LENGTH,
+ SML_SL_CAT_META,
+ SML_SL_CAT_KEY,
+ SML_SL_CAT_CODE,
+ SML_SL_CAT_SIGNATURE,
+
+ // VZW RSU
+ SML_VZW_RSU_MAJOR_VERSION,
+ SML_VZW_RSU_MINOR_VERSION,
+ SML_VZW_RSU_PROTECTION_ALGORITHM,
+ SML_VZW_RSU_NETWORK_LOCK_OPERATION,
+ SML_VZW_RSU_SESSION_ID,
+ SML_VZW_RSU_TIME_STAMP,
+ SML_VZW_RSU_CAT_CODE,
+ SML_VZW_RSU_CAT_NUM,
+
+ SML_CAT_MAX_RETRY_COUNT,
+
+ // Carrier Restriction
+ SMU_CRRST_KEY,
+ SMU_CRRST_BLACK_LIST_META,
+ SMU_CRRST_BLACK_LIST,
+ SMU_CRRST_WHITE_LIST_META,
+ SMU_CRRST_WHITE_LIST,
+ SMU_CRRST_ALLOW_ALL,
+ SMU_CRRST_STATE,
+ SMU_CRRST_MULTI_SIM_POLICY,
+ SMU_CRRST_ALLOWED_CARRIERS_PRIORITIZED,
+
+ SML_TMO_MOVIAL_CAT_MAJOR_VERSION,
+ SML_TMO_MOVIAL_CAT_MINOR_VERSION,
+ SML_TMO_MOVIAL_CAT_PROTECTION_ALGORITHM,
+ SML_TMO_MOVIAL_CAT_LOCK_OPERATION,
+ SML_TMO_MOVIAL_CAT_IMEI,
+ SML_TMO_MOVIAL_CAT_TIME_STAMP,
+ SML_TMO_MOVIAL_CAT_START_TIME,
+ SML_TMO_MOVIAL_CAT_UNLOCK_DURATION,
+ SML_TMO_MOVIAL_CAT_LENGTH,
+ SML_TMO_MOVIAL_CAT_META,
+ SML_TMO_MOVIAL_CAT_KEY,
+ SML_TMO_MOVIAL_CAT_CODE,
+ SML_TMO_MOVIAL_CAT_SIGNATURE,
+ SML_TMO_MOVIAL_CAT_UNLOCK_TIME_COUNTER,
+} sml_ctx_enum;
+
+typedef enum{
+ SML_OP129_CAT_N,
+ SML_OP129_CAT_START = SML_OP129_CAT_N,
+ SML_OP129_CAT_NS,
+ SML_OP129_CAT_SP,
+ SML_OP129_CAT_C,
+ SML_OP129_CAT_MAX,
+}smu_op129_cat_enum;
+
+typedef enum {
+ RAC_ATTACHING_OR_SEARCHING,
+ RAC_ATTACHED,
+ RAC_DETACHED,
+ RAC_DETACHED_NO_COVERAGE,
+} l4crac_reg_event_enum;
+
+typedef enum
+{
+ RAC_DETACH,
+ RAC_ATTACH
+} l4crac_ps_attach_enum;
+
+typedef enum
+{
+ RAC_CS = 1,
+ RAC_PS = 2,
+ RAC_CS_AND_PS = 3
+} l4crac_attach_type_enum;
+
+typedef enum
+{
+ DETACH_CAUSE_NONE = 0,
+ DETACH_CAUSE_DUPLEX_MODE_CHANGE,
+ DETACH_CAUSE_BLOCK_ILLEGAL_ME, /*the deatch is due to SIM got reject from NW and enter illegal state*/
+ DETACH_CAUSE_BLOCK_NORMAL_SERVICE,
+} l4c_rac_detach_cause_enum;
+
+typedef enum
+{
+ L4C_RAC_OK,
+ L4C_RAC_NO_CELL,
+ L4C_RAC_LIMITED_SERVICE,
+ L4C_RAC_ERROR,
+ L4C_RAC_INVALID_SIM,
+ L4C_RAC_ATTEMPT_TO_UPDATE,
+ L4C_RAC_SEARCHING, /* Johnny 2005/11/07: add new temp gsm_status for MMI: L4C_RAC_SEARCHING */
+ L4C_RAC_NULL
+} l4c_rac_response_enum;
+
+typedef enum
+{
+ L4C_APPLY_AT_RUNTIME = 0,
+ L4C_APPLY_AFTER_REBOOT,
+ L4C_APPLY_INVALID
+} l4c_hspa_mode_apply_enum;
+
+typedef enum
+{
+ L4C_HSPA_OFF = 0,
+ L4C_HSDPA_ON = 1,
+ L4C_HSDPA_HSUPA_ON = 2,
+ L4C_HSPAPLUS_ON = 3,
+ L4C_HSPA_INVLIAD
+} l4c_hspa_preference_enum; // it shall be sync to hspa_preference_enum
+// --- mtk02285, hspa_mmi
+
+typedef enum
+{
+ MANUAL_MODE = 0,
+ AUTOMATIC_MODE = 1
+} plmn_selection_mode_enum;
+
+ typedef enum {
+ PHB_NORMAL_NUM = 129,
+ PHB_INTER_NUM = 145,
+ PHB_UNKNOW = 255
+} phb_ton_enum;
+
+/******************************
+*******RMMI related ENUM BEGIN*****
+*******************************/
+typedef enum
+{
+ RMMI_PLMN_LONG_ALPHA,
+ RMMI_PLMN_SHORT_ALPHA,
+ RMMI_PLMN_NUMERIC
+} rmmi_plmn_format_enum;
+
+typedef enum
+{
+ RMMI_DISABLE_REPORT = 0,
+ RMMI_ENABLE_REPORT,
+ RMMI_ENABLE_REPORT_FOR_STATE,
+ RMMI_REPORT_MAX_MODE
+} rmmi_report_mode_enum;
+
+typedef enum
+{
+ RMMI_TIME_ZONE_DISABLE_REPORT = 0,
+ RMMI_TIME_ZONE_ONLY_REPORT = 1, // for URC +CTZV
+ RMMI_TIME_ZONE_DST_TIME_REPORT = 2, // for URC +CTZE
+ RMMI_TIME_ZONE_DST_UTC_TIME_REPORT = 3 // for URC +CTZEU
+} rmmi_time_zone_report_mode_enum;
+
+typedef enum
+{
+ RMMI_DISABLE_NW_REG_REPORT = 0,
+ RMMI_ENABLE_NW_REG_REPORT = 1,
+ RMMI_ENABLE_LOC_REPORT = 2,
+ RMMI_ENABLE_LOC_AND_CAUSE_REPORT = 3,
+ RMMI_ENABLE_PSM_REPORT = 4,
+ RMMI_ENABLE_PSM_AND_CAUSE_REPORT = 5,
+ RMMI_NW_REG_REPORT_MODE_MAX,
+} rmmi_nw_reg_report_mode_enum;
+
+typedef enum
+{
+ RMMI_NUM_PARTIAL_HEAD_TAIL,
+ RMMI_VERBOSE_FULL_HEAD_TAIL
+} rmmi_result_code_format;
+
+typedef enum
+{
+ RMMI_SUPPRESS_OFF,
+ RMMI_SUPRESS_ON
+} rmmi_result_code_suppress_enum;
+
+typedef enum
+{
+ RMMI_SIMPLE_ERROR,
+ RMMI_NUMERIC_ERROR,
+ RMMI_TEXT_ERROR
+} rmmi_error_report_mode_enum;
+
+typedef enum
+{
+ RMMI_UART_TO_SIM1,
+ RMMI_UART_TO_SIM2,
+ RMMI_UART_TO_SIM3,
+ RMMI_UART_TO_SIM4,
+ RMMI_SIM_UART_SETTING_NONE = 0xFF
+}rmmi_sim_uart_setting_enum;
+
+
+typedef enum
+{
+ RMMI_CHSET_IRA,
+ RMMI_CHSET_HEX,
+ RMMI_CHSET_GSM,
+ RMMI_CHSET_PCCP437,
+ RMMI_CHSET_PCDN,
+ RMMI_CHSET_88591,
+ RMMI_CHSET_UCS2,
+ RMMI_CHSET_UCS2_0X81,
+ RMMI_CHSET_TOTAL_NUM
+} rmmi_chset_enum;
+
+#ifdef __EPSFB_SUPPORT__
+
+typedef enum
+{
+ RMMI_EPSFB_STATE_START,
+ RMMI_EPSFB_STATE_SUCCESS,
+ RMMI_EPSFB_STATE_FAIL,
+ RMMI_EPSFB_STATE_MAX
+} rmmi_epsfb_state_enum;
+
+
+typedef enum
+{
+ RMMI_EPSFB_TYPE_HANDOVER,
+ RMMI_EPSFB_TYPE_REDIRECTION,
+ RMMI_EPSFB_TYPE_MAX
+} rmmi_epsfb_type_enum;
+
+#endif
+
+/******************************
+*******RMMI related ENUM END*******
+*******************************/
+
+
+typedef enum
+{
+ L4C_SETTING_FLIGHT_MODE,
+ L4C_SETTING_WLAN_FLIGHT_MODE,
+ L4C_SETTING_DUAL_SIM_MODE,
+ L4C_SETTING_DUAL_SIM_UART,
+ L4C_SETTING_3G_SERVICE_BITMAP, //Phased out. SIM switch does not use this NVRAM anymore.
+ L4C_SETTING_MMDC_MODE,
+ L4C_SETTING_MAX
+}l4c_nvram_setting_enum;
+
+typedef enum
+{
+ MT_CALL_ALLOW,
+ MT_CALL_REJECT,
+ MT_CALL_APPROVAL_ENABLE,
+ MT_CALL_APPROVAL_DISABLE
+}l4c_mt_call_approval_enum;
+
+typedef enum
+{
+ ALS_DIAL_BY_SETTING, //dial call according to the ALS setting in NVRAM
+ ALS_DIAL_LINE1,
+ ALS_DIAL_LINE2
+}l4c_als_dial_type_enum;
+
+typedef enum
+{
+ INFO_ECC_CHECK_BY_MODEM, //let modem check if dialed number is ECC (it's current MAUI solution default value)
+ INFO_ECC_CALL, //inform the dialed number is a ECC call
+ INFO_NORMAL_CALL, //inform the dialed number is a normal call
+ INFO_ECALL_START,
+ INFO_ECALL_TEST = 0x00 + INFO_ECALL_START, //inform the dialed number is a test Ecall
+ INFO_ECALL_RECONFIGURATION = 0x01 + INFO_ECALL_START, //inform the dialed number is a reconfiguration Ecall
+ INFO_ECALL_MANUALLY_INITIATED = 0x02 + INFO_ECALL_START, //inform the dialed number is a manually Ecall
+ INFO_ECALL_AUTOMATICALLY_INITIATED = 0x03 + INFO_ECALL_START //inform the dialed number is a automatically Ecall
+}l4c_mmi_ecc_info_enum;
+
+typedef enum
+{
+ SINGLE_VOICE_CALL,
+ SINGLE_DATA_CALL,
+ SINGLE_FAX_CALL,
+ FOLLOW_VOICE_CALL,
+ ALT_DATA_VOICE_CALL,
+ ALT_FAX_VOICE_CALL,
+ FOLLOW_DATA_CALL,
+ ALT_DATA_DATA_CALL,
+ ALT_FAX_FAX_CALL,
+ UNKNOWN_CALL
+} l4ccsm_cc_call_mode_enum;
+
+
+typedef enum
+{
+ L4C_NONE_SPECIFIED = 0x0000,
+ L4C_GPRS_SUPPORT = 0x0001,
+ L4C_EDGE_SUPPORT = 0x0002,
+ L4C_UMTS_SUPPORT = 0x0004,
+ L4C_HSDPA_SUPPORT = 0x0008,
+ L4C_HSUPA_SUPPORT = 0x0010,
+ L4C_HSDPA_UPA_SUPPORT = 0x0018,
+
+ L4C_HSDPAP_SUPPORT = 0x0020,
+ L4C_HSDPAP_UPA_SUPPORT = 0x0030,
+ L4C_HSUPAP_SUPPORT = 0x0040,
+ L4C_HSUPAP_DPA_SUPPORT = 0x0048,
+ L4C_HSPAP_SUPPORT = 0x0060,
+ L4C_DC_DPA_SUPPORT = 0x0088,
+ L4C_DC_DPA_UPA_SUPPORT = 0x0098,
+ L4C_DC_HSDPAP_SUPPORT = 0x00a0,
+ L4C_DC_HSDPAP_UPA_SUPPORT = 0x00b0,
+ L4C_DC_HSUPAP_DPA_SUPPORT = 0x00c8,
+ L4C_DC_HSPAP_SUPPORT = 0x00e0,
+
+ /* C2K specific*/
+ L4C_1XRTT_SUPPORT = 0x0100,
+ L4C_HRPD_SUPPORT = 0x0200,
+ L4C_EHRPD_SUPPORT = 0x0400,
+
+ L4C_LTE_SUPPORT = 0x1000,
+ L4C_LTE_CA_SUPPORT = 0x2000,
+
+ L4C_ENDC_SUPPORT = 0x4000,
+ L4C_NR_SUPPORT = 0x8000,
+
+ L4C_NOT_CHANGE = 0xffff
+} l4c_data_speed_support_enum; // it shall be sync to data_speed_support_enum
+//bit7 6 5 4 3 2 1 0
+//DUAL CARRIER HSUPA+ HSDPA+ HSUPA HSDPA UMTS EDGE GPRS
+
+
+typedef enum
+{
+ L4C_NONE_ACTIVATE = 0,
+ L4C_GPRS_CAPABILITY,
+ L4C_EDGE_CAPABILITY,
+ L4C_UMTS_CAPABILITY,
+ L4C_HSDPA_CAPABILITY, //mac-hs
+ L4C_HSUPA_CAPABILITY, //mac-e/es
+ L4C_HSDPA_HSUPA_CAPABILITY, //mac-hs + mac-e/es
+
+ L4C_HSDPAP_CAPABILITY, //mac-ehs
+ L4C_HSDPAP_UPA_CAPABILITY, //mac-ehs + mac-e/es
+ L4C_HSUPAP_CAPABILITY, //mac-i/is
+ L4C_HSUPAP_DPA_CAPABILITY, //mac-hs + mac-i/is
+ L4C_HSPAP_CAPABILITY, //mac-ehs + mac-i/is
+ L4C_DC_DPA_CAPABILITY, //(DC) mac-hs
+ L4C_DC_DPA_UPA_CAPABILITY, //(DC) mac-hs + mac-e/es
+ L4C_DC_HSDPAP_CAPABILITY, //(DC) mac-ehs
+ L4C_DC_HSDPAP_UPA_CAPABILITY, //(DC) mac-ehs + mac-e/es
+ L4C_DC_HSUPAP_DPA_CAPABILITY, //(DC) mac-hs + mac-i/is
+ L4C_DC_HSPAP_CAPABILITY, //(DC) mac-ehs + mac-i/is
+ L4C_LTE_CAPABILITY,
+ L4C_LTE_CA_CAPABILITY,
+} l4c_data_bearer_capablility_enum;
+// l4c_data_bearer_capablility_enum !!! no sync since R7R8 !!! with data_speed_activate_enum
+// should be converted from data_speed_activate_enum to l4c_data_bearer_capablility_enum
+// l4c_convert_data_speed_support_enum ....
+
+
+#if defined(__BT_SUPPORT__)
+//defined later
+typedef enum
+{
+ RMMI_CIND_BEGIN = 0,
+ RMMI_CIND_SERVICE,
+ RMMI_CIND_CALL,
+ RMMI_CIND_CALLSETUP,
+ RMMI_CIND_CALLHELD,
+ RMMI_CIND_BATTCHG,
+ RMMI_CIND_SIGNAL,
+ RMMI_CIND_ROAM,
+ RMMI_CIND_END
+} rmmi_cind_enum;
+#else /* defined(__BT_SUPPORT__) */
+typedef enum
+{
+ RMMI_CIND_BEGIN = 0,
+ RMMI_CIND_BATTCHG,
+ RMMI_CIND_SIGNAL,
+ RMMI_CIND_SERVICE,
+ RMMI_CIND_MESSAGE,
+ RMMI_CIND_CALL,
+ RMMI_CIND_ROAM,
+ RMMI_CIND_SMSMEMSTATUS,
+ RMMI_CIND_CALLSETUP,
+ RMMI_CIND_END
+} rmmi_cind_enum;
+#endif /* defined(__BT_SUPPORT__) */
+
+typedef enum
+{
+ RMMI_CIND_CC_NONE = 0,
+ RMMI_CIND_CC_ACTIVE = 1
+} rmmi_cind_call;
+
+typedef enum
+{
+ RMMI_CIND_CSUP_NONE = 0,
+ RMMI_CIND_CSUP_INCOMING,
+ RMMI_CIND_CSUP_OUTGOING,
+ RMMI_CIND_CSUP_ALERT,
+ RMMI_CIND_CSU_PEND
+} rmmi_cind_callsetup;
+
+typedef enum
+{
+ RMMI_CIND_HELD_NONE = 0,
+ RMMI_CIND_HELD_ACTIVE_HOLD = 1,
+ RMMI_CIND_HELD_HOLD = 2
+} rmmi_cind_callheld;
+
+typedef enum
+{
+ NW_BAND_PGSM900 = 0x01,
+ NW_BAND_EGSM900 = 0x02,
+ NW_BAND_RGSM900 = 0x04,
+ NW_BAND_DCS1800 = 0x08,
+ NW_BAND_PCS1900 = 0x10,
+ NW_BAND_GSM450 = 0x20,
+ NW_BAND_GSM480 = 0x40,
+ NW_BAND_GSM850 = 0x80
+} l4c_nw_band_enum;
+
+#define VGSM_SPEC_CAUSE_ENUM(cause, value) \
+ VGSM_##cause = value + VGSM_CAUSE_START,
+#define VGSM_PROPRIETARY_CAUSE_ENUM(cause, value) \
+ VGSM_##cause = value + VGSM_CAUSE_START,
+
+typedef enum {
+/* ============================== CM cause ============================== */
+ CM_RADIO_LINK_FAIL = 0, /* Ripple: add for SAT3 use. sec 11.3.2, spec.. 11.14 */
+// 3GPP 24.008 clause 10.5.4.11(Annex H) CC+SS cause value
+// 3GPP 24.011 clause 8.2.5.4 SMS RP cause value
+// 3GPP 24.011 clause 8.1.4.2 SMS CP cause value
+// Class(000): 0-15 -> normal event CC+SS SMS
+ CM_UNASSIGNED_NUM = 1, // X X
+ CM_NO_ROUTE_TO_DESTINATION = 3, // X
+ CM_CHANNEL_UN_ACCP = 6, // X
+ CM_OPR_DTR_BARRING = 8, // X X
+ CM_CALL_BARRED = 10, // X
+ CM_RESERVED = 11, // X
+// Class(001): 16-31 -> normal event
+ CM_NORMAL_CALL_CLR = 16, // X
+ CM_USER_BUSY = 17, // X X! (SMS: nwk failure)
+ CM_NO_USER_RESPONDING = 18, // X
+ CM_NO_ANSWER_ON_ALERT = 19, // X
+ CM_CALL_REJECTED = 21, // X X
+ CM_NUMBER_CHANGED = 22, // X X! (SMS: congestion)
+ CM_CALL_REJECT_DUO_TO_FEATURE = 24, // X
+ CM_PRE_EMPTION = 25, // X
+ CM_NON_SEL_USER_CLEAR = 26, // X
+ CM_DEST_OUT_OF_ORDER = 27, // X X
+ CM_INVALID_NUMBER_FORMAT = 28, // X X
+ CM_FACILITY_REJECT = 29, // X X
+ CM_RES_STATUS_ENQ = 30, // X X! (SMS:Unknown_Sub)
+ CM_NORMAL_UNSPECIFIED = 31, // X
+// Class(010): 32-48 -> resource unavailable
+ CM_NO_CIRCUIT_CHANNEL_AVAIL = 34, // X
+ CM_NETWORK_OUT_OF_ORDER = 38, // X X
+ CM_TEMPORARY_FAILURE = 41, // X X
+ CM_SWITCH_EQUIPMENT_CONGESTION = 42, // X X
+ CM_ACCESS_INFO_DISCARDED = 43, // X
+ CM_REQUESTED_CKT_CHANEL_NOT_AVIL = 44, // X
+ CM_RESOURCE_UNAVAIL_UNSPECIFIED = 47, // X X
+// Class(011): 49-64 -> service or option not available
+ CM_QOS_UNAVAIL = 49, // X
+ CM_REQ_FAC_NOT_SUBS = 50, // X X
+ CM_IC_BAR_CUG = 55, // X
+ CM_BEARER_CAP_NOT_AUTHORISED = 57, // X
+ CM_BEARER_CAP_NOT_AVAIL = 58, // X
+ CM_SER_UNAVAILABLE = 63, // X
+// Class(100): 65-80 -> service or option not implementated
+ CM_BEARER_SER_UNIMPL = 65, // X
+ CM_ACM_EXCEEDED = 68, // X
+ CM_REQ_FACILITY_UNAVAIL = 69, // X X
+ CM_RESTR_DIGITAL_INFO = 70, // X
+ CM_SER_OPT_UNIMPL = 79, // X
+// Class(101): 81-95 -> invalid message
+ CM_INVALID_TI_VALUE = 81, // X X
+ CM_USER_NOT_IN_CUG = 87, // X
+ CM_INCOMPATIBLE_DEST = 88, // X
+ CM_INVALID_TRANSIT_NW_SEL = 91, // X
+ CM_SEMANTIC_ERR = 95, // X X
+// Class(110): 96-112 -> protocol error
+ CM_INVALID_MANDATORY_INF = 96, // X X
+ CM_MSG_TYPE_UNIMPL = 97, // X X
+ CM_MSG_TYPE_NOT_COMPATIBLE = 98, // X X
+ CM_IE_NON_EX = 99, // X X
+ CM_COND_IE_ERR = 100, // X
+ CM_INCOMP_MESG_WITH_STATE = 101, // X
+ CM_RECOVERY_ON_TIMER_EXPIRY = 102, // X
+ CM_PROTOCOL_ERR_UNSPECIFIED = 111, // X X
+// Class(111): 113-127 -> interworking
+ CM_INTER_WRK_UNSPECIFIED = 127, // X X
+/* ============================== ~CM cause ============================== */
+
+/* ============================== SMS cause ============================== */
+// 3GPP 23.040 clause 9.2.3.22 SMS TP cause values
+// 128-255 -> SMS cause value
+
+ /* PID error */
+ TELEMATIC_INT_WRK_NOT_SUPPORT = 0x80, /* telematic interworking not support */
+ SMS_TYPE0_NOT_SUPPORT = 0x81, /* short message type 0 not support */
+ CANNOT_REPLACE_MSG = 0x82,
+ UNSPECIFIED_PID_ERROR = 0x8F,
+
+ /* DCS error */
+ ALPHABET_NOT_SUPPORT = 0x90, /* data coding scheme (alphabet) not support */
+ MSG_CLASS_NOT_SUPPORT = 0x91, /* message class not support */
+ UNSPECIFIED_TP_DCS = 0x9f,
+
+ /* Command error */
+ CMD_CANNOT_ACTION = 0xa0, /* command cannot be actioned */
+ CMD_NOT_SUPPORT = 0xa1, /* command unsupported */
+ UNSPECIFIED_CMD_ERROR = 0xaf,
+
+ TPDU_NOT_SUPPORT = 0xb0,
+ SC_BUSY = 0xc0,
+ NO_SC_SUBSCRIPTION = 0xc1,
+ SC_SYS_FAILURE = 0xc2, /* SC system failure */
+ INVALID_SME_ADDR = 0xc3,
+ DEST_SME_BARRED = 0xc4, /* destination SME barred */
+ SM_REJ_DUP_SM = 0xc5, /* SM rejected-duplicate SM */
+ TP_VPF_NOT_SUPPORT = 0xc6,
+ TP_VP_NOT_SUPPORT = 0xc7,
+
+ SIM_STORAGE_FULL = 0xd0,
+ NO_SMS_STO_IN_SIM = 0xd1, /* No SMS storage capability in SIM */
+ ERROR_IN_MS = 0xd2,
+ MEM_CAP_EXCEEDED = 0xd3, /* Memory Capacity Exceeded */
+
+ /* SIM Application Toolkit */
+ SMS_SAT_BUSY = 0xd4, /* SIM Application Toolkit Busy */
+ SMS_SAT_DL_ERROR = 0xd5, /* SIM data download error */
+
+ /* 0XE0 to 0xFE are specific to application */
+ SMS_CP_RETRY_EXCEED = 0xe0,
+ SMS_RP_TR1M_TIMEOUT = 0xe1,
+ SMS_CONNECTION_BROKEN = 0xe2,
+
+ UNSPECIFIED_TP_FCS = 0xff,
+
+// 3GPP 27.005 clause 3.2.5 SMS ATcmd cause values
+// 256-511 -> SMS AT command cause value
+ INVALID_PDU_MODE_PARA = 304, /* invalid pdu mode parameter */
+ INVALID_TEXT_MODE_PARA = 305, /* invalid text mode parameter */
+ SMS_SIM_FAILURE = 313, /* sim failure */
+ MEM_FAILURE = 320, /* memory failure */
+ INVALID_MEM_INDEX = 321, /* invalid memory index */
+ MEM_FULL = 322, /* memory full */
+ SCA_UNKNOWN = 330, /* SMSC address unknown */
+ SMS_NO_NW_SERVICE = 331, /* no network service */
+ NO_CNMA_EXPECTED = 340, /* no +CNMA acknowledgement expected */
+ SMSAL_UNSPECIFIED_ERROR_CAUSE = 500,
+
+// 512-767 -> SMS proprietary cause values
+ SMSAL_NO_ERROR = 512,
+ MSG_LEN_EXCEEDED = 513, /* message length exceeds
+ maximum length */
+ INVALID_REQ_PARAMETER = 514, /* invalid request parameters */
+ SMS_ME_STORAGE_FAILURE = 515, /* ME storage failure */
+ SMSAL_INVALID_BEARER = 516, /* Invalid bearer service */
+ SMSAL_INVALID_SERVICE_MODE = 517, /* Invalid service mode */
+ SMSAL_INVALID_STORAGE_TYPE = 518, /* Invalid storage type */
+ SMSAL_INVALID_MSG_FORMAT = 519, /* Invalid message format */
+ TOO_MANY_MO_CONCAT_MSG = 520, /* Too many MO concatenated messages */
+ SMSAL_NOT_READY = 521,
+ SMSAL_NO_MO_SERVICE = 522,
+ NOT_SUPP_SR_CMD_IN_STORAGE = 523, /* not support TP-Status-Report & TP-Command in storage */
+ SMSAL_NOT_SUPPORT_MSG_TYPE = 524, /* Reserved MTI */
+ SMS_RL_NO_FREE_ENTITY = 525, /* no free entity in RL layer */
+ SMS_PORT_NUM_ALREADY_REG = 526, /* The port number is already registerred */
+ SMS_PORT_NUM_NO_FREE_ENTITY= 527, /* There is no free entity for port number */
+ SMS_RL_MMS_STATE_ERR = 528, /* More Message to Send state error */
+ SMS_MO_SMS_NOT_ALLOW = 529, /* MO SMS is not allow */
+ SMS_PS_SUSPENDED = 530, /* GPRS is suspended */
+ SMS_ME_STORAGE_FULL = 531, /* ME storage full */
+ SMS_SIM_REFRESHING = 532, /* doing SIM refresh */
+ SMS_MSPM_CNF_FAIL = 533, /* MSPM CNF returns with fail */
+ SMS_RL_ENTITY_NOT_FOUND = 534, /* More Message to Send state error */
+ SMS_RP_TR2M_TIMEOUT = 535,
+ SMS_ABORT_BY_USER = 536,
+/* ============================== ~SMS cause ============================== */
+
+/* ============================== CC cause ============================== */
+// 768-1023 -> CC proprietary cause values
+ CSMCC_CMD_NOT_ALLOW = 768,
+ CSMCC_ILLEGAL_CALL_ID,
+ CSMCC_CALL_ALLOC_FAIL,
+ CSMCC_BC_FILL_FAIL,
+ CSMCC_CALL_RE_EST,
+ CSMCC_ILLEGAL_DTMF_TONE,
+ CSMCC_ILLEGAL_BC,
+ CSMCC_MODIFY_ACTUAL_MODE,
+ CSMCC_DATA_ACT_FAIL,
+ CSMCC_NO_RESPONSE_FROM_NW,
+ CSMCC_CALL_ACCEPT_NOT_ALLOW,
+ CSMCC_SAT_CALL_CTRL_REJECTED, /* call rejected by SAT call control: added for MAUI_01300426 */
+ CSMCC_VT_NO_UMTS_CAPABILITY, /*[MAUI_01712442]*/
+
+ CM_L4C_GEN_CAUSE = 896,
+ CM_L4C_CC_CALL_ABORT = 897, /*CSD call is aborted by user during call establishment
+ or MT call abort MO call/USSD*/
+ CM_L4C_CC_CALL_DISC_IND = 898, /*CSD call is disconnected due to lower layer failure*/
+/* ============================== ~CC cause ============================== */
+
+/* ============================== SS cause ============================== */
+// 1024-1279 -> SS proprietary cause values
+// 3GPP 23.080 clause 4.3 SS Error Types
+ CM_SS_ERR_START = 1024,
+ CM_SS_ERR_UNKNOWNSUBSCRIBER = 1 + CM_SS_ERR_START,
+ CM_SS_ERR_ILLEGALSUBSCRIBER = 9 + CM_SS_ERR_START,
+ CM_SS_ERR_BEARERSERVICENOTPROVISIONED = 10 + CM_SS_ERR_START,
+ CM_SS_ERR_TELESERVICENOTPROVISIONED = 11 + CM_SS_ERR_START,
+ CM_SS_ERR_ILLEGALEQUIPMENT = 12 + CM_SS_ERR_START,
+ CM_SS_ERR_CALLBARRED = 13 + CM_SS_ERR_START,
+ CM_SS_ERR_ILLEGALSS_OPERATION = 16 + CM_SS_ERR_START,
+ CM_SS_ERR_SS_ERRORSTATUS = 17 + CM_SS_ERR_START,
+ CM_SS_ERR_SS_NOTAVAILABLE = 18 + CM_SS_ERR_START,
+ CM_SS_ERR_SS_SUBSCRIPTIONVIOLATION = 19 + CM_SS_ERR_START,
+ CM_SS_ERR_SS_INCOMPABILITY = 20 + CM_SS_ERR_START,
+ CM_SS_ERR_FACILITYNOTSUPPORTED = 21 + CM_SS_ERR_START,
+ CM_SS_ERR_ABSENTSUBSCRIBER = 27 + CM_SS_ERR_START,
+ CM_SS_ERR_SHORTTERMDENIAL = 29 + CM_SS_ERR_START,
+ CM_SS_ERR_LONGTERMDENIAL = 30 + CM_SS_ERR_START,
+ CM_SS_ERR_SYSTEMFAILURE = 34 + CM_SS_ERR_START,
+ CM_SS_ERR_DATAMISSING = 35 + CM_SS_ERR_START,
+ CM_SS_ERR_UNEXPECTEDDATAVALUE = 36 + CM_SS_ERR_START,
+ CM_SS_ERR_PW_REGISTRATIONFAILURE = 37 + CM_SS_ERR_START,
+ CM_SS_ERR_NEGATIVEPW_CHECK = 38 + CM_SS_ERR_START,
+ CM_SS_ERR_NUMBEROFPW_ATTEMPTSVIOLATION = 43 + CM_SS_ERR_START,
+ CM_SS_ERR_POSITIONMETHODFAILURE = 54 + CM_SS_ERR_START,
+ CM_SS_ERR_UNKNOWNALPHABET = 71 + CM_SS_ERR_START,
+ CM_SS_ERR_USSD_BUSY = 72 + CM_SS_ERR_START,
+ CM_SS_ERR_REJECTEDBYUSER = 121 + CM_SS_ERR_START,
+ CM_SS_ERR_REJECTEDBYNETWORK = 122 + CM_SS_ERR_START,
+ CM_SS_ERR_DEFLECTIONTOSERVEDSUBSCRIBER = 123 + CM_SS_ERR_START,
+ CM_SS_ERR_SPECIALSERVICECODE = 124 + CM_SS_ERR_START,
+ CM_SS_ERR_INVALIDDEFLECTIONTONUMBER = 125 + CM_SS_ERR_START,
+ CM_SS_ERR_MAXNUMBEROFMPTY_PARTICIPANTSEXCEEDED = 126 + CM_SS_ERR_START,
+ CM_SS_ERR_RESOURCESNOTAVAILABLE = 127 + CM_SS_ERR_START,
+
+ CM_SS_GENERALPROBLEM_START = 1152,
+ CM_SS_GENERALPROBLEM_UNRECOGNIZEDCOMPONENT = CM_SS_GENERALPROBLEM_START,
+ CM_SS_GENERALPROBLEM_MISTYPEDCOMPONENT = 1 + CM_SS_GENERALPROBLEM_START,
+ CM_SS_GENERALPROBLEM_BADLYSTRUCTUREDCOMPONENT = 2 + CM_SS_GENERALPROBLEM_START,
+
+ CM_SS_INVOKEPROBLEM_START = 1155,
+ CM_SS_INVOKEPROBLEM_DUPLICATEINVOKEID = CM_SS_INVOKEPROBLEM_START,
+ CM_SS_INVOKEPROBLEM_UNRECOGNIZEDOPERATION = 1 + CM_SS_INVOKEPROBLEM_START,
+ CM_SS_INVOKEPROBLEM_MISTYPEDPARAMETER = 2 + CM_SS_INVOKEPROBLEM_START,
+ CM_SS_INVOKEPROBLEM_RESOURCELIMITATION = 3 + CM_SS_INVOKEPROBLEM_START,
+ CM_SS_INVOKEPROBLEM_INITIATINGRELEASE = 4 + CM_SS_INVOKEPROBLEM_START,
+ CM_SS_INVOKEPROBLEM_UNRECOGNIZEDLINKDID = 5 + CM_SS_INVOKEPROBLEM_START,
+ CM_SS_INVOKEPROBLEM_LINKEDRESONSEUNEXPECTED = 6 + CM_SS_INVOKEPROBLEM_START,
+ CM_SS_INVOKEPROBLEM_UNEXPECTEDLINKEDOPERATION = 7 + CM_SS_INVOKEPROBLEM_START,
+
+ CM_SS_RETURNRESULTPROBLEM_START = 1163,
+ CM_SS_RETURNRESULTPROBLEM_RR_UNRECOGNIZEDINVOKEID = CM_SS_RETURNRESULTPROBLEM_START,
+ CM_SS_RETURNRESULTPROBLEM_RR_RETURNRESULTUNEXPECTED = 1 + CM_SS_RETURNRESULTPROBLEM_START,
+ CM_SS_RETURNRESULTPROBLEM_RR_MISTYPEDPARAMETER = 2 + CM_SS_RETURNRESULTPROBLEM_START,
+
+ CM_SS_RETURNERRORPROBLEM_START = 1166,
+ CM_SS_RETURNERRORPROBLEM_RE_UNRECOGNIZEDINVOKEID = CM_SS_RETURNERRORPROBLEM_START,
+ CM_SS_RETURNERRORPROBLEM_RE_RETURNERRORUNEXPECTED = 1 + CM_SS_RETURNERRORPROBLEM_START,
+ CM_SS_RETURNERRORPROBLEM_RE_UNRECOGNIZEDERROR = 2 + CM_SS_RETURNERRORPROBLEM_START,
+ CM_SS_RETURNERRORPROBLEM_RE_UNEXPECTEDERROR = 3 + CM_SS_RETURNERRORPROBLEM_START,
+ CM_SS_RETURNERRORPROBLEM_RE_MISTYPEDPARAMETER = 4 + CM_SS_RETURNERRORPROBLEM_START,
+
+// LPP proprietary cause, refer to lcs_emm_status_enum
+ CM_SS_LCS_EMM_STATUS_START = 1171,
+ CM_SS_LCS_EMM_STATUS_SUCCESS = CM_SS_LCS_EMM_STATUS_START,
+ CM_SS_LCS_EMM_STATUS_ERR_CONN_FAIL = 1 + CM_SS_LCS_EMM_STATUS_START,
+ CM_SS_LCS_EMM_STATUS_ERR_NW_NO_LCS = 2 + CM_SS_LCS_EMM_STATUS_START,
+ CM_SS_LCS_EMM_STATUS_ERR_CS_LCS_ONLY = 3 + CM_SS_LCS_EMM_STATUS_START,
+
+//other SS proprietary cause
+ CM_SS_OTHER_CAUSE_START = 1181,
+ CM_SS_CTRL_BY_SIM_FAIL_NOT_INFORM_USER = CM_SS_OTHER_CAUSE_START,
+ CM_SS_SAT_USSD_END_NOT_INFORM_USER = 1 + CM_SS_OTHER_CAUSE_START,
+
+
+/* ============================== ~SS cause ============================== */
+
+/* ============================== MM cause ============================== */
+// 3GPP 24.008 clause 10.5.3.6(Annex G) MM reject cause values
+// 3GPP 24.008 clause 10.5.5.14(Annex G) GMM cause values
+// 2048 -> MM cause values
+ CM_MM_CAUSE_START = 2048,
+ CM_MM_CAUSE_NONE = 0x00 + CM_MM_CAUSE_START,
+ CM_MM_IMSI_UNKNOWN_IN_HLR = 0x02 + CM_MM_CAUSE_START,
+ CM_MM_ILLEGAL_MS = 0x03 + CM_MM_CAUSE_START,
+ CM_MM_IMSI_UNKNOWN_IN_VLR = 0x04 + CM_MM_CAUSE_START,
+ CM_MM_IMEI_NOT_ACCEPTED = 0x05 + CM_MM_CAUSE_START,
+ CM_MM_ILLEGAL_ME = 0x06 + CM_MM_CAUSE_START,
+ CM_MM_GPRS_NOT_ALLOWED = 0x07 + CM_MM_CAUSE_START,
+ CM_MM_GPRS_NON_GPRS_NOT_ALLOWED = 0x08 + CM_MM_CAUSE_START,
+ CM_MM_MS_ID_NOT_DERIVED_BY_NW = 0x09 + CM_MM_CAUSE_START,
+ CM_MM_IMPLICIT_DETACH = 0x0a + CM_MM_CAUSE_START,
+ CM_MM_PLMN_NOT_ALLOWED = 0x0b + CM_MM_CAUSE_START,
+ CM_MM_LOCATION_AREA_NOT_ALLOWED = 0x0c + CM_MM_CAUSE_START,
+ CM_MM_ROAMING_AREA_NOT_ALLOWED = 0x0d + CM_MM_CAUSE_START,
+ CM_MM_GPRS_NOT_ALLOWED_IN_PLMN = 0x0e + CM_MM_CAUSE_START,
+ CM_MM_NO_SUITABLE_CELLS_IN_LA = 0x0f + CM_MM_CAUSE_START,
+ CM_MM_MSC_TEMP_NOT_REACHABLE = 0x10 + CM_MM_CAUSE_START,
+ CM_MM_NETWORK_FAILURE = 0x11 + CM_MM_CAUSE_START,
+ CM_MM_MAC_FAILURE = 0x14 + CM_MM_CAUSE_START,
+ CM_MM_SYNC_FAILURE = 0x15 + CM_MM_CAUSE_START,
+ CM_MM_CONGESTION = 0x16 + CM_MM_CAUSE_START,
+ CM_MM_NOT_AUTHORIZED_FOR_THIS_CSG = 0x19 + CM_MM_CAUSE_START,
+ CM_MM_SERV_OPTION_NOT_SUPPORTED = 0x20 + CM_MM_CAUSE_START,
+ CM_MM_REQ_SERV_OPTION_NOT_SUBSCRIBED = 0x21 + CM_MM_CAUSE_START,
+ CM_MM_SERV_OPTION_TEMP_OUT_OF_ORDER = 0x22 + CM_MM_CAUSE_START,
+ CM_MM_CALL_CANNOT_BE_IDENTIFIED = 0x26 + CM_MM_CAUSE_START,
+ CM_MM_NO_PDP_CONTEXT_ACTIVATED = 0x28 + CM_MM_CAUSE_START,
+ CM_MM_RETRY_UPON_ENTRY_INTO_NEWCELL_MIN = 0x30 + CM_MM_CAUSE_START, /* 30..3f */
+ CM_MM_RETRY_UPON_ENTRY_INTO_NEWCELL_MAX = 0x3f + CM_MM_CAUSE_START,
+ CM_MM_SEMANTICALLY_INCORRECT_MSG = 0x5f + CM_MM_CAUSE_START,
+ CM_MM_INVALID_MM_MAND_INFO = 0x60 + CM_MM_CAUSE_START,
+ CM_MM_MSG_TYPE_NON_EXISTENT = 0x61 + CM_MM_CAUSE_START,
+ CM_MM_MSG_TYPE_NOT_IMPLEMENTED = 0x61 + CM_MM_CAUSE_START,
+ CM_MM_MSG_TYPE_INCOMPAT_WITH_PROTO_STATE = 0x62 + CM_MM_CAUSE_START,
+ CM_MM_IE_NOT_IMPLEMENTED = 0x63 + CM_MM_CAUSE_START,
+ CM_MM_CONDITIONAL_MM_IE_ERROR = 0x64 + CM_MM_CAUSE_START,
+ CM_MM_MSG_NOT_COMPAT_WITH_PROTO_STATE = 0x65 + CM_MM_CAUSE_START, /* 65..6f */
+ CM_MM_PROTO_ERROR_UNSPECIFIED = 0x6f + CM_MM_CAUSE_START,
+
+ /* RR connection establishment failure */
+ CM_MM_ACCESS_BARRED ,
+ CM_MM_ASSIGNMENT_REJECT ,
+ CM_MM_RANDOM_ACCES_FAILURE ,
+ CM_MM_RR_NO_SERVICE ,
+ CM_RR_PLMN_SRCH_REJ_EMERGENCY,
+ CM_MM_RR_CONN_RELEASE,
+
+ /* other cause */
+ CM_MM_AUTH_FAILURE,
+ CM_MM_IMSI_DETACH,
+ CM_MM_ABORT_BY_NW ,
+ CM_MM_CONN_TIMEOUT,
+ /* MM internal casuse */
+ CM_MM_CM_ENQUEUE_FAIL,
+ CM_MM_NOT_UPDATED ,
+ CM_MM_STATE_NOT_ALLOWED_CM,
+ CM_MM_EMERGENCY_NOT_ALLOWED,
+ CM_MM_NO_SERVICE,
+ CM_MM_ACCESS_CLASS_BARRED,
+ CM_MM_PS_SERVICE_ERROR, /* mtk02475: mapping gmmcm_result_enum to ps_cause_enum in SMS*/
+ CM_MM_MT_CALL_INCOMING,
+/* 24.008 CR# 1791 Start */
+ CM_MM_CONGESTION_CONTROL,
+/* 24.008 CR# 1791 End*/
+#if defined(__GEMINI__)
+ CM_RR_SUSPEND_FOR_CS_SIG, /* may be short time */
+ CM_RR_SUSPEND_FOR_CS_CALL, /* may be long time */
+ CM_RR_SUSPEND_FOR_PS_SIG, /* may be short time */
+ CM_RR_SUSPEND_FOR_PS_DATA, /* may be short time or long time */
+ CM_RR_SUSPEND_UNSPECIFIED, /* race condtion, RR cannot obtain semaphore, but not yet receive suspend cause from another RR */
+ CM_RR_VIRTUAL_CONNECTED_MODE,
+ CM_RR_MSPM_SESSION_NOT_ALLOWED,
+ #endif
+ CM_MM_NO_RETRY,
+ CM_MM_EMM_TIMER_T3442_RUNNING,
+ CM_MM_EMM_SS_EPS_ONLY_CAUSE_18,
+#ifdef __TC01__
+ CM_MM_RLF_BEFORE_ECC_CONNECT, /* Cause for sending the CEER cause before ecc connected during RLF for TMO US */
+#endif /* __TC01__ */
+ CM_MM_RETRY_NEEDED, /* CM will retry on timer expiry(8.5) or CS registered */
+ CM_MM_WAIT_FOR_NETWORK_RELEASE,
+ CM_MM_CAUSE_END = 2048 + 256,
+/* ============================== ~MM cause ============================== */
+
+/* ============================== SIM cause ============================== */
+ SIM_CAUSE_START = 2560,
+ SIM_CAUSE_CMD_SUCCESS = SIM_CAUSE_START,
+ SIM_CAUSE_CMD_FAIL = 1 + SIM_CAUSE_START,
+ SIM_CAUSE_FATAL_ERROR = 2 + SIM_CAUSE_START,
+ SIM_CAUSE_NO_INSERTED = 3 + SIM_CAUSE_START,
+ SIM_CAUSE_CHV_NOT_INIT = 4 + SIM_CAUSE_START,
+ SIM_CAUSE_CHV_VERIFY_ERROR = 5 + SIM_CAUSE_START, /* SIM_CHV_RETRY_ALLOW */
+ SIM_CAUSE_CHV_BLOCK = 6 + SIM_CAUSE_START, /* SIM_CHV_BLOCK */
+ SIM_CAUSE_ACCESS_NOT_ALLOW = 7 + SIM_CAUSE_START, /* */
+ SIM_CAUSE_SAT_CMD_BUSY = 8 + SIM_CAUSE_START, /* */
+ SIM_CAUSE_DL_ERROR = 9 + SIM_CAUSE_START, /* */
+ SIM_CAUSE_MEMORY_PROBLEM = 10 + SIM_CAUSE_START, /* */
+ SIM_CAUSE_TECHNICAL_PROBLEM = 11 + SIM_CAUSE_START, /* */
+ SIM_CAUSE_PUK_UNLOCK = 12 + SIM_CAUSE_START, /* add new enum value to
+ distinguish whether normal poweron or PUK-unlock-poweron */
+ SIM_CAUSE_END,
+/* ============================== ~SIM cause ============================== */
+
+/* ============================== PHB cause ============================== */
+ PHB_CAUSE_FDN_BLOCKED = 2600,
+ PHB_L4C_ERROR = 2601, /*called number is not approved by PHB*/
+ PHB_CAUSE_SMS_DESTINATION_FDN_BLOCKED = 2602, // for TC10 IPC_ADAPTER
+ PHB_CAUSE_SMS_SCA_FDN_BLOCKED = 2603, // for TC10 IPC_ADAPTER
+/* ============================== ~PHB cause ============================== */
+
+ REPORT_TO_UPPER_LAYER_CAUSE_START,
+
+/* ============================== SM cause ============================== */
+// 3GPP 24.008 clause 10.5.6.6(Annex I) SM/LLC/SNDCP/PDP/GPRS cause values
+// 3072 -> SM cause values
+
+ SM_CAUSE_START = 0x0C00,
+ //ESM_CAUSE_START = SM_CAUSE_START,
+ SM_CAUSE_EMPTY = 0x01 + SM_CAUSE_START, // there is no such cause in SM spec, just invent a default empty value for coding usage
+ OPERATOR_DETERMINED_BARRING = 0x08 + SM_CAUSE_START, //__REL4__
+ LLC_SND_FAILURE = 0X19 + SM_CAUSE_START,
+ INSUFF_RESOURCE = 0X1A + SM_CAUSE_START,
+ UNKNOWN_APN = 0X1B + SM_CAUSE_START,
+ UNKNOWN_PDP_ADDR_OR_TYPE = 0X1C + SM_CAUSE_START,
+ AUTHENTICATION_FAILURE = 0X1D + SM_CAUSE_START,
+ ACTIVATION_REJ_GGSN = 0X1E + SM_CAUSE_START,
+ ACTIVATION_REJ_UNSPECIFIED = 0X1F + SM_CAUSE_START,
+ UNSUPPORTED_SERVICE_OPTION = 0X20 + SM_CAUSE_START,
+ UNSUBSCRIBED_SERVICE_OPTION = 0X21 + SM_CAUSE_START,
+ SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER = 0X22 + SM_CAUSE_START,
+ PTI_ALREADY_USED = 0X23 + SM_CAUSE_START, // ESM cause
+ REGULAR_DEACTIVATION = 0X24 + SM_CAUSE_START,
+ QOS_NOT_ACCEPTED = 0X25 + SM_CAUSE_START,
+ NETWORK_FAIL = 0X26 + SM_CAUSE_START,
+ REACTIVATION_REQD = 0X27 + SM_CAUSE_START,
+ UNSUPPORTED_NW_CONTEXT_ACTIVATION = 0X28 + SM_CAUSE_START, /* Came and went from 4.08 + SM_CAUSE_START,should this be removed? */
+ SEMANTIC_ERROR_IN_TFT_OP = 0X29 + SM_CAUSE_START,
+ SYNTACTICAL_ERROR_IN_TFT_OP = 0X2A + SM_CAUSE_START,
+ UNKNOWN_PDP_CONTEXT = 0X2B + SM_CAUSE_START,
+ SEMANTIC_ERROR_IN_PACKET_FILTER = 0X2C + SM_CAUSE_START,
+ SYNTAX_ERROR_IN_PACKET_FILTER = 0X2D + SM_CAUSE_START,
+ PDP_CONTEXT_WO_TFT_ALREADY_ACT = 0X2E + SM_CAUSE_START,
+ PTI_MISMATCH = 0X2F + SM_CAUSE_START, // ESM cause
+ ACTIVATION_REJ_BCM_VIOLATION = 0X30 + SM_CAUSE_START, // __REL7__
+ LAST_PDN_DISC_NOT_ALLOWED = 0X31 + SM_CAUSE_START, // ESM cause
+ PDP_TYPE_IPV4_ONLY_ALLOWED = 0X32 + SM_CAUSE_START, // __REL8__
+ PDP_TYPE_IPV6_ONLY_ALLOWED = 0X33 + SM_CAUSE_START, // __REL8__
+ SINGLE_ADDR_BEARERS_ONLY_ALLOWED = 0X34 + SM_CAUSE_START, // __REL8__
+ ESM_INFORMATION_NOT_RECEIVED = 0X35 + SM_CAUSE_START, // ESM cause
+ PDN_CONNENCTION_NOT_EXIST = 0X36 + SM_CAUSE_START, // ESM cause
+ MULTIPLE_PDN_APN_NOT_ALLOWED = 0X37 + SM_CAUSE_START, // ESM cause
+ COLLISION_WITH_NW_INITIATED_REQ = 0X38 + SM_CAUSE_START, // __REL8__
+ UNSUPPORTED_QCI_VALUE = 0X3B + SM_CAUSE_START, // ESM cause
+ MAXIMUM_NUM_OF_PDP_CONTEXTS_REACHED = 0X41 + SM_CAUSE_START, /* Cause65 */
+ REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN_COMBINATION = 0X42 + SM_CAUSE_START, /* Cause66 */
+ /* The following cause values are only for sm internal usage */
+ INVALID_TI = 0X51 + SM_CAUSE_START,
+ SM_SEMANTICALLY_INCORRECT_MSG = 0X5F + SM_CAUSE_START,
+ INVALID_MAND_INFO = 0X60 + SM_CAUSE_START,
+ SM_MSG_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 0X61 + SM_CAUSE_START,
+ SM_MSG_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 0X62 + SM_CAUSE_START,
+ IE_NON_EXISTENCE_OR_NOT_IMPLEMENTED = 0X63 + SM_CAUSE_START,
+ CONDITIONAL_IE_ERROR = 0X64 + SM_CAUSE_START,
+ SM_MSG_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 0X65 + SM_CAUSE_START,
+ SM_PROTOCOL_ERROR_UNSPECIFIED = 0X6F + SM_CAUSE_START,
+ APN_RESTRICTION_VALUE_INCOMPATIBLE_WITH_ACTIVE_PDP_CTX = 0X70 + SM_CAUSE_START, /* 24.008 R6 CR 841 */
+ SM_CAUSE_END,
+/* ============================== ~SM cause ============================== */
+
+ /* ============================== ESM cause ============================== */
+ // 3GPP 24.301 ESM SPEC caue values
+
+ ESM_CAUSE_START = 0x0D00,
+ ESM_NO_CAUSE = 1 + ESM_CAUSE_START, /* Cause not assigned */
+ ESM_OPERATOR_DETERMINED_BARRING = 8 + ESM_CAUSE_START, /* Operator determined barring */
+ ESM_INSUFFICIENT_RESOURCES = 26 + ESM_CAUSE_START, /* Insufficient resources */
+ ESM_UNKNOWN_OR_MISSING_APN = 27 + ESM_CAUSE_START, /* Unknown or missing APN */
+ ESM_UNKNOWN_PDN_TYPE = 28 + ESM_CAUSE_START, /* Unknown PDN type */
+ ESM_USER_AUTH_FAILED = 29 + ESM_CAUSE_START, /* User authentication failed */
+ ESM_REQUEST_REJECTED_BY_SGW_OR_PDNGW = 30 + ESM_CAUSE_START, /* Request rejected by Serving GW or PDN GW */
+ ESM_REQUEST_REJECTED_UNSPECIFIED = 31 + ESM_CAUSE_START, /* Request rejected unspecified */
+ ESM_SERVICE_OPT_NOT_SUPPORTED = 32 + ESM_CAUSE_START, /* Service option not supported */
+ ESM_REQ_SERVICE_NOT_SUBSCRIBED = 33 + ESM_CAUSE_START, /* Requested service option not subscribed */
+ ESM_SERVICE_TEMP_OUT_OF_ORDER = 34 + ESM_CAUSE_START, /* Service option temporarily out of order */
+ ESM_PTI_ALREADY_USED = 35 + ESM_CAUSE_START, /* PTI already in use */
+ ESM_REGULAR_DEACTIVATION = 36 + ESM_CAUSE_START, /* Regular deactivation */
+ ESM_EPS_QOS_NOT_ACCEPTED = 37 + ESM_CAUSE_START, /* EPS QoS not accepted */
+ ESM_NETWORK_FAILURE = 38 + ESM_CAUSE_START, /* Network failure */
+ ESM_REACTIVATION_REQUESTED = 39 + ESM_CAUSE_START, /* Re-activation requitred */
+ ESM_SEMANTIC_ERROR_IN_TFT = 41 + ESM_CAUSE_START, /* Semantic error in the TFT operation */
+ ESM_SYNTACTIC_ERROR_IN_TFT = 42 + ESM_CAUSE_START, /* Syntactical error in the TFT operation */
+ ESM_INVALID_EPS_BEARER_IDENTITY = 43 + ESM_CAUSE_START, /* Invalid EPS bearer identity */
+ ESM_SEMANTIC_ERROR_IN_PACKET_FILTERS = 44 + ESM_CAUSE_START, /* Semantic errors in packet filter(s) */
+ ESM_SYNTACTIC_ERROR_IN_PACKET_FILTERS = 45 + ESM_CAUSE_START, /* Syntactical errors in packet filter(s) */
+ ESM_EPSB_CTXT_WITHOUT_TFT_ACTIVATED = 46 + ESM_CAUSE_START, /* EPS bearer context without TFT already activated */
+ ESM_PTI_MISMATCH = 47 + ESM_CAUSE_START, /* PTI mismatch */
+ ESM_LAST_PDN_DISC_NOT_ALLOWED = 49 + ESM_CAUSE_START, /* Last PDN disconnection not allowed */
+ ESM_PDN_TYPE_IPV4_ONLY_ALLOWED = 50 + ESM_CAUSE_START, /* PDN type IPv4 only allowed */
+ ESM_PDN_TYPE_IPV6_ONLY_ALLOWED = 51 + ESM_CAUSE_START, /* PDN type IPv6 only allowed */
+ ESM_SINGLE_ADDRESS_ONLY_ALLOWED = 52 + ESM_CAUSE_START, /* Single address bearers only allowed */
+ ESM_ESM_INFORMATION_NOT_RECEIVED = 53 + ESM_CAUSE_START, /* ESM information not received */
+ ESM_PDN_CONNENCTION_NOT_EXIST = 54 + ESM_CAUSE_START, /* PDN connection does not exist */
+ ESM_MULTIPLE_PDN_APN_NOT_ALLOWED = 55 + ESM_CAUSE_START, /* Multiple PDN connections for a given APN not allowed */
+ ESM_COLLISION_WITH_NW_INIT_REQUEST = 56 + ESM_CAUSE_START, /* Collision with network initiated request */
+ ESM_UNSUPPORTED_QCI_VALUE = 59 + ESM_CAUSE_START, /* Unsupported QCI value */
+ ESM_MAXIMUM_NUM_OF_EPS_BEARERS_REACHED = 65 + ESM_CAUSE_START, /* Maximum number of EPS bearers reached */
+ ESM_REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN_COMBINATION = 66 + ESM_CAUSE_START, /* Requested APN not supported in current RAT and PLMN combination */
+ ESM_INVALID_PTI_VALUE = 81 + ESM_CAUSE_START, /* Invalid PTI value */
+ ESM_SEMANTIC_INCORRECT_MSG = 95 + ESM_CAUSE_START, /* Semantically incorrect message */
+ ESM_INVALID_MANDATORY_IE = 96 + ESM_CAUSE_START, /* Invalid mandatory information */
+ ESM_MSG_TYPE_NON_EXISTENT = 97 + ESM_CAUSE_START, /* Message type non-existent or not implemented */
+ ESM_MSG_TYPE_NOT_COMPATIBLE_STATE = 98 + ESM_CAUSE_START, /* Message type not compatible with protocol state */
+ ESM_IE_NON_EXISTENT_NOT_IMPLEMENTED = 99 + ESM_CAUSE_START, /* Information element non-existent or not implemented */
+ ESM_CONDITIONAL_IE_ERROR = 100 + ESM_CAUSE_START, /* Conditional IE error */
+ ESM_MSG_NOT_COMPATIBLE_STATE = 101 + ESM_CAUSE_START, /* Message not compatible with the protocol state */
+ ESM_PROTOCOL_ERROR_UNSPECIFIED = 111 + ESM_CAUSE_START, /* Protocol error unspecified */
+ ESM_APN_RESTRICT_VALUE_INCOMPATIBLE = 112 + ESM_CAUSE_START, /* APN restriction value incompatible with active EPS bearer context */
+
+ ESM_CAUSE_END,
+ /* ============================== ~SM cause ============================== */
+
+
+ /* ============================== SM Proprietary cause ============================== */
+ //
+ // SM proprietary cause
+ //
+ SM_PROPRIETARY_CAUSE_START = 0x0E00,
+
+ /* In restrict region 0x0E00~0x0E3F, the value of this region cannot be change, AP uses this cause value to perform special handling */
+ SM_PROPRIETARY_RESTRICT_REGION_BEGIN = 0x0E00,
+
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_REACH_RETRY_COUNTER = 0x0E0F, /* 0x0E0F = 3599 */
+
+ SM_PROPRIETARY_RESTRICT_REGION_END = 0x0E3F,
+
+
+ /* In free region 0x0E40~0x0EFF, there's no restriction, we can change the order of causes freely */
+ /* If AP needs to use one cause to do error handling, needs to move to SM_PROPRIETARY_RESTRICT_REGION and assign a value */
+ SM_PROPRIETARY_FREE_REGION_BEGIN = 0x0E40,
+
+ SM_PROPRIETARY_CAUSE_IRAT_TO_LTE_LOCAL_DEACTIVATED,
+ SM_PROPRIETARY_CAUSE_IRAT_TO_LTE_BUT_BEARER_MAP_INVALID, // bearer doesn't exit after mapping
+ SM_PROPRIETARY_CAUSE_IRAT_TO_LTE_BUT_LTE_BEARER_MAP_FAILED, // bearer mapping failure and local released
+ SM_PROPRIETARY_CAUSE_IRAT_TO_LTE_BUT_BEARER_MAP_FAILED_DUE_TO_DETACH, // bearer local released
+ SM_PROPRIETARY_CAUSE_IRAT_RETRY_NEEDED_AFTER_IRAT,
+ SM_PROPRIETARY_CAUSE_IRAT_TO_5GNR_LOCAL_DEACTIVATED,
+
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_CURRENT_STATE_NOT_COMPATIBLE,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_QOS_NOT_REASONALBE,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_QOS_TRAFFIC_CLASS_NOT_SUPPORTED,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_NO_AVAILABLE_TI,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_PROCESS_QUEUE_FULL,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_GPRS_SUSPENDED,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_NSAPI_INVALID,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_GPRS_DETACH,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_GPRS_ATTACH_FAILURE,
+ SM_LOCAL_REJECT_ACT_REQ_DUE_TO_GEMINI_SM_CONTEXT_MEMORY_OCCUPIED,
+
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_CURRENT_STATE_NOT_COMPATIBLE,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_NO_AVAILABLE_TI,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_LINKED_NSAPI_INVALID,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_PROCESS_QUEUE_FULL,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_NOT_SUPPORT_SECONDARY_PDP,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_GPRS_SUSPENDED,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_GPRS_DETACH,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_COMPOSE_TFT_ERROR,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_NO_NW_INIT_SEC_ACT_REQ_PROCEDURE,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_TOKEN_ID_NOT_ACCEPTED,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_LOCAL_PARA_NOT_SYNC_WITH_NW_SM_AIR_MSG,
+ SM_LOCAL_REJECT_SEC_ACT_REQ_DUE_TO_TFT_ENCODE_ERROR,
+
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_PROCESS_QUEUE_FULL,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_GPRS_SUSPENDED,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_GPRS_DETACH,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_CURRENT_STATE_NOT_COMPATIBLE,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_GEMINI_SM_CONTEXT_MEMORY_OCCUPIED,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_FIRST_PDP_NOT_SUPPORT_QOS_MODIFY_FROM_UE,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_MODIFY_COLLISION_WITH_NW,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_REACH_RETRY_COUNTER,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_TFT_ENCODE_ERROR,
+ SM_LOCAL_REJECT_MOD_REQ_DUE_TO_NOTHING_NEED_TO_MODIFY,
+
+ SM_LOCAL_REJECT_DEACT_REQ_DUE_TO_GEMINI_SM_CONTEXT_MEMORY_OCCUPIED,
+ SM_LOCAL_REJECT_DEACT_REQ_DUE_TO_GPRS_DETACH,
+
+ SM_LOCAL_DEACTIVATION_DUE_TO_MT_SEC_PDP_COLLISION,
+ SM_LOCAL_DEACTIVATION_DUE_TO_REACH_RETRY_COUNTER,
+ SM_LOCAL_DEACTIVATION_DUE_TO_TEAR_DOWN,
+ SM_LOCAL_DEACTIVATION_DUE_TO_RCV_STATUS_MSG_IN_INACT_PEER_PENDING_STATE,
+ SM_LOCAL_DEACTIVATION_DUE_TO_GPRS_SUSPENDED,
+ SM_LOCAL_DEACTIVATION_DUE_TO_MT_PDP_COLLISION,
+ SM_LOCAL_DEACTIVATION_DUE_TO_SYNC_BY_NSAPI_STATUS_IND,
+
+ SM_LOCAL_REJECT_DUE_TO_CURRENT_RAT_IS_UNKNOWN,
+ SM_LOCAL_REJECT_DUE_TO_PS_SWITCH,
+ SM_LOCAL_REJECT_DUE_TO_LLC_SND_FAILURE,
+ SM_LOCAL_REJECT_DUE_TO_INSUFF_RESOURCE,
+ SM_LOCAL_REJECT_DUE_TO_QOS_NOT_ACCEPTED,
+ SM_LOCAL_REJECT_DUE_TO_RAB_DEACTIVATE_IND,
+ SM_LOCAL_REJECT_DUE_TO_PS_SIG_CONN_EST_FAILURE,
+
+ SM_PROPRIETARY_CAUSE_SILENT_DEACTIVATION_IN_ESM_TRANSFERRED_EPSB_CONTEXT,
+ SM_PROPRIETARY_CAUSE_GPRS_DETACH,
+ SM_PROPRIETARY_DEACT_IN_WRONG_STATE,
+
+ SM_PROPRIETARY_CAUSE_NULL,
+ SM_PROPRIETARY_CAUSE_GEMINI_SUSPEND_DUE_TO_CALL_ONGOING,
+ SM_PROPRIETARY_FREE_REGION_END = 0x0EFF,
+
+ SM_PROPRIETARY_CAUSE_END = 0x0EFF,
+
+ /* ============================== ~SM Proprietary cause ============================== */
+
+/* ============================== ABM cause ============================== */
+//
+// ABM error causes, Kevin Chien
+//
+// ABM_CAUSE_START = 0x0E00,
+// ABM_E_SUCCESS,
+// ABM_E_INVALID_NW_ACC_ID,
+// ABM_E_GPRS_REACTIVATE,
+// ABM_E_GPRS_PROTOCOL_REJECTION,
+// ABM_E_CSD_REACTIVATE,
+// ABM_E_CSD_PPP_NEGOTIATED_FAILED,
+// ABM_E_CSD_ACT_FAILED,
+// ABM_E_CSD_CALL_SETUP_FAILED,
+// ABM_E_WIFI_REACTIVATE,
+// ABM_E_WIFI_NOTREADY,
+// ABM_E_REJECTED,
+// ABM_E_SLOT_LIMITED,
+// ABM_E_ABORT,
+// ABM_E_NON_AUTO_DEACT,
+// ABM_E_BEARER_IS_HOLD, /* 3287 */
+/* ============================== ~ABM cause ============================== */
+
+/* ============================== TCM cause ============================== */
+ TCM_CAUSE_START = 0x0F00,
+
+ /* CANNOT CHANGE THE CAUSE VALUE, AP WOULD USE IT TO DO ERROR HANDLING */
+ #if __GROUP_TCM_L4C_CAUSE_CANNOT_BE_CHANGED__ || 1
+ TCM_L4C_CHECKED_ACT_WITH_CID_UNEXPECTED = 0x0F01,
+ TCM_L4C_CHECKED_ACT_WITH_CID_NOT_DEFINED = 0x0F02,
+ TCM_L4C_CHECKED_ACT_WITH_FSM_UNEXPECTED = 0x0F03,
+ TCM_L4C_CHECKED_ACT_WITH_CID_SECONDARY_WITHOUT_TFT = 0x0F04,
+ TCM_L4C_CHECKED_ACT_WITH_PRIMARY_IS_NOT_ACTIVATED = 0x0F05,
+
+ TCM_L4C_CHECKED_DEACT_WITH_CID_UNEXPECTED = 0x0F06,
+ TCM_L4C_CHECKED_DEACT_WITH_FSM_UNEXPECTED = 0x0F07,
+ TCM_L4C_CHECKED_DEACT_WITH_ACTIVATED_FROM_UNEXPECTED = 0x0F08,
+
+ TCM_L4C_CHECKED_MODIFY_WITH_CID_UNEXPECTED = 0x0F09,
+ TCM_L4C_CHECKED_MODIFY_WITH_FSM_UNEXPECTED = 0x0F0A,
+ TCM_L4C_CHECKED_MODIFY_WITH_NO_QOS_OR_TFT_SET = 0x0F0B,
+
+ TCM_L4C_CHECKED_CGDATA_WITH_CID_UNEXPECTED = 0x0F0C,
+ TCM_L4C_CHECKED_CGDATA_WITH_FSM_UNEXPECTED = 0x0F0D,
+
+ TCM_L4C_DCONT_CID_UNEXPECTED = 0x0F0E,
+ TCM_L4C_DCONT_NOT_ALLOW_FOR_PPP_TYPE = 0x0F0F,
+ TCM_L4C_DCONT_INVALID_PARAMETER = 0x0F10,
+ TCM_L4C_DCONT_INVALID_PDP_TYPE = 0x0F11,
+ TCM_L4C_DCONT_CID_ALREADY_IN_USE = 0x0F12,
+ TCM_L4C_DCONT_INVALID_APN = 0x0F13,
+
+ TCM_L4C_DSCONT_CID_UNEXPECTED = 0x0F14,
+ TCM_L4C_DSCONT_INVALID_PARAMETER = 0x0F15,
+ TCM_L4C_DSCONT_CID_PRIMARY_IS_NOT_IN_USE = 0x0F16,
+ TCM_L4C_DSCONT_CID_PRIMARY_IS_NOT_ACTIVATED = 0x0F17,
+ TCM_L4C_DSCONT_NOT_ALLOW_FOR_PPP_TYPE = 0x0F18,
+ TCM_L4C_DSCONT_CID_ALREADY_IN_USE = 0x0F19,
+
+ TCM_L4C_PRCO_CID_ALREADY_IN_USE = 0x0F1A,
+ TCM_L4C_PRCO_CID_UNEXPECTED = 0x0F1B,
+
+ TCM_L4C_ACT_NOT_SUPPORT_EMERGENCY_BEARER_ACTIVATION = 0x0F1C,
+ TCM_L4C_ACT_ALLOC_NSAPI_FAIL = 0x0F1D,
+
+ TCM_L4C_DEACT_IND_BY_TIMER_EXPIRY = 0x0F1E,
+ TCM_L4C_DEACT_IND_BY_NO_USER_RESPONSE_TILL_RAT_CHANGE_COMPLETE_IND = 0x0F1F,
+
+ TCM_L4C_MOD_PRESERVED_PDP_CONTEXT = 0x0F20,
+ TCM_L4C_MOD_CHECK_TFT_FAIL = 0x0F21,
+ TCM_L4C_MOD_REJ_DUE_TO_DEACT_IND = 0x0F22,
+
+ TCM_L4C_SET_MULTI_PDN_SUCCESS = 0x0F23,
+ TCM_L4C_SET_MULTI_PDN_CID_UNEXPECTED = 0x0F24,
+ TCM_L4C_SET_MULTI_PDN_PARA_UNEXPECTED = 0x0F25,
+ TCM_L4C_SET_MULTI_PDN_INVALID_PDP_TYPE_AND_LEN = 0x0F26,
+ TCM_L4C_SET_MULTI_PDN_INVALID_APN = 0x0F27,
+
+ TCM_PPP_CHECKED_ACT_WITH_CID_UNEXPECTED = 0x0F28,
+ TCM_PPP_CHECKED_ACT_WITH_PDP_TYPE_LEN_UNEXPECTED = 0x0F29,
+ TCM_PPP_CHECKED_ACT_WITH_INVALID_CONFIG_PROTOCOL = 0x0F2A,
+ TCM_PPP_CHECKED_ACT_WITH_CID_NOT_DEFINED = 0x0F2B,
+ TCM_PPP_CHECKED_ACT_WITH_FSM_UNEXPECTED = 0x0F2C,
+
+ TCM_PPP_CHECKED_DEACT_WITH_CID_UNEXPECTED = 0x0F2D,
+ TCM_PPP_CHECKED_DEACT_WITH_FSM_UNEXPECTED = 0x0F2E,
+ TCM_PPP_CHECKED_DEACT_WITH_ACTIVATED_FROM_UNEXPECTED = 0x0F2F,
+
+ TCM_PPP_CHECKED_CGDATA_WITH_CID_UNEXPECTED = 0x0F30,
+ TCM_PPP_CHECKED_CGDATA_WITH_FSM_UNEXPECTED = 0x0F31,
+
+ TCM_DISPATCH_PDP_ACT_CHECK_TFT_FAIL = 0x0F32,
+
+ TCM_UPCM_BIND_CNF_BEARER_HAS_BEEN_DEACTIVATED_ALREADY = 0x0F33,
+ TCM_UPCM_UNBIND_CNF_BEARER_HAS_BEEN_DEACTIVATED_ALREADY = 0x0F34,
+
+ TCM_ACL_APN_NOT_EXIST_IN_ACL = 0x0F35,
+ TCM_ACL_ACTION_NOT_ALLOWED = 0x0F36,
+ TCM_ACL_SIM_FILE_FULL = 0x0F37,
+ TCM_ACL_ADD_ENTRY_FAILED = 0x0F38,
+ TCM_ACL_DEL_ENTRY_FAILED = 0x0F39,
+ TCM_ACL_SET_ENTRY_FAILED = 0x0F3A,
+ TCM_ACL_SIM_READ_FAILED = 0x0F3B,
+ TCM_ACL_SIM_WRITE_FAILED = 0x0F3C,
+
+ // ESM proprietary failure cause
+ TCM_ESM_CAUSE_START = 0x0F3D,
+ TCM_ESM_FAIL_CAUSE_EMPTY = 0x0F3E,
+ TCM_ESM_USER_CANCEL = 0x0F3F,
+ TCM_ESM_CID_ALREADY_CONNECT = 0x0F40,
+ TCM_ESM_PDN_NOT_ACTIVATED = 0x0F41,
+ TCM_ESM_BEARER_NOT_ACTIVATED = 0x0F42,
+ TCM_ESM_RMV_LAST_PDN_NOT_ALLOWED = 0x0F43,
+ TCM_ESM_LOCAL_RELEASE = 0x0F44,
+ TCM_ESM_DETACH = 0x0F45,
+ TCM_ESM_IE_ERROR = 0x0F46,
+ TCM_ESM_TIMER_TIMEOUT = 0x0F47,
+ TCM_ESM_TX_FAILURE = 0x0F48,
+ TCM_ESM_FAIL_CAUSE_RAT_CHANGE = 0x0F49,
+ TCM_ESM_FAIL_CAUSE_PS_SWITCH = 0x0F4A,
+ TCM_ESM_ACTION_NOT_ALLOWED = 0x0F4B,
+ TCM_ESM_FAIL_CAUSE_T3346_CONGESTION = 0x0F4C,
+ TCM_ESM_FAIL_CAUSE_THROTTLING_RUNNING = 0x0F4D,
+ TCM_ESM_FAIL_CAUSE_SERIOUS_ERROR_AT_LOW_LAYER = 0x0F4E,
+ TCM_ESM_FAIL_CAUSE_OTHERS = 0x0F4F,
+ TCM_ESM_CAUSE_END = 0x0F50,
+
+ /* Inter-RAT related */
+ RAT_TCM_RETRY_NEEDED_AFTER_IRAT_IF_IN_3GPP = 0x0F51,
+ RAT_TCM_LOCAL_REJECTED_DUE_TO_PS_SWITCH = 0x0F52,
+ AP_RETRY_NEEDED_AFTER_LTE_TO_C2K_IRAT = 0x0F53,
+
+ /* RAT_TCM related */
+ RAT_TCM_DEACT_SUCCESS_DUE_TO_CONTEXT_NEVER_ACTIVATED = 0x0F54,
+ RAT_TCM_MODIFY_FAIL_DUE_TO_CONTEXT_DEACTIVATED = 0x0F55,
+ RAT_TCM_MODIFY_FAIL_DUE_TO_CONTEXT_NOT_ACTIVATED = 0x0F56,
+ RAT_TCM_DEACTIVATED_DUE_TO_NAS_TFT_TRIGGERED_DEACTIVATION = 0x0F57,
+ RAT_TCM_23G_MT_PRIMARY_PDP_IS_ABORTED_DUE_TO_CHANGE_TO_4G = 0x0F58,
+ RAT_TCM_DEACTIVATE_SUCCESS_IMMEDIATELY_BECAUSE_ACTIVATION_IS_NOT_PROCESSED_BY_TCM_YET = 0x0F59,
+ RAT_TCM_EGACT_ACTIVATE_REJ_DUE_TO_ERROR_RAT = 0x0F5A,
+ RAT_TCM_EGACT_DEACTIVATE_REJ_DUE_TO_ERROR_RAT = 0x0F5B,
+ RAT_TCM_DEACTIVATED_DUE_TO_INACTIVITY_TIMER_TIMEOUT = 0x0F5C,
+
+ /* TCM internal error cause */
+ TCM_ETCM_CID_NOT_DEFINE_TFT_QOS = 0x0F5D,
+ TCM_ETCM_CID_IS_NOT_PRIMARY = 0x0F5E,
+ TCM_ETCM_TFT_VALIDATION_ERROR = 0x0F5F,
+ TCM_ETCM_PTI_IS_FULL = 0x0F60,
+
+ /* TCM Proprietary AT command related */
+ TCM_L4C_CHECKED_EGLD_WITH_CID_UNEXPECTED = 0x0F61,
+ TCM_L4C_CHECKED_EGLD_WITH_FSM_UNEXPECTED = 0x0F62,
+ TCM_L4C_CHECKED_EAPNSYNC_WRONG_APN_IDX = 0x0F63,
+ TCM_L4C_CHECKED_EAPNSYNC_APN_TOO_LONG = 0x0F64,
+ TCM_L4C_CHECKED_EAPNSYNC_TOO_MUCH_APN_SETTING = 0x0F65,
+
+ /* NRSPCA Phase 1/2 related */
+ TCM_L4C_MOD_PRIMARY_QOS_IS_NOT_ALLOWED = 0x0F66,
+ TCM_L4C_MOD_QOS_FOR_NO_MS_PF_IS_NOT_ALLOWED = 0x0F67,
+
+ /* CANNOT CHANGE THE CAUSE VALUE, AP WOULD USE IT TO DO ERROR HANDLING */
+ #endif // __GROUP_TCM_L4C_CAUSE_CANNOT_BE_CHANGED__
+
+ /* CAN ADD NEW TCM CAUSE HERE <---------------- */
+ /* RAT_TCM related */
+ RAT_TCM_ACT_FAIL_DUE_TO_IRAT_ONGOING = 0x0F6B,
+ RAT_TCM_MODIFY_FAIL_DUE_TO_IRAT_ONGOING = 0x0F6C,
+ RAT_TCM_DEACT_FAIL_DUE_TO_IRAT_ONGOING = 0x0F6D,
+ RAT_TCM_LOCAL_REJECTED_DUE_TO_FSM_UNEXPECTED = 0x0F6E,
+ RAT_TCM_LOCAL_REJECTED_DUE_TO_GUARANTEE_RSPONSE_TIME_TIMEOUT = 0x0F6F,
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x0F70*/
+ #if __GROUP_TCM_L4C_REGION_2_AND_ESM_CAUSE_START__ || 1
+ TCM_REGION_2_CAUSE_START = 0x0F70,
+
+ TCM_L4C_CHECKED_CID_INVALID = 0x0F71,
+ TCM_L4C_CHECKED_CID_ALREADY_IN_ACTION = 0x0F72,
+ TCM_L4C_CHECKED_ACT_WITH_UNEXPECTED_LTE_ATTACH_PDN_IN_23G = 0x0F73,
+
+ TCM_UGTCM_DEACT_DUE_TO_USER_FORCE_TO_LOCAL_RELEASE = 0x0F74,
+ TCM_L4C_ACT_NOT_SUPPORT_HANDOVER_OF_EMERGENCY_BEARER = 0x0F75,
+
+ TCM_UGTCM_DEACT_DUE_TO_AOSP_SHUTDOWN = 0x0F76,
+ TCM_UGTCM_DEACT_DUE_TO_AOSP_HANDOVER = 0x0F77,
+ //TCM_UGTCM_DEACT_DUE_TO_APN_CHANGED = 0x0F78, // merged cause conflicts with existed cause. move it to 0x0F7B.
+
+ TCM_ESM_FAIL_CAUSE_GEMINI_SUSPEND = 0x0F78, // gemini SUSPEND due to CS semaphore occupied by another protocal stack, wait for resume
+ TCM_ESM_FAIL_CAUSE_GEMINI_FAILURE = 0x0F79, // gemini failure due to HPS(or higher) semaphore occupied by another protocal stack
+ TCM_ESM_FAIL_CAUSE_GEMINI_SUSPEND_DUE_TO_CALL_ONGOING = 0x0F7A,
+
+ TCM_UGTCM_DEACT_DUE_TO_APN_CHANGED = 0x0F7B,
+ TCM_ESM_DETACH_REATTACH = 0x0F7C,
+ TCM_VGTCM_DEACT_DUE_TO_AOSP_SHUTDOWN = 0x0F7D,
+ TCM_ESM_FAIL_CAUSE_REQ_RES_APN_MISMATCH = 0x0F7E,
+ TCM_UGTCM_DEACT_DUE_TO_IMS_HANDOVER = 0x0F7F,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x0F8E*/
+ TCM_ESM_DEACT_DUE_TO_DRB_RELEASE = 0x0F8E, // put here due to specail cause for AP query.
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x0F8F*/
+ TCM_REGION_2_CAUSE_END = 0x0F8F,
+ #endif // __GROUP_TCM_L4C_REGION_2_AND_ESM_CAUSE_START__
+
+ #if __GROUP_TCM_L4C_REGION_3_CAUSE_START__ || 1
+ TCM_REGION_3_CAUSE_START = 0x0F90,
+ TCM_L4C_DCONT_PSI_UNEXPECTED = 0x0F91,
+ TCM_L4C_CHECKED_ACT_WITH_UNEXPECTED_LTE_ATTACH_PDN_IN_5G = 0x0F92,
+ TCM_L4C_CHECKED_ACT_WITH_CID_SECONDARY_NOT_SUPPORT_IN_5G = 0x0F93,
+
+ TCM_VGTCM_DEACT_DUE_TO_USER_FORCE_TO_LOCAL_RELEASE = 0x0F94,
+
+ TCM_L4C_EGPCO_CID_UNEXPECTED = 0x0F95,
+ TCM_L4C_EGPCO_PSI_UNEXPECTED = 0x0F96,
+
+ TCM_L4C_EGDCONT_CID_UNEXPECTED = 0x0F97,
+ TCM_L4C_EGDCONT_PSI_UNEXPECTED = 0x0F98,
+ TCM_L4C_EGDCONT_INVALID_PDP_TYPE = 0x0F99,
+
+ RAT_TCM_HANDOVER_REESTABLISHMENT_NEEDED = 0x0F9A,
+ RAT_TCM_HANDOVER_REESTABLISHMENT_FAIL_DUE_TO_NO_WITHOUT_N26_INFO = 0x0F9B,
+
+ TCM_VGTCM_DEACT_DUE_TO_INTERRAT = 0x0F9C,
+
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x0FAF*/
+ TCM_REGION_3_CAUSE_END = 0x0FAF,
+ #endif // __GROUP_TCM_L4C_REGION_3_CAUSE_START__
+
+ #if __GROUP_TCM_L4C_REGION_4_CAUSE_START__ || 1
+ TCM_REGION_4_CAUSE_START = 0x0FB0,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+ TCM_L4C_PSI_NOT_DEFINED = 0x0FB1,
+ TCM_L4C_VGTCM_PROCEDURE_ONGOING_ON_CORRESPONDING_CID = 0x0FB2,
+ TCM_L4C_CHANGE_PSI_FOR_ACTIVE_CID_NOT_ALLOWED = 0x0FB3,
+ TCM_L4C_CGAUTH_CID_UNEXPECTED = 0x0FB4,
+ TCM_L4C_CGAUTH_PSI_UNEXPECTED = 0x0FB5,
+ TCM_L4C_VGTCM_UNEXPECTED_FIC_TYPE = 0x0FB6,
+ TCM_L4C_PEER_TO_PEER_MODIFY_WITHOUT_P_CSCF = 0x0FB7,
+ TCM_L4C_PEER_TO_PEER_MODIFY_WITH_P_CSCF = 0x0FB8,
+ TCM_L4C_MODIFY_DUE_TO_INTERRAT = 0x0FB9,
+ TCM_L4C_CHECKED_ACT_WITH_PDP_TYPE_NOT_SET = 0x0FBA,
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x0FCF*/
+ TCM_REGION_4_CAUSE_END = 0x0FCF,
+ #endif // __GROUP_TCM_L4C_REGION_4_CAUSE_START__
+
+ #if __GROUP_TCM_L4C_REGION_5_CAUSE_START__ || 1
+ TCM_REGION_5_CAUSE_START = 0x0FD0,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+ TCM_ESM_REGION_2_CAUSE_START = TCM_REGION_5_CAUSE_START,
+ TCM_ESM_4G5_EPS_BEARER_MAPPED_FAILED = 0x0FD1,
+ TCM_ESM_ATTACH_FAILURE = 0x0FD2,//ATTACH FAILURE DUE TO T3410 EXPIRY (IN DOCOMO)
+ TCM_ESM_REGION_2_CAUSE_END = 0x0FE0,
+
+ /* PLEASE CREATE NEW REGION IF NEW CAUSE NUMBER >= 0x0FFF*/
+ TCM_REGION_5_CAUSE_END = 0x0FFF,
+ #endif // __GROUP_TCM_L4C_REGION_5_CAUSE_START__
+
+ TCM_CAUSE_END,
+/* ============================== ~TCM cause ============================== */
+
+/* ============================== L4C cause ============================== */
+ L4C_CAUSE_START = 0x1000,
+
+ L4C_TYPE_1_OLD_CAUSE_START = L4C_CAUSE_START,
+ L4C_CMD_CONFLICT = 0x1000,
+ L4C_CMD_CONFLICT_CHANNEL_BUSY = 0x1001,
+ L4C_LOCAL_DISCONNECT_CSD = 0x1002, //MAUI_01801045
+
+ L4C_OPTION_CONFLICT = 0x1003,
+ L4C_AT_CMD_INVALID_PARAMETER_OR_MISSING = 0x1004,
+ L4C_AT_CMD_PARAMETER_OUT_OF_RANGE = 0x1005,
+ L4C_AT_CMD_INVALID_PARAMETER = 0x1006,
+ L4C_AT_CMD_CID_UNEXPECTED = 0x1007,
+ L4C_CONTEXT_CONFLICT_PPP_DEACTIVATING = 0x1008,
+ L4C_CONTEXT_CONFLICT_ACT_ALREADY_ACTIVATED = 0x1009,
+ L4C_CONTEXT_CONFLICT_DEACT_ALREADY_DEACTIVATED = 0x100A,
+ L4C_CONTEXT_CONFLICT_V4V6FB_NOT_COMPLETED = 0x100B,
+ L4C_CONTEXT_CONFLICT_ACT_ABORTED_BY_ANOTHER_DEACT = 0x100C,
+ L4C_CONTEXT_CONFLICT_CID0_NOT_ACTIVATED_BY_ATTACH = 0x100D,
+ L4C_AT_CMD_CONFIGURATION_ONGOING = 0x100E,
+ L4C_CONTEXT_CONFLICT_DUAL_PS_ATTACH = 0x100F,
+ L4C_CONTEXT_CONFLICT_DUAL_ALWAYS_TYPE = 0x1010,
+ L4C_AT_CMD_RAC_NOTIFY_CGACT_ERROR = 0x1011,
+ L4C_INIT_ATTACH_INVALID_APN = 0x1012,
+ L4C_AT_CMD_IN_WRONG_STATE = 0x1013,
+ L4C_OMADM_CHECKING_FAIL = 0x1014,
+ L4C_CONTEXT_CONFLICT_DUAL_DATA_TYPE = 0x1015,
+ L4C_AT_CMD_RAC_NOTIFY_EGTYPE_ERROR,
+ L4C_AT_CMD_ERAT_NOTIFY_CALL_EXIST = 0x1017,
+ L4C_AT_CMD_CGACT_COPS_CONFLICT = 0x1018,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x101f*/
+ L4C_TYPE_1_OLD_CAUSE_END = 0x101f,
+
+
+
+ L4C_TYPE_2_CAUSE_START = 0x1020,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+ L4C_CGEV_IND_CAUSE_NO_CAUSE = 0x1021,
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x103f*/
+ L4C_TYPE_2_CAUSE_END = 0x103f,
+ L4C_TYPE_3_CAUSE_START = 0x1040,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x105f*/
+ L4C_TYPE_3_CAUSE_END = 0x105f,
+ L4C_TYPE_4_CAUSE_START = 0x1060,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x107f*/
+ L4C_TYPE_4_CAUSE_END = 0x107f,
+
+ L4C_TYPE_5_C2K_CAUSE_START = 0x1080,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+ L4C_CMD_CONFLICT_C2K_IRAT_ONGOING = 0x1080, /* +CMD ERROR : 4224 */
+ L4C_CMD_CONFLICT_C2K_AP_DEACT_RETRY_NEEDED = 0x1081, /* +CMD ERROR : 4225 */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x109f*/
+ L4C_TYPE_5_C2K_CAUSE_END = 0x109f,
+
+ L4C_TYPE_6_CAUSE_START = 0x10a0,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x10bf*/
+ L4C_TYPE_6_CAUSE_END = 0x10bf,
+ L4C_TYPE_7_CAUSE_START = 0x10c0,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE ADD TO NEXT REGION IF NEW CAUSE NUMBER >= 0x10df*/
+ L4C_TYPE_7_CAUSE_END = 0x10df,
+ L4C_TYPE_8_CAUSE_START = 0x10e0,
+ /* CAN ADD NEW CAUSE HERE <---------------- */
+
+ /* PLEASE CREATE NEW REGION IF NEW CAUSE NUMBER >= 0x10ff*/
+ L4C_TYPE_8_CAUSE_END = 0x10ff,
+ L4C_CAUSE_END = L4C_TYPE_8_CAUSE_END,
+/* ============================== ~L4C cause ============================== */
+
+/* ============================== HIF cause ============================== */
+ HIF_CAUSE_START = 0x1100,
+
+ /* IPCore related */
+ HIF_IPC_OK = HIF_CAUSE_START,
+
+ /* MSG_ID_IPCORE_UPCM_PDN_BIND_RSP */
+ HIF_IPC_PDN_BIND_RSP_UNSUPPORTED_IP_ADDR_TYPE, /* Unknown IP address type */
+ HIF_IPC_PDN_BIND_RSP_NULL_PARAM, /* No parameter is passed to IPCore */
+ HIF_IPC_PDN_BIND_RSP_INVALID_NETIF, /* Network interface is not found */
+ HIF_IPC_PDN_BIND_RSP_NEW_SESSION_FAIL, /* New session creation is failed */
+ HIF_IPC_PDN_BIND_RSP_SESSION_RLOCK_FAIL, /* Session read lock is failed */
+ HIF_IPC_PDN_BIND_RSP_EPSB_FAIL, /* EPS Bearer is not default EPSB */
+
+ UPCM_PDN_UNBIND_RSP_EPSB_NONACT , /* EPS Bearer is not active*/
+ UPCM_PDN_UNBIND_RSP_EPSB_NONPDN , /* EPS Bearer is not default EPSB */
+ UPCM_PDN_UNBIND_RSP_EPSB_NONBIND , /* EPS Bearer is not binding yet, It implys the EPSB is default EPSB */
+ UPCM_PDN_BIND_REQ_ERROR_ACTIVATED_BEARER_IS_NOT_FOUND,
+
+ N3EPC_DISPATCHER_BIND_ERROR_AS_BEARER_NOT_ACTIVATED_BEFORE = 0x1150,
+ N3EPC_DISPATCHER_BIND_ERROR_AS_PDN_ALREADY_BIND, /*dispatcher state is bind, again a bind req*/
+ N3EPC_DISPATCHER_BIND_ERROR_AS_PREV_BIND_IN_PROGRESS, /*Previous bind req in progress with ipcore*/
+ N3EPC_DISPATCHER_BINDING_GOING_TO_UNBIND_ERROR_AS_PREV_BIND_IN_PROGRESS, /*Previous bind req in progress with ipcore*/
+ N3EPC_DISPATCHER_UNBIND_ERROR_AS_DUPLICATE_UNBIND_REQ, /*alreay unbind or going to unbind, again unbind req*/
+ HIF_CAUSE_END,
+ /* ============================== ~HIF cause ============================== */
+
+/* ============================== PAM cause ============================== */
+ PAM_CAUSE_START = 0x01200,
+
+ PAM_PDN_ACCESS_GRANTED,
+
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_08 = 8 + PAM_CAUSE_START, /* Operator determined barring */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_26 = 26 + PAM_CAUSE_START, /* Insufficient resource */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_27 = 27 + PAM_CAUSE_START, /* Missing or unknown apn */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_28 = 28 + PAM_CAUSE_START, /* Unknow PDN type */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_29 = 29 + PAM_CAUSE_START, /* User authentication failed */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_30 = 30 + PAM_CAUSE_START, /* Activation rejected by S-GW or PDN-GW */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_31 = 31 + PAM_CAUSE_START, /* Activation rejected, unspecified */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_32 = 32 + PAM_CAUSE_START, /* Service option not supported */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_33 = 33 + PAM_CAUSE_START, /* Requested service option not subscribed */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_34 = 34 + PAM_CAUSE_START, /* Service option temporarily out of order */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_35 = 35 + PAM_CAUSE_START, /* PTI already in use */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_36 = 36 + PAM_CAUSE_START, /* Regular deactivation */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_37 = 37 + PAM_CAUSE_START, /* QoS not accepted */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_38 = 38 + PAM_CAUSE_START, /* Network failure */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_39 = 39 + PAM_CAUSE_START, /* Reactivation requested */
+
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_41 = 41 + PAM_CAUSE_START, /* Semantic error in the TFT operation */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_42 = 42 + PAM_CAUSE_START, /* Syntactical error in the TFT operation */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_43 = 43 + PAM_CAUSE_START, /* Invalid EPS bearer identity */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_44 = 44 + PAM_CAUSE_START, /* Semantic errors in packet filter(s) */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_45 = 45 + PAM_CAUSE_START, /* Syntactical error in packet filter(s) */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_46 = 46 + PAM_CAUSE_START, /* Unused */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_47 = 47 + PAM_CAUSE_START, /* PTI mismatch */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_49 = 49 + PAM_CAUSE_START, /* Last PDN disconnection not allowed */
+
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_50 = 50 + PAM_CAUSE_START, /* PDN type IPv4 only allowed */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_51 = 51 + PAM_CAUSE_START, /* PDN type IPv6 only allowed */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_52 = 52 + PAM_CAUSE_START, /* single address bearers only allowed */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_53 = 53 + PAM_CAUSE_START, /* ESM information not received */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_54 = 54 + PAM_CAUSE_START, /* PDN connection does not exist */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_55 = 55 + PAM_CAUSE_START, /* Multiple PDN connections for a given APN not allowed */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_56 = 56 + PAM_CAUSE_START, /* Collision with network initiated request */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_59 = 59 + PAM_CAUSE_START, /* Unsupported QCI value */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_65 = 65 + PAM_CAUSE_START, /* Maximum number of PDP contexts reached */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_66 = 66 + PAM_CAUSE_START, /* Requested apn not supported in current RAT and PLMN combination */
+
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_81 = 81 + PAM_CAUSE_START, /* Invalid PTI value */
+
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_95 = 95 + PAM_CAUSE_START, /* Semantically incorrect message */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_96 = 96 + PAM_CAUSE_START, /* Invalid mandatory information */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_97 = 97 + PAM_CAUSE_START, /* Message type non-existent or not implemented */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_98 = 98 + PAM_CAUSE_START, /* Message type not compatible with protocol state */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_99 = 99 + PAM_CAUSE_START, /* Information element non-existent or not implemented */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_100 = 100 + PAM_CAUSE_START, /* Conditional IE error */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_101 = 101 + PAM_CAUSE_START, /* Message not compatible with the protocol state */
+
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_111 = 111 + PAM_CAUSE_START, /* Protocol error unspecified */
+ PAM_PDN_ACCESS_REJECT_DUE_TO_CAUSE_112 = 112 + PAM_CAUSE_START, /* Apn restriction value incompatiable with EPB bearer context */
+
+ PAM_PDN_ACCESS_REJECT_NOT_IN_ACL = 200 + PAM_CAUSE_START, /* Requested APN not in ACL */
+ PAM_PDN_ACCESS_REJECT_READ_EF_ACL_ONGOING = 201 + PAM_CAUSE_START, /* PAM has not get EF_ACL yet */
+
+ PAM_CAUSE_END,
+/* ============================== ~PAM cause ============================== */
+
+/* ============================== PAM VZW cause ============================== */
+ PAM_VZW_CAUSE_START = 0x01300,
+
+ PAM_VZW_PDN_ACCESS_GRANTED = 0x01 + PAM_VZW_CAUSE_START,
+
+ PAM_VZW_PDN_ACCESS_REJECT_DISABLE_IN_APN_TABLE = 0x02 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_ASK_APN_CHANGE_NOT_READY = 0x03 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_CHANGE_APN_CLASS = 0x04 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_CHANGE_APN_CLASS_AND_THROTTLE = 0x05 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_THROTTLE_FOREVER = 0x06 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_THROTTLE = 0x07 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_THROTTLE_WITH_BACKOFF_TIMER = 0x08 + PAM_VZW_CAUSE_START, // R12 VzW
+ PAM_VZW_PDN_ACCESS_REJECT_THROTTLE_FOREVER_CANDIDATE = 0x09 + PAM_VZW_CAUSE_START, // R11 VzW 7767
+ PAM_VZW_PDN_ACCESS_REJECT_THROTTLE_NO_RSP = 0x0A + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_NOT_IN_ACL = 0x0B + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_STOP_ATTACH_FOR_CLASS1_AND_CLASS2_NOT_ENABLED = 0x0C + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_WAIT_TIME_NOT_EXPIRED = 0x0D + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_EXCEED_MAX_PDN_CONN_TRIES = 0x0E + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_THROTTLE_BY_MAX_PDN_CONN_TRIES = 0x0F + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_NO_AVAILABLE_CLASS_CAN_BE_USED = 0x10 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_APN_IN_USE = 0x11 + PAM_VZW_CAUSE_START, // __PAM_CHECK_APN_UNIQUENESS__
+ PAM_VZW_PDN_ACCESS_REJECT_VZ_REQ_LTEDATA_39683_FEB_2016 = 0x12 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_VZ_REQ_LTEDATA_39684_FEB_2016 = 0x13 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDN_ACCESS_REJECT_ALLOC = 0x14 + PAM_VZW_CAUSE_START, // VzW DR 7775
+ PAM_VZW_PDN_ACCESS_REJECT_MOD = 0x15 + PAM_VZW_CAUSE_START, // VzW DR 7775
+
+ /* VzW SA DR start from 0x1320*/
+ PAM_VZW_PDU_ACCESS_GRANTED = 0x20 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDU_ACCESS_REJECT_THROTTLE_FOREVER = 0x21 + PAM_VZW_CAUSE_START, // VzW SA DR 3.1.3.2.3
+ PAM_VZW_PDU_ACCESS_REJECT_THROTTLE = 0x22 + PAM_VZW_CAUSE_START, // VzW SA DR 3.1.3.2.3
+ PAM_VZW_PDU_ACCESS_REJECT_THROTTLE_WITH_BACKOFF_TIMER = 0x23 + PAM_VZW_CAUSE_START, // VzW SA DR 3.1.3.2.3
+ PAM_VZW_PDU_ACCESS_REJECT_THROTTLE_NO_RSP = 0x24 + PAM_VZW_CAUSE_START, // VzW SA DR 3.1.3.2.3
+ PAM_VZW_PDU_ACCESS_REJECT_MOD = 0x25 + PAM_VZW_CAUSE_START, // VzW SA DR 3.1.3.2.4
+ PAM_VZW_PDU_ACCESS_REJECT_EST = 0x26 + PAM_VZW_CAUSE_START, // VzW SA DR 3.1.3.2.4
+ PAM_VZW_PDU_ACCESS_THROTTLE_EXEMPTION = 0x27 + PAM_VZW_CAUSE_START, // VzW SA DR 3.1.1
+
+ // VzW SA DR 3.1.3.2.7
+ PAM_VZW_PDU_ACCESS_REJECT_WAIT_TIME_NOT_EXPIRED = 0x28 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDU_ACCESS_REJECT_EXCEED_MAX_MAX_PDU_SESSION_TRIES = 0x29 + PAM_VZW_CAUSE_START,
+ PAM_VZW_PDU_ACCESS_REJECT_THROTTLE_BY_MAX_PDU_SESSION_TRIES = 0x30 + PAM_VZW_CAUSE_START,
+
+
+ PAM_VZW_CAUSE_END = 0xFF + PAM_VZW_CAUSE_START,
+
+/* ============================== ~PAM VZW cause ============================== */
+/** PAM cause continues in later "Ext. Part for PAM cause" **/
+
+/* ============================== PAM AT&T cause ============================== */
+ PAM_ATT_CAUSE_START = 0x01400,
+
+ PAM_ATT_PDN_ACCESS_GRANTED = 0x01 + PAM_ATT_CAUSE_START,
+
+ PAM_ATT_PDN_ACCESS_REJECT_IMS_PDN_BLOCK_TEMP = 0x02 + PAM_ATT_CAUSE_START,
+ PAM_ATT_PDN_ACCESS_REJECT_IMS_PDN_BLOCK_FOREVER = 0x03 + PAM_ATT_CAUSE_START, /* Not used for <CDR-DAM-2120> and <CDR-DAM-2130> */
+
+ PAM_ATT_CAUSE_END = 0xFF + PAM_ATT_CAUSE_START,
+/* ============================== ~PAM AT&T cause ============================== */
+
+/* ============================== L4BPDN cause ============================== */
+ L4BPDN_CAUSE_START = 0X01500,
+
+ L4BPDN_AT_OK = 0x01 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CMD_MODE_NOT_SUPPORT = 0x02 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CURRENT_RAT_UNKNOWN = 0x03 + L4BPDN_CAUSE_START,
+
+ L4BPDN_AT_ERROR_CID_IS_NOT_ACTIVE_FOR_CGCONTRDP = 0x04 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CID_IS_NOT_VALID = 0x05 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_IE_PARSE_RESULT_IS_NOT_OK = 0x06 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_PCO_ID_IS_NOT_VALID = 0x07 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_PCO_ID_IS_NOT_SUPPORTED = 0x08 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_PCO_ID_SUPPORTED_IS_NOT_PRESENT = 0x09 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CID_IS_NOT_ACTIVE_FOR_BINDING = 0x0A + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CID_IS_NOT_ACTIVE_FOR_UNBINDING = 0x0B + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CMD_NOT_SUPPORT_IN_CURRENT_DOMAIN = 0X0C + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CID_IS_ALREADY_BINDED = 0x0D + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CID_IS_ALREADY_UNBINDED = 0x0E + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CMD_NOT_SUPPORT = 0x0F + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CGCMOD_NOT_SUPPORT_IN_C2K = 0x10 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_EGACT_NOT_SUPPORT_IN_C2K = 0x11 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CID_IS_ACTIVE_BUT_NOT_PRIMARY_PDP = 0x12 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_CID_IS_NOT_ACTIVE_FOR_SENDING_DATA = 0x13 + L4BPDN_CAUSE_START,
+ L4BPDN_CGEV_IND_FROM_CVAL_WITHOUT_CAUSE = 0x14 + L4BPDN_CAUSE_START,
+ L4BPDN_CGEV_IND_NO_CAUSE = 0x15 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_EGACT_UNEXPECTED_RAT_IN_C2K = 0x16 + L4BPDN_CAUSE_START,
+ L4BPDN_AT_ERROR_C2K_LTE_DEACT_RETRY_NEEDED = 0x17 + L4BPDN_CAUSE_START,
+
+ L4BPDN_LEISIM_CAUSE_START = 0X01580,
+ L4BPDN_LEISIM_AT_ERROR_CID_IS_ALREADY_BINDED = 0x01 + L4BPDN_LEISIM_CAUSE_START,
+ L4BPDN_LEISIM_AT_ERROR_CID_PDN_TRANSFER_ONGOING = 0x02 + L4BPDN_LEISIM_CAUSE_START,
+
+ L4BPDN_LEISIM_OTHER_DIRECTION_IRAT_STARTED_ABORT_REVIVE = 0x03 + L4BPDN_LEISIM_CAUSE_START,
+ L4BPDN_LEISIM_EHRPD_ALL_3_ROUNDS_REVIVE_FAIL = 0x04 + L4BPDN_LEISIM_CAUSE_START,
+ L4BPDN_LEISIM_DEACT_ABORT_REVIVE = 0x05 + L4BPDN_LEISIM_CAUSE_START,
+ L4BPDN_LEISIM_EHRPD_ONE_PDN_REVIVE_SUCCESS_NO_NEED_REVIVE_OTHER = 0x06 + L4BPDN_LEISIM_CAUSE_START,
+ L4BPDN_LEISIM_OTHER_DIRECTION_IRAT_STARTED_ABORT_EHRPD_2ND_REVIVE = 0x07 + L4BPDN_LEISIM_CAUSE_START,
+ L4BPDN_LEISIM_OTHER_DIRECTION_IRAT_STARTED_ABORT_EHRPD_3ND_REVIVE = 0x08 + L4BPDN_LEISIM_CAUSE_START,
+
+
+ L4BPDN_LEISIM_CAUSE_END,
+ L4BPDN_CAUSE_END = 0xFF + L4BPDN_CAUSE_START,
+/* ============================== L4BPDN cause ============================== */
+
+/* ============================== D2 cause ============================== */
+ D2_CAUSE_START = 0X01600,
+ D2AT_OK = 0x01 + D2_CAUSE_START,
+ D2AT_ERROR_EIF_ERROR = 0x02 + D2_CAUSE_START,
+ D2AT_ERROR_EIF_FORMAT_ERROR = 0x03 + D2_CAUSE_START,
+ D2AT_ERROR_INVALID_INTERFACE_ID = 0x04 + D2_CAUSE_START,
+ D2AT_ERROR_INVALID_STATE = 0x05 + D2_CAUSE_START,
+ D2AT_ERROR_DSCONT_WITHOUT_PRIMARY= 0x06 + D2_CAUSE_START,
+
+ D2_NETIF_CAUSE_START = 0x40 + D2_CAUSE_START,
+ D2_NETIF_OK = 0x00 + D2_NETIF_CAUSE_START,
+ D2_NETIF_ERROR = 0x01 + D2_NETIF_CAUSE_START,
+ D2_NETIF_INVALID_INTERFACE_ID = 0x02 + D2_NETIF_CAUSE_START,
+ D2_NETIF_POOL_FULL = 0x03 + D2_NETIF_CAUSE_START,
+ D2_NETIF_INVALID_STATE = 0x04 + D2_NETIF_CAUSE_START,
+ D2_NETIF_INVALID_PARAMETER = 0x05 + D2_NETIF_CAUSE_START,
+
+ D2AM_NW_CAUSE_START = 0x50 + D2_CAUSE_START, /* 0x01650 */
+
+ D2AM_IA_CAUSE_START = 0x60 + D2_CAUSE_START, /* 0x01660 */
+ D2AM_IA_APN_NOT_SET = 0x01 + D2AM_IA_CAUSE_START, /* 0x01661 */
+ D2AM_IA_APN_NOT_FOUND = 0x02 + D2AM_IA_CAUSE_START, /* 0x01662 */
+ D2AM_IA_APN_CID_ALLOC_FAIL = 0x03 + D2AM_IA_CAUSE_START, /* 0x01663 */
+ D2AM_IA_TARGET_DETACH = 0x04 + D2AM_IA_CAUSE_START, /* 0x01664 */
+ D2AM_IA_RF_OFF = 0x05 + D2AM_IA_CAUSE_START, /* 0x01665 */
+ D2AM_IA_APN_ON_WIFI = 0x06 + D2AM_IA_CAUSE_START, /* 0x01666 */
+ D2AM_IA_ICCID_NOT_GET = 0x07 + D2AM_IA_CAUSE_START, /* 0x01667 */
+ D2AM_IA_IMS_ON_WIFI = 0x08 + D2AM_IA_CAUSE_START, /* 0x01668 */
+ D2AM_IA_UNBIND_ONGOING = 0x09 + D2AM_IA_CAUSE_START, /* 0x01669 */
+
+ D2AM_OTHER_CAUSE_START = 0x70 + D2_CAUSE_START, /* 0x01670 */
+ D2AM_DATA_NOT_ALLOWED = 0x01 + D2AM_OTHER_CAUSE_START, /* 0x01671 (5745) */
+ D2AM_IMPORTANT_USER_USING = 0x02 + D2AM_OTHER_CAUSE_START, /* 0x01672 (5746) */
+ D2AM_IMS_CALLING_ON_OTHER_SIM = 0x03 + D2AM_OTHER_CAUSE_START, /* 0x01673 (5747) */
+ D2AM_DUAL_MDALLOW = 0x04 + D2AM_OTHER_CAUSE_START, /* 0x01674 (5748) */
+ D2AM_MDALLOW_NOT_SUPPORT = 0x05 + D2AM_OTHER_CAUSE_START, /* 0x01675 (5749) */
+ D2AM_PS_MODE_UNKNOWN = 0x06 + D2AM_OTHER_CAUSE_START, /* 0x01676 (5750) */
+ D2AM_CS_CALLING_ON_OTHER_SIM = 0x07 + D2AM_OTHER_CAUSE_START, /* 0x01677 (5751) */
+ D2AM_VZW_DATA_NOT_ALLOWED = 0x08 + D2AM_OTHER_CAUSE_START, /* 0x01678 (5752) */
+ D2AM_DSBP_ONGOING = 0x09 + D2AM_OTHER_CAUSE_START, /* 0x01679 (5753) */
+ D2AM_SIM_NOT_READY = 0x0A + D2AM_OTHER_CAUSE_START, /* 0x0167A (5754) */
+
+ /* Exported to AP, Do NOT move them */
+ D2CPM_CAUSE_START = 0xD0 + D2_CAUSE_START,
+ D2CPM_OK = 0x00 + D2CPM_CAUSE_START, /* Success */
+// D2CM_OK = D2CPM_OK,
+// D2PM_OK = D2CPM_OK
+ D2CPM_INVAL_ARG = 0x01 + D2CPM_CAUSE_START, /* Invalid argument */
+// D2CM_INVAL_ARG = D2CPM_INVAL_ARG,
+// D2PM_INVAL_ARG = D2CPM_INVAL_ARG,
+ D2CPM_NOT_CONN = 0x02 + D2CPM_CAUSE_START, /* Transport endpoint is not connected */
+// D2CM_NOT_CONN = D2CPM_NOT_CONN,
+// D2PM_NOT_CONN = D2CPM_NOT_CONN,
+ D2CPM_ALREADY_PROG = 0x03 + D2CPM_CAUSE_START, /* Operation already in progress */
+// D2CM_ALREADY_PROG = D2CPM_ALREADY_PROG,
+// D2PM_ALREADY_PROG = D2CPM_ALREADY_PROG,
+ D2CPM_CONN_ABORT = 0x04 + D2CPM_CAUSE_START, /* Software caused connection abort */
+// D2CM_CONN_ABORT = D2CPM_CONN_ABORT,
+// D2PM_CONN_ABORT = D2CPM_CONN_ABORT,
+ D2CPM_NO_ADDR = 0x05 + D2CPM_CAUSE_START, /* No such device or address */
+// D2CM_NO_ADDR = D2CPM_NO_ADDR,
+// D2PM_NO_ADDR = D2CPM_NO_ADDR,
+ D2CPM_NOT_PERM = 0x06 + D2CPM_CAUSE_START, /* Operation not permitted */
+// D2CM_NOT_PERM = D2CPM_NOT_PERM,
+// D2PM_NOT_PERM = D2CPM_NOT_PERM,
+ D2CPM_IN_USE = 0x07 + D2CPM_CAUSE_START, /* Address already in use */
+// D2CM_IN_USE = D2CPM_IN_USE,
+// D2PM_IN_USE = D2CPM_IN_USE,
+ D2CPM_CONFLICT = 0x08 + D2CPM_CAUSE_START, /* Name not unique on network */
+// D2CM_CONFLICT = D2CPM_CONFLICT,
+// D2PM_CONFLICT = D2CPM_CONFLICT,
+ D2CPM_UNRECOV = 0x09 + D2CPM_CAUSE_START, /* State not recoverable */
+// D2CM_UNRECOV = D2CM_UNRECOV,
+// D2PM_UNRECOV = D2PM_UNRECOV,
+ D2CPM_CAUSE_END,
+ D2CM_CAUSE_START = 0xE0 + D2_CAUSE_START,
+ D2CM_CAUSE_END,
+
+ D2PM_CAUSE_START = 0xF0 + D2_CAUSE_START,
+ D2PM_D2RM_REJ = 0x01 + D2PM_CAUSE_START, /* Rejected or frustrated by IWLAN */
+ D2PM_NW_UNKNOWN = 0x02 + D2PM_CAUSE_START, /* Unknown network error */
+ D2PM_CAUSE_END,
+ /* Exported to AP, Do NOT move them */
+
+ D2_CAUSE_END = 0xFF + D2_CAUSE_START,
+/* ============================== DAST cause ============================== */
+
+/* ============================== DDM cause ============================== */
+ DDM_CAUSE_START = 0x01700,
+ DDM_AT_OK = 0x01 + DDM_CAUSE_START,
+ DDM_DEFINE_ATTACH_PDN_FAIL = 0x02 + DDM_CAUSE_START,
+ DDM_BLOCK_ACT_DATA_CALL = 0x03 + DDM_CAUSE_START,
+ DDM_REUSE_PDP_TYPE_NOT_MATCH = 0x04 + DDM_CAUSE_START,
+ DDM_IA_IS_ONGOING = 0x05 + DDM_CAUSE_START,
+ DDM_ACT_IS_ONGOING = 0x06 + DDM_CAUSE_START,
+ DDM_DEACT_IS_ONGOING = 0x07 + DDM_CAUSE_START,
+ DDM_CAUSE_END = 0xFF + DDM_CAUSE_START,
+/* ============================== DDM cause ============================== */
+
+
+/* ============================== SDM cause ============================== */
+ SDM_CAUSE_START = 0x01800,
+ SDM_CAUSE_REQUEST_AP_RETRY = 0x01 + SDM_CAUSE_START,
+ SDM_CAUSE_END = 0xFF + SDM_CAUSE_START,
+/* ============================== SDM cause ============================== */
+
+/* ============================== Individual AT CMD cause ============================== */
+ IND_AT_CMD_CAUSE_START = 0x01900,
+ /* Each AT CMD can define it's own error cause under this range */
+ /************************AT+ERFTX error causes START**********************/
+
+ /*==========EL1 causes==========*/
+ L4CEL1_ERR_CAUSE_START = 0x00 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_NOT_IN_FLIGHT = 0x01 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_SIM_IN_SLOT = 0x02 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_PARA_BAND = 0x03 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_PARA_UL_BW = 0x04 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_PARA_UL_FREQ = 0x05 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_PARA_DUPLEX_MODE = 0x06 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_PARA_TDD_CFG = 0x07 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_PARA_SP_SF_CFG = 0x08 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_PARA_VRB = 0x09 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_PARA_MCS = 0x0A + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_ROUTE_VALID = 0x0B + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_TEST_ONGOING = 0x0C + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_ANT_STATE = 0x0D + IND_AT_CMD_CAUSE_START,
+ /*0x0E ~ 0x12 are reserved for future use*/
+ L4CEL1_ERR_OTHERS = 0x13 + IND_AT_CMD_CAUSE_START,
+ L4CEL1_ERR_CAUSE_END = 0x14 + IND_AT_CMD_CAUSE_START,
+
+
+ /*==========C2K causes==========*/
+ L4CCL1_ERR_CAUSE_START = 0x01 + L4CEL1_ERR_CAUSE_END,
+ L4CCL1_ERR_PARA_TXPOWER = 0x02 + L4CEL1_ERR_CAUSE_END,
+ L4CCL1_ERR_PARA_CHANNEL = 0x03 + L4CEL1_ERR_CAUSE_END,
+ /*0x04 ~ 0x09 are reserved for future use*/
+ L4CCL1_ERR_CAUSE_END = 0x0A + L4CEL1_ERR_CAUSE_END,
+
+ /*==========GL1 causes==========*/
+ L4CGL1_ERR_CAUSE_START = 0x01 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_NOT_IN_FLIGHT = 0x02 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_PARA_BAND = 0x03 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_PARA_FREQ = 0x04 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_PARA_PATTERN = 0x05 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_PARA_AFCDAC = 0x06 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_PARA_TIMESLOTMASK = 0x07 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_PARA_PCL = 0x08 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_PARA_CS = 0x09 + L4CCL1_ERR_CAUSE_END,
+ L4CGL1_ERR_CAUSE_PARA_REPEAT_TIME = 0x0A + L4CCL1_ERR_CAUSE_END,
+ /*0x02 ~0x2f reserved for future use*/
+ L4CGL1_ERR_CAUSE_END = 0x30 + L4CCL1_ERR_CAUSE_END,
+ /*==========TL1 causes==========*/
+ L4CTL1_ERR_CAUSE_START = 0x01 + L4CGL1_ERR_CAUSE_END,
+ L4CTL1_ERR_NOT_IN_FLIGHT = 0x02 + L4CGL1_ERR_CAUSE_END,
+ L4CTL1_ERR_FREQ = 0x03 + L4CGL1_ERR_CAUSE_END,
+ L4CTL1_ERR_BAND = 0x04 + L4CGL1_ERR_CAUSE_END,
+ L4CTL1_ERR_NOT_STOP_TX = 0x05 + L4CGL1_ERR_CAUSE_END,
+ /*0x04 ~ 0x09 are reserved for future use*/
+ L4CTL1_ERR_CAUSE_END = 0x0A + L4CGL1_ERR_CAUSE_END,
+
+ /*==========UL1 causes==========*/
+ L4CUL1_ERR_CAUSE_START = 0x01 + L4CTL1_ERR_CAUSE_END,
+ L4CUL1_ERR_NOT_IN_FLIGHT = 0x02 + L4CTL1_ERR_CAUSE_END,
+ L4CUL1_ERR_PARA_UL_FREQ = 0x03 + L4CTL1_ERR_CAUSE_END,
+ L4CUL1_ERR_COMMAND = 0x04 + L4CTL1_ERR_CAUSE_END,
+ /*0x05 ~ 0x09 are reserved for future use*/
+ L4CUL1_ERR_CAUSE_END = 0x0A + L4CTL1_ERR_CAUSE_END,
+
+ /*No Error cause*/
+ L4C_L1_NO_ERROR = 0x01 + L4CUL1_ERR_CAUSE_END,
+
+ /************************AT+ERFTX error causes END**********************/
+ IND_AT_CMD_CAUSE_END = 0xFF + IND_AT_CMD_CAUSE_START,
+/* ============================== Individual AT CMD cause ============================== */
+
+/* ============================== VGSM cause ============================== */
+ VGSM_CAUSE_START = 0x01A00,
+ #include "vgsm_cause_enum.h" /* To avoid file dependency of common file */
+ VGSM_CAUSE_END = 0xFF + VGSM_CAUSE_START,
+/* ============================== VGSM cause ============================== */
+
+
+/* ============================== Ext. Part for PAM cause ============================== */
+ EXT_PAM_CAUSE_START = 0x01B00,
+
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_8 = 8 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Operator determined barring */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_26 = 26 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Insufficient Resource for specific DNN */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_27 = 27 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Missing or unknown DNN */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_28 = 28 + EXT_PAM_CAUSE_START, /* Specific for 5GC; unknown PDU session type */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_29 = 29 + EXT_PAM_CAUSE_START, /* Specific for 5GC; User authentication or authorization failed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_30 = 30 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Request rejected by Serving GW or PDN GW */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_31 = 31 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Request rejected unspecified */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_32 = 32 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Service option not supported */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_33 = 33 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Requested service option not subscribed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_34 = 34 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Service option temporarily out of order */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_35 = 35 + EXT_PAM_CAUSE_START, /* Specific for 5GC; PTI already in use */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_36 = 36 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Regular deactivation */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_37 = 37 + EXT_PAM_CAUSE_START, /* Specific for 5GC; EPS QoS not accepted */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_38 = 38 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Network failure */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_39 = 39 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Reactivation requested */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_41 = 41 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Semantic error in the TFT operation */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_42 = 42 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Syntactical error in the TFT operation */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_43 = 43 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Invalid PDU session identity */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_44 = 44 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Semantic errors in packet filter(s) */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_45 = 45 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Syntactical errors in packet filter(s) */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_46 = 46 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Out of LADN Service Area */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_47 = 47 + EXT_PAM_CAUSE_START, /* Specific for 5GC; PTI mismatch */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_49 = 49 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Last PDN disconnection not allowed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_50 = 50 + EXT_PAM_CAUSE_START, /* Specific for 5GC; IPv4 only allowed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_51 = 51 + EXT_PAM_CAUSE_START, /* Specific for 5GC; IPv6 only allowed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_54 = 54 + EXT_PAM_CAUSE_START, /* Specific for 5GC; PDN session does not exist */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_55 = 55 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Multiple PDN connections for a given APN not allowed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_56 = 56 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Collision with network initiated request */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_57 = 57 + EXT_PAM_CAUSE_START, /* Specific for 5GC; IPv4v6 only allowed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_59 = 59 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Unsupported QCI value */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_58 = 58 + EXT_PAM_CAUSE_START, /* Specific for 5GC; PDU session type Unstructed only allowed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_61 = 61 + EXT_PAM_CAUSE_START, /* Specific for 5GC; PDU session type Ethernet only allowed */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_65 = 65 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Maximum number of PDU sessions reached */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_66 = 66 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Requested APN not supported in current RAT and PLMN combination */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_67 = 67 + EXT_PAM_CAUSE_START, /* Specific for 5GC; insufficient resources for specific slice and DNN */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_68 = 68 + EXT_PAM_CAUSE_START, /* Specific for 5GC; not supported SSC mode */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_69 = 69 + EXT_PAM_CAUSE_START, /* Specific for 5GC; insufficient resources for specific slice */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_70 = 70 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Missing or unknown DNN in a slice */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_81 = 81 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Invalid PTI value */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_82 = 82 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Maximum data rate per UE for user-plane integrity protection is too low */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_83 = 83 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Semantic error in QoS operation */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_84 = 84 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Syntactic error in QoS operation */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_85 = 85 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Invalid mapped EPS bearer identity */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_95 = 95 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Semantically incorrect message */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_96 = 96 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Invalid mandatory information */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_97 = 97 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Message type non-existent or not implemented */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_98 = 98 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Message type not compatible with protocol state */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_99 = 99 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Information element non-existent or not implemented */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_100 = 100 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Conditional IE error */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_101 = 101 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Message not compatible with the protocol state */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_CAUSE_111 = 111 + EXT_PAM_CAUSE_START, /* Specific for 5GC; Protocol error unspecified */
+
+ PAM_5G_PDU_SESSION_NOT_FORWARDED_CAUSE_START = EXT_PAM_CAUSE_START + 128, /* Specific for 5GC; Allocate a range for VGMM Cause indicating VGSM Message not Forwarded */
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_DNN_NOT_SUPPORT_IN_SLICE = PAM_5G_PDU_SESSION_NOT_FORWARDED_CAUSE_START + 1,
+ PAM_5G_PDU_SESSION_ACCESS_REJECT_DUE_TO_MAX_PDU_SESSION_REACHED = PAM_5G_PDU_SESSION_NOT_FORWARDED_CAUSE_START + 2,
+ PAM_VGSM_REJECT_DUE_TO_LADN_OUT_OF_SERVICE_AREA = PAM_5G_PDU_SESSION_NOT_FORWARDED_CAUSE_START + 3,
+
+ EXT_PAM_CAUSE_END = EXT_PAM_CAUSE_START + 0xFF,
+
+/* ============================== ~EXT PAM cause ============================== */
+
+ REPORT_TO_UPPER_LAYER_CAUSE_END = 0x3000
+
+}ps_cause_enum;
+#undef VGSM_SPEC_CAUSE_ENUM
+#undef VGSM_PROPRIETARY_CAUSE_ENUM
+
+
+typedef enum {// string SIA SIB SIC
+ L4_ALLSS,
+ L4_EMLPP, // "75", - - -
+ L4_EMLPP0, // "750", - - -
+ L4_EMLPP1, // "751", - - -
+ L4_EMLPP2, // "752", - - -
+ L4_EMLPP3, // "753", - - -
+ L4_EMLPP4, // "754", - - -
+ L4_CD, // "66", - - -
+ L4_CLIP, // "30", - - -
+ L4_CLIR, // "31", - - -
+ L4_COLP, // "76", - - -
+ L4_COLR, // "77", - - -
+ L4_CFU, // "21", DN BS -
+ L4_CFB, // "67", DN BS -
+ L4_CFNRY, // "61", DN BS T
+ L4_CFNRC, // "62", DN BS -
+ L4_CFA, // "002", DN BS T
+ L4_CFC, // "004", DN BS T
+ L4_CW, // "43", BS - -
+ L4_HOLD,
+ L4_MPTY,
+ L4_UUS1, // "361", R - -
+ L4_UUS2, // "362", R - -
+ L4_UUS3, // "363", R - -
+ L4_UUSALL, // "360", R - -
+ L4_BAOC, // "33", PW BS -
+ L4_BOIC, // "331", PW BS -
+ L4_BOICEXHC, // "332",PW BS -
+ L4_BAIC, // "35", PW BS -
+ L4_BAICROAM, // "351",PW BS -
+ L4_BAC, // "330", PW BS -
+ L4_BOC, // "333", PW BS -
+ L4_BIC, // "353", PW BS -
+ L4_ECT, // "96",
+ L4_CCBS, // "37", N (1-5)
+ L4_FM, // "214",
+ L4_CNAP, // "300", - - -
+ L4_MSP1, // "591", PW
+ L4_MSP2, // "592", PW
+ L4_MSP3, // "593", PW
+ L4_MSP4, // "594", PW
+ L4_MC, // "88", NBR_USER (1-NBR_SB)
+ L4_CDIP
+} l4_ss_code_enum;
+
+typedef enum { // Basic Service group number
+// L4_ALL_BS_AND_TS = N/A 1-12
+// TELESERVICES
+ L4_ALL_TELESERVICES = 10, // 1-6 + 12
+ L4_TELEPHONY = 11, // 1
+ L4_ALL_DATA_TELESERVICES = 12, // 2-6
+ L4_FACSIMILE_SERVICES = 13, // 6
+ L4_SHORT_MESSAGE_SERVICES = 16, // 2
+ L4_ALL_TELESERVICES_EXCEPT_SMS = 19, // 1 + 3-6 + 12
+// VOICE GROUP SERVICES
+ L4_VOICE_GROUP_CALL_SERVICE = 17,
+ L4_VOICE_BROADCAST_SERVICE = 18,
+// BEARER SERVICE
+ L4_ALL_BEARER_SERVICES = 20, // 7-11
+ L4_ALL_ASYNC_SERVICES = 21, // 7
+ L4_ALL_SYNC_SERVICES = 22, // 8
+ L4_ALL_DATA_CIRCUIT_SYNC = 24, // 8
+ L4_ALL_DATA_CIRCUIT_ASYNC = 25, // 7
+ L4_AUXILIARY_TELEPHONY = 89,
+ L4_ALL_GPRS_BEARER_SERVICES = 99, // 13
+ /* Johnny: these enums do not exist in 22.030, only for MMI display,
+ user should not input these enums for tele/bearer service code */
+ L4_BS_ALLPADACCESSCA_SERVICES = 100,
+ L4_BS_ALLDATAPDS_SERVICES = 101
+} l4_bs_code_enum;
+
+typedef enum {
+ L4_GERAN_RXLEVEL,
+ L4_GERAN_BER,
+ L4_UTRA_RSCP,
+ L4_UTRA_ECNO,
+ L4_EUTRA_RSRQ,
+ L4_EUTRA_RSRP,
+ L4_NR_SS_RSRQ,
+ L4_NR_SS_RSRP,
+ L4_NR_SS_SINR,
+} l4_cesq_param_enum;
+
+
+typedef enum{
+ L4C_AT_CMD_PARAM_NONE, //init value
+ L4C_AT_CMD_PARAM_EMPTY, //e.g. AT+XXX=,, param1=NULL
+ L4C_AT_CMD_PARAM_INTEGER,
+ L4C_AT_CMD_PARAM_SIGN_INTEGER,
+ //L4C_AT_CMD_PARAM_STRING_PTR,
+ L4C_AT_CMD_PARAM_STRING_S,
+ L4C_AT_CMD_PARAM_MAX
+}l4c_at_cmd_param_type;
+
+typedef enum{
+ L4C_AT_CMD_PROCESS_ERROR,
+ L4C_AT_CMD_PROCESS_WAIT_CNF,
+ L4C_AT_CMD_PROCESS_IMMEDIATE_OK,
+ L4C_AT_CMD_PROCESS_MAX,
+}l4c_at_cmd_process_type_enum;
+
+
+typedef enum
+{
+ UE_MODE_PS_MODE_2 = 0,
+ UE_MODE_CS_PS_MODE_1,
+ UE_MODE_CS_PS_MODE_2,
+ UE_MODE_PS_MODE_1,
+ UE_MODE_INVALID,
+
+} ue_mode_enum;
+
+typedef enum
+{
+ VOICE_CENTRIC = 0,
+ DATA_CENTRIC
+} ue_usage_setting_enum;
+
+typedef enum
+{
+ SUSP_RESU_NORMAL_MODE = 0,
+ SUSP_RESU_SUSPEND_BY_MCC_CHANGE_MODE = 1,
+ SUSP_RESU_SUSPEND_BY_PLMN_CHANGE_MODE = 2,
+ SUSP_RESU_SUSPEND_ALL_MODE = 3,
+}susp_resu_mode_enum;
+
+typedef enum
+{
+ SUSP_RESU_SUSPEND_STATUS = 0,
+ SUSP_RESU_RESUME_STATUS = 1
+}susp_resu_status_enum;
+
+typedef enum
+{
+ SUSP_RESU_MODE_CHANGE = 0,
+ SUSP_RESU_RESUME_REQ = 1
+}susp_resu_action_enum;
+
+typedef enum
+{
+ SUSP_RESU_BY_GMSS = 0,
+ SUSP_RESU_BY_RAC = 1,
+ SUSP_RESU_BY_AP = 2,
+ SUSP_RESU_BY_SIM = 3,
+ SUSP_RESU_BY_L4C = 4,
+ SUSP_RESU_SRC_MAX
+}susp_resu_source_enum;
+
+typedef enum
+{
+ SUSP_RESU_OK = 0,
+ SUSP_RESU_ERROR = 1
+}susp_resu_result_enum;
+
+
+
+/* TS 27.007 && TS 24.167 */
+typedef enum
+{
+ L4_CS_VOICE_ONLY = 1,
+ L4_CS_VOICE_PREFERRED_IMS_PS_VOICE_AS_SECONDARY, /* CS voice preferred, IMS PS Voice as secondary */
+ L4_IMS_PS_VOICE_PREFERRED_CS_VOICE_AS_SECONDARY, /* IMS PS voice preferred, CS Voice as secondary */
+ L4_IMS_PS_VOICE_ONLY
+} l4_voice_domain_preference_enum;
+
+/* 34.109 */
+typedef enum{
+ RATCM_MSG_CLOSE_UE_TEST_LOOP = 0x40,
+ RATCM_MSG_CLOSE_UE_TEST_LOOP_COMPLETE = 0x41,
+ RATCM_MSG_OPEN_UE_TEST_LOOP = 0x42,
+ RATCM_MSG_OPEN_UE_TEST_LOOP_COMPLETE = 0x43,
+ RATCM_MSG_ACTIVATE_RB_TEST_MODE = 0x44,
+ RATCM_MSG_ACTIVATE_RB_TEST_MODE_COMPLETE = 0x45,
+ RATCM_MSG_DEACTIVATE_RB_TEST_MODE = 0x46,
+ RATCM_MSG_DEACTIVATE_RB_TEST_MODE_COMPLETE = 0x47,
+ RATCM_MSG_RESET_UE_POSITIONING_STORED_INFO = 0x48 //MAUI_02601231
+}ratcm_utest_loopback_mode_cmd_enum;
+
+typedef enum{
+ RATCM_MSG_CLOSE_UE_TEST_LOOP_MODE_1 = 0x00,
+ RATCM_MSG_CLOSE_UE_TEST_LOOP_MODE_2 = 0x01,
+ RATCM_MSG_CLOSE_UE_TEST_LOOP_MODE_3 = 0x02,
+ RATCM_MSG_CLOSE_UE_TEST_LOOP_MODE_4 = 0x03
+}ratcm_utest_close_loop_mode_enum;
+
+typedef enum
+{
+ L4_IMS_SMMA_OP_UPDATE_MEM = 1,
+ L4_IMS_SMMA_OP_UPDATE_FILE,
+} l4_ims_smma_op_enum;
+
+/* TS27.007 AT+CVMOD */
+typedef enum
+{
+ VOICE_MODE_CS_ONLY,
+ VOICE_MODE_VOIP_ONLY,
+ VOICE_MODE_CS_PREFERRED,
+ VOICE_MODE_VOIP_PREFERRED
+} voice_mode_enum;
+
+/* For VDM triggered PLMN search request */
+typedef enum
+{
+ VDM_NW_SELECTION_ANY_PLMN_FOR_EMERG = 0,
+ VDM_NW_SELECTION_PLMN_RESELECTION
+} vdm_nw_selection_type_enum;
+
+/* For VDM triggered PLMN search result */
+typedef enum
+{
+ VDM_NWSEL_RESULT_FAILURE = 0,
+ VDM_NWSEL_RESULT_SUCCESS
+} vdm_nw_selection_result_enum;
+
+/* For VDM Gemini CS semaphore operations */
+typedef enum{
+ VDM_VOICE_STATUS_START = 0,
+ VDM_VOICE_STATUS_STOP
+} vdm_voice_status_enum;
+
+typedef enum
+{
+ VDM_CALL_DOMAIN_NULL = 0, // VDM ADS fails or domain not decided yet
+ VDM_CALL_DOMAIN_WG_CS = 1, // 3gpp CS
+ VDM_CALL_DOMAIN_C2K_CS = 2, // 3gpp2 CS
+ VDM_CALL_DOMAIN_LTE = 3,
+ VDM_CALL_DOMAIN_WIFI = 4,
+ VDM_CALL_DOMAIN_NR = 5,
+ VDM_CALL_DOMAIN_MAX,
+} vdm_call_domain_enum;
+
+#define VG_ACCESS_CATEGORY_EMERGENCY_BM 0x0000000000000004
+#define VG_ACCESS_CATEGORY_MO_MMTEL_VOICE_BM 0x0000000000000010
+#define VG_ACCESS_CATEGORY_MO_MMTEL_VIDEO_BM 0x0000000000000020
+#define VG_ACCESS_CATEGORY_MO_SMS_BM 0x0000000000000040
+#define VG_ACCESS_CATEGORY_IMS_REG_BM 0x0000000000000200
+
+/* type of IMS service */
+typedef enum
+{
+ IMS_SERVICE_TYPE_NOT_DEFINED = 0,
+ IMS_SERVICE_TYPE_NORMAL_VOICE_CALL, // MMTEL voice
+ IMS_SERVICE_TYPE_NORMAL_VIDEO_CALL, // MMTEL video
+ IMS_SERVICE_TYPE_EMERGENCY_CALL,
+ IMS_SERVICE_TYPE_SMS, // SMSoIP
+ IMS_SERVICE_TYPE_NORMAL_VOICE_CALL_HO, // MMTEL voice handover from WLAN
+ IMS_SERVICE_TYPE_NORMAL_VIDEO_CALL_HO, // MMTEL video handover from WLAN
+ IMS_SERVICE_TYPE_SMS_HO, // SMSoIP handover from WLAN
+ IMS_SERVICE_TYPE_REG_SIG, // IMS registration related signalling
+ IMS_SERVICE_TYPE_MAX, // Add new services above here
+} ims_service_type_enum;
+
+/* IMS service/UAC session */
+typedef enum
+{
+ IMS_SERVICE_STATUS_START = 0,
+ IMS_SERVICE_STATUS_STOP,
+
+} ims_service_status_enum;
+
+/* UAC result of IMS service */
+typedef enum
+{
+ IMS_SERVICE_UAC_RESULT_NONE = 0, // for UAC stop only
+ IMS_SERVICE_UAC_RESULT_OK, // allowed
+ IMS_SERVICE_UAC_RESULT_BARRED,
+ IMS_SERVICE_UAC_RESULT_NO_COVERAGE,
+ IMS_SERVICE_UAC_RESULT_GEMINI_SUSPEND,
+ IMS_SERVICE_UAC_RESULT_DEREGISTERED
+
+} ims_service_uac_result_enum;
+
+typedef enum
+{
+ ERRC_INITIAL,
+ ERRC_STANDBY,
+ ERRC_IDLE,
+ ERRC_CONNECTED,
+ ERRC_FLIGHT,
+ ERRC_IDLE_IRSUS,
+ ERRC_CONN_IRSUS
+} em_errc_state_enum;
+
+typedef enum
+{
+ CN_ASSOCIATE_EPC,
+ CN_ASSOCIATE_5GC
+} cn_associate_enum;
+
+typedef enum
+{
+ LTE_RRC_STATE_NULL,
+ LTE_RRC_STATE_IDLE,
+ LTE_RRC_STATE_ATMPT_CONNECTION,
+ LTE_RRC_STATE_CONNECTED,
+ LTE_RRC_STATE_ENDING,
+ LTE_RRC_STATE_ATMPT_OUTBND_MOBILITY,
+ LTE_RRC_STATE_ATMPT_INBND_MOBILITY,
+ LTE_RRC_STATE_LIMIT_SERVICE
+} em_lte_rrc_state_enum;
+
+typedef enum
+{
+ LTE_RRC_CAUSE_EST_EMERGENCY,
+ LTE_RRC_CAUSE_EST_HIGH_PRIO_ACC,
+ LTE_RRC_CAUSE_EST_MT_ACC,
+ LTE_RRC_CAUSE_EST_MO_SIGNAL,
+ LTE_RRC_CAUSE_EST_MO_DATA,
+ LTE_RRC_CAUSE_REEST_RECFG_FAIL,
+ LTE_RRC_CAUSE_REEST_HO_FAIL,
+ LTE_RRC_CAUSE_REEST_OTHER_FAIL,
+ LTE_RRC_CAUSE_REL_OTHER_RECFG_FAIL,
+ LTE_RRC_CAUSE_REL_CONN_FAIL_IRAT_RESEL,
+ LTE_RRC_CAUSE_REL_CONN_FAIL_T311_EXP,
+ LTE_RRC_CAUSE_REL_CONN_FAIL_CELL_NOT_SUIT,
+ LTE_RRC_CAUSE_REL_CONN_FAIL_REEST_REJ,
+ LTE_RRC_CAUSE_REL_LOAD_BAL_TAU_REQD,
+ LTE_RRC_CAUSE_REL_OTHER,
+ LTE_RRC_CAUSE_REL_T310_EXP,
+ LTE_RRC_CAUSE_REL_RND_ACC,
+ LTE_RRC_CAUSE_REL_MAX_RLC_RETRANS,
+ LTE_RRC_CAUSE_REL_SUCC_MOB_FROM_EUTRAN,
+ LTE_RRC_CAUSE_EST_FAIL_NO_RESP_FROM_CELL,
+ LTE_RRC_CAUSE_EST_FAIL_REJ,
+ LTE_RRC_CAUSE_EST_FAIL_CELL_RESEL,
+ LTE_RRC_CAUSE_EST_FAIL_ABORTED,
+ LTE_RRC_CAUSE_EST_FAIL_CELL_BARRED,
+ LTE_RRC_CAUSE_EST_FAIL_T300_EXP,
+ LTE_RRC_CAUSE_EST_FAIL_OTHER,
+ LTE_RRC_CAUSE_EST_MO_CALL,
+ LTE_RRC_CAUSE_REEST_CMPL,
+ LTE_RRC_CAUSE_RESEL_FAIL,
+ LTE_RRC_CAUSE_ENTER_LTE_FROM_STBY,
+ LTE_RRC_CAUSE_ENTER_STBY,
+ LTE_RRC_CAUSE_ABORT,
+ LTE_RRC_CAUSE_EST_MO_VOLTE_CALL,
+ LTE_RRC_CAUSE_REL_CSFB_HIGH,
+ LTE_RRC_CAUSE_NO_SERVICE = 254,
+ LTE_RRC_CAUSE_NA = 255
+} em_lte_rrc_cause_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined the state for +CUSATS:<UICC_STATE> report
+*****************************************************************************/
+
+typedef enum
+{
+ CUSATS_BEFORE_PROFILE_DL, // Only used for +CUSATA: <UICC_state>
+ CUSATS_UICC_START_HALTED,
+ CUSATS_PROFILE_DL_COMPLETED,
+ CUSATS_AWAITING_PIN_VERIFY,
+ CUSATS_UICC_ACTIVE
+}cusats_uicc_state_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for status of executed 3/4G full band search before
+* EAS sends CELLSELECT_IND to ENAS with NO_CELL
+*****************************************************************************/
+typedef enum
+{
+ FULL_BAND_SEARCHED_FALSE = 0,
+ FULL_BAND_SEARCHED_TRUE,
+ FULL_BAND_SEARCHED_UNKNOWN
+} full_band_searched_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for the type of iRAT
+*****************************************************************************/
+typedef enum
+{
+ AP_BASED_IRAT,
+ MD_BASED_IRAT,
+ MD_BASED_IRAT_LCG,
+ CDMA_ONLY_MODE //no effect on LWG modem, it is used in CDMA modem
+}l4c_irat_type_enum;
+
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for result of AT+ECMSS
+*****************************************************************************/
+typedef enum
+{
+ CMSS_UNABLE_TO_GET_PDU = 0,
+ CMSS_OPERATION_SUCCESS = 1,
+ CMSS_FAIL_OVER_CS_GET_PDU_SUCCESS = 2
+} ecmss_result_type_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for the result of set AUX PLMN
+*****************************************************************************/
+typedef enum
+{
+ SET_AUX_PLMN_SUCCESSFUL = 0,
+ SET_AUX_PLMN_FAIL = 1
+} set_aux_plmn_result_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for the result of set MRU command
+*****************************************************************************/
+typedef enum
+{
+ SET_MRU_SUCCESSFUL = 0,
+ SET_MRU_INVALID_CHANNEL = 1,
+ SET_MRU_INVALID_RAT = 2,
+ SET_MRU_INVALID_PLMN = 3
+} set_mru_result_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for the reason of RATCM trigger GAS to do the init procedure
+* Different reason will lead to different init flow
+* This is also used for RAC init procedure and its related modules
+*****************************************************************************/
+typedef enum
+{
+ POWER_ON,
+ SIM_SWITCH,
+ DYNAMIC_SBP
+} init_cause_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for reconfigue type of re-init procedure triggered
+* by modem itself.
+*****************************************************************************/
+typedef enum
+{
+ RECONFIG_SIM_SWITCH = 1,
+ RECONFIG_SBP_CHANGE = 2,
+ RECONFIG_DUPLEX_MODE = 4,
+ RECONFIG_IMS_CHANGE = 8,
+
+ RECONFIG_PRE_DSBP_CHANGE = 0x10,
+ RECONFIG_DSBP_CHANGE = 0x20,
+ RECONFIG_PRE_DSBP_CHANGE_ALL = 0x40,
+ RECONFIG_DSBP_CHANGE_ALL = 0x80,
+
+ RECONFIG_DSBP_ALL_RF_OFF= 0x100,
+ RECONFIG_DSBP_ALL_RF_ON = 0x200,
+
+ RECONFIG_DSBP_NOT_OCCUR = 0x400, // indicates no DSBP Reconfigure for correspondign SIM Ready
+
+} l4c_me_reconfig_enum;
+
+// [MD DSBP] temp. usage before AP is ready, should be deleted after MD DSBP is ready
+#define _MD_DSBP_ 1
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for cause of RF_OFF_REQ
+*****************************************************************************/
+typedef enum
+{
+ RFOFF_CAUSE_UNSPECIFIED = 0, /* Default value */
+ RFOFF_CAUSE_DUPLEX_MODE = 1, /* RF off cause when executing duplex mode (e.g. receiving +ECSRA) */
+ RFOFF_CAUSE_FLIGHT_MODE = 2, /* RF off cause when UE enter into flight mode (triggered by user) */
+ RFOFF_CAUSE_SIM_SWITCH = 3, /* RF off cause when performaing SIM switch */
+ RFOFF_CAUSE_DSBP = 4, /* RF off cause when performing DSBP */
+ RFOFF_CAUSE_MAX = RFOFF_CAUSE_DSBP,
+} rfoff_cause_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for RF on/off usage of L4 and Middleman modules
+*****************************************************************************/
+typedef enum
+{
+ L4_RF_OFF = 0,
+ L4_RF_ON = 1,
+} l4_rf_state_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for SIM on/off usage of L4 and Middleman modules
+*****************************************************************************/
+typedef enum
+{
+ L4_SIM_OFF = 0,
+ L4_SIM_ON = 1,
+} l4_sim_state_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for tools to identify modem features.
+*****************************************************************************/
+typedef enum
+{
+ MODEM_LR11 = 1,
+ MODEM_LR12 = 2,
+ MODEM_GEN93= 3
+} ps_tool_info_enum;
+
+typedef enum{
+ SIGNAL_MODULATION_BPSK,
+ SIGNAL_MODULATION_QPSK,
+ SIGNAL_MODULATION_8PSK,
+ SIGNAL_MODULATION_16QAM,
+ SIGNAL_MODULATION_32QAM,
+ SIGNAL_MODULATION_64QAM,
+ SIGNAL_MODULATION_INVALID = 0xFF
+} signal_modulation_enum;
+
+typedef enum
+{
+ CA_CONFIGURATION,
+ CA_ACTIVATION
+} ca_info_enum;
+
+typedef enum
+{
+ CA_CONFIGURED,
+ CA_NOT_CONFIGURED,
+ CA_ACTIVATED,
+ CA_DEACTIVATED
+} ca_state_enum;
+
+typedef enum
+{
+ CA_ICON_BY_CONFIG,
+ CA_ICON_BY_ACTIVATION
+} ca_icon_display_mode_enum;
+
+typedef enum
+{
+ GMSS_RAT_INVALID = 0, /* Invalid RAT */
+ GMSS_RAT_GSM = 1, /* GSM */
+ GMSS_RAT_UMTS = 2, /* UMTS */
+ GMSS_RAT_GSM_UMTS = GMSS_RAT_GSM | GMSS_RAT_UMTS, /* UMTS & GSM*/
+ GMSS_RAT_LTE = 4, /* LTE */
+ GMSS_RAT_GSM_LTE = GMSS_RAT_GSM | GMSS_RAT_LTE, /* LTE & UMTS*/
+ GMSS_RAT_UMTS_LTE = GMSS_RAT_UMTS | GMSS_RAT_LTE, /* LTE & GSM*/
+ GMSS_RAT_GSM_UMTS_LTE = GMSS_RAT_GSM_UMTS | GMSS_RAT_LTE, /* LTE & UMTS & GSM */
+ GMSS_RAT_CDMA2000_1xRTT = 32, /* CDMA2000 1xRTT */
+ GMSS_RAT_CDMA2000_HRPD = 64, /* CDMA2000 HRPD (1xEV-DO) */
+ GMSS_RAT_3GPP2_ALL = GMSS_RAT_CDMA2000_1xRTT | GMSS_RAT_CDMA2000_HRPD, /* All 3GPP2 access technology */
+ GMSS_RAT_C2K = GMSS_RAT_3GPP2_ALL,
+ GMSS_RAT_GSM_C2K = GMSS_RAT_GSM | GMSS_RAT_C2K,
+ GMSS_RAT_UMTS_C2K = GMSS_RAT_UMTS | GMSS_RAT_C2K,
+ GMSS_RAT_LTE_C2K = GMSS_RAT_LTE | GMSS_RAT_C2K,
+ GMSS_RAT_GSM_LTE_C2K = GMSS_RAT_GSM_LTE | GMSS_RAT_C2K,
+ GMSS_RAT_UMTS_LTE_C2K = GMSS_RAT_UMTS_LTE | GMSS_RAT_C2K,
+ GMSS_RAT_GSM_UMTS_C2K = GMSS_RAT_GSM_UMTS | GMSS_RAT_C2K,
+ GMSS_RAT_GSM_UMTS_LTE_C2K = GMSS_RAT_GSM_UMTS_LTE | GMSS_RAT_C2K,
+
+
+ GMSS_RAT_NR = 128, /* New Radio */
+ GMSS_RAT_LTE_NR = GMSS_RAT_LTE | GMSS_RAT_NR,
+ GMSS_RAT_GSM_NR = GMSS_RAT_GSM | GMSS_RAT_NR,
+ GMSS_RAT_UMTS_NR = GMSS_RAT_UMTS | GMSS_RAT_NR,
+ GMSS_RAT_GSM_UMTS_NR = GMSS_RAT_GSM_UMTS | GMSS_RAT_NR,
+ GMSS_RAT_GSM_LTE_NR = GMSS_RAT_GSM_LTE | GMSS_RAT_NR,
+ GMSS_RAT_UMTS_LTE_NR = GMSS_RAT_UMTS_LTE | GMSS_RAT_NR,
+ GMSS_RAT_NR_C2K= GMSS_RAT_NR | GMSS_RAT_C2K,
+ GMSS_RAT_GSM_NR_C2K = GMSS_RAT_GSM_NR | GMSS_RAT_C2K,
+ GMSS_RAT_UMTS_NR_C2K = GMSS_RAT_UMTS_NR | GMSS_RAT_C2K,
+ GMSS_RAT_LTE_NR_C2K = GMSS_RAT_LTE_NR | GMSS_RAT_C2K,
+ GMSS_RAT_GSM_UMTS_NR_C2K = GMSS_RAT_GSM_UMTS_NR | GMSS_RAT_C2K,
+ GMSS_RAT_GSM_LTE_NR_C2K = GMSS_RAT_GSM_LTE_NR | GMSS_RAT_C2K,
+ GMSS_RAT_UMTS_LTE_NR_C2K = GMSS_RAT_UMTS_LTE_NR | GMSS_RAT_C2K,
+ GMSS_RAT_GSM_UMTS_LTE_NR = GMSS_RAT_GSM_UMTS_LTE | GMSS_RAT_NR,
+ GMSS_RAT_GSM_UMTS_LTE_NR_C2K = GMSS_RAT_GSM_UMTS_LTE_NR | GMSS_RAT_C2K,
+ GMSS_RAT_3GPP_ALL = GMSS_RAT_GSM_UMTS_LTE_NR /* All 3GPP access technology */
+ } gmss_rat_enum;
+
+typedef enum
+{
+ EMC_SCAN_REQ_SOURCE_GMSS = 0,
+ EMC_SCAN_REQ_SOURCE_VDM = 1,
+ EMC_SCAN_REQ_MAX
+}emc_scan_source_enum;
+
+typedef enum
+{
+ UL_THROTTLE_NO_ACTION = 0,
+ UL_THROTTLE_ONGOING,
+ UL_THROTTLE_ABORTING
+} l4c_ipcore_ul_throttle_action_enum;
+
+typedef enum
+{
+ L4_PS_NULL_CONFIG = 0,
+ L4_PS_ATTACH_CONFIG = 1,
+ L4_PS_DETACH_CONFIG = 2
+} l4_ps_type_config_enum;
+
+typedef enum
+{
+ L4_PS_CONFIG_FAIL = 0,
+ L4_PS_CONFIG_SUCCESS = 1,
+
+ /* For single PS project, another SIM PS detach action is not complete.
+ Inhereited from +CME ERROR: 4111 for AT+EGTYPE=4 */
+ L4_PS_CONFIG_DUAL_PS_ATTACH_CONFLICT = 4111,
+
+ /* For single PS project, cannot set both SIM to PS attach
+ Inherited from +CME ERRPR: 4112 for AT+EGTYPE=4 */
+ L4_PS_CONFIG_DUAL_ALWAYS_ATTACH_CONFLICT = 4112
+} l4_ps_config_result_enum;
+
+typedef enum
+{
+ SDM_RETRY_NONE = 0,
+ SDM_RETRY_CS_ONLY,
+ SDM_RETRY_IMS_ONLY,
+ SDM_RETRY_WIFI_CS_ONLY,
+ SDM_RETRY_PREFER_CS_TEHN_IMS,
+ SDM_RETRY_PREFER_IMS_TEHN_CS,
+ SDM_RETRY_NO_PREFERENCE,
+}sdm_retry_domain_preference_enum;
+
+typedef struct
+{
+ sdm_retry_domain_preference_enum when_TR1M_expires;
+}sdm_special_retry_setting;
+
+typedef struct
+{
+ kal_uint16 max_cs_trial_num;
+ kal_uint16 max_ims_trial_num;
+ kal_uint16 max_total_trial_num;
+ sdm_retry_domain_preference_enum general_retry_pref_for_cs_fail;
+ sdm_retry_domain_preference_enum general_retry_pref_for_ims_fail;
+ sdm_special_retry_setting special_retry_pref;
+}prefer_retry_domain_setting_struct;
+
+/* Procedure enums for PAM procedures */
+typedef enum {
+ PAM_PROC_NONE,
+ PAM_PRI_PDP_ACT,
+ PAM_SEC_PDP_ACT,
+ PAM_PDP_MODIFY,
+ PAM_PDP_MT_DEACT,
+ PAM_PDP_MO_DEACT
+} pam_procedure_enum ;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined for IA APN change cases.
+*****************************************************************************/
+
+// preserved to wait the removal of nwsel_eval_ia_apn_change_req_struct in nwsel_eval_struct.h
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#else
+
+typedef enum
+{
+ IA_APN_CHANGE_NAME = 0, /* IA APN name change, NWSEL will judge if need to enable EUTRAN */
+ IA_APN_CHANGE_PARAMETER, /* IA APN parameter change and previous attach failure due to wrong APN setting with corresponding cause, need to enable EUTRAN */
+ IA_APN_CHANGE_OTHER, /* Any IA APN change other than above 2 causes and previous attach failure due to wrong APN setting */
+ IA_APN_CHANGE_HANDOVER, /* need to enable EUTRAN and trigger a handover attach with corresponding APN*/
+ IA_APN_CHANGE_IMS_RELEASED, /* IA APN is IMS, IMS is released from WiFi. Need to enable EUTRAN */
+ IA_APN_CHANGE_IA_SET /* Align EIAAPN set timing, to enable EUTRAN */
+} ia_apn_change_cause_enum;
+
+#endif
+
+typedef enum
+{
+/******North America******/
+ EMM_OP_ATT = 0, //311410
+ EMM_OP_VZW, //311480
+ EMM_OP_SPRINT, //310120
+ EMM_OP_TMO_US, //310026,310160,310490
+ EMM_OP_TELCEL, //334020
+
+/******Sounth America*****/
+ EMM_OP_MOVISTAR, //71606
+
+/******China**************/
+ EMM_OP_CMCC, //46000,46002,46004,46007,46008
+ EMM_OP_CU, //46001,46006
+ EMM_OP_CT, //46003,46011
+
+/******Taiwan*************/
+ EMM_OP_CHT, //46692
+ EMM_OP_FAR_EAST, //46601
+ EMM_OP_TWN, //46697
+
+/******Asia Others********/
+ EMM_OP_TURKCELL, //28601
+ EMM_OP_AWN, //52003
+ EMM_OP_VDF_INDIA, //40401,40405,40411,40413,40415,40420,40427,40430,40443,40446,40460,40484,40486,40488
+ //40566,40567,405750,405751,405752,405753,405754,405755,405756
+ EMM_OP_BAL_INDIA, //40402,40403,40406,40410,40416,40431,40440,40445,40449,40470,40490,40492,40493,40494,
+ //40495,40496,40497,40498,40551,40552,40553,40554,40555,40556
+ EMM_OP_OOREDOO, //41405
+ EMM_OP_KT, //45002,45008
+ EMM_OP_RJIO_INDIA, //405840,405854,405855,405856,405857,405858,405859,405860-405869,405870-405874
+ EMM_OP_PARTNER, //42501
+
+/*******Europe***********/
+ EMM_OP_VDF_PORTUGAL, //26801
+ EMM_OP_SEATEL, //45611
+
+/**********South Korea*************/
+ EMM_OP_SKT, //45005,45012
+ EMM_OP_LGU, //45006
+
+ EMM_OP_NONE
+} emm_op_enum;
+
+typedef enum
+{
+/******North America******/
+ VGMM_OP_ATT = 0, //311410
+ VGMM_OP_VZW, //311480
+ VGMM_OP_SPRINT, //310120
+ VGMM_OP_TMO_US, //310026,310160,310490
+ VGMM_OP_TELCEL, //334020
+
+/******Sounth America*****/
+ VGMM_OP_MOVISTAR, //71606
+
+/******China**************/
+ VGMM_OP_CMCC, //46000,46002,46004,46007,46008
+ VGMM_OP_CU, //46001,46006
+ VGMM_OP_CT, //46003,46011
+
+/******Taiwan*************/
+ VGMM_OP_CHT, //46692
+ VGMM_OP_FAR_EAST, //46601
+ VGMM_OP_TWN, //46697
+
+/******Asia Others********/
+ VGMM_OP_TURKCELL, //28601
+ VGMM_OP_AWN, //52003
+ VGMM_OP_VDF_INDIA, //40401,40405,40411,40413,40415,40420,40427,40430,40443,40446,40460,40484,40486,40488
+ //40566,40567,405750,405751,405752,405753,405754,405755,405756
+ VGMM_OP_BAL_INDIA, //40402,40403,40406,40410,40416,40431,40440,40445,40449,40470,40490,40492,40493,40494,
+ //40495,40496,40497,40498,40551,40552,40553,40554,40555,40556
+ VGMM_OP_OOREDOO, //41405
+ VGMM_OP_KT, //45002,45008
+ VGMM_OP_RJIO_INDIA, //405840,405854,405855,405856,405857,405858,405859,405860-405869,405870-405874
+
+/*******Europe***********/
+ VGMM_OP_VDF_PORTUGAL, //26801
+ VGMM_OP_SEATEL, //45611
+ VGMM_OP_NONE
+} vgmm_op_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is defined to sync 27.007 <AcT> definition for +CxREG command
+*****************************************************************************/
+typedef enum
+{
+ ACCESS_TECH_GSM = 0,
+ ACCESS_TECH_GSM_COMPACT = 1,
+ ACCESS_TECH_UTRAN = 2,
+ ACCESS_TECH_GSM_EGPRS = 3,
+ ACCESS_TECH_UTRAN_HSDPA = 4,
+ ACCESS_TECH_UTRAN_HSUPA = 5,
+ ACCESS_TECH_UTRAN_HSDPA_HSUPA = 6,
+ ACCESS_TECH_EUTRAN = 7,
+ ACCESS_TECH_EC_GSM_IOT = 8,
+ ACCESS_TECH_EUTRAN_NB_IOT = 9,
+ ACCESS_TECH_EUTRAN_5GCN = 10,
+ ACCESS_TECH_NR_5GCN = 11,
+ ACCESS_TECH_NR_EPS = 12,
+ ACCESS_TECH_NG_RAN = 13,
+ ACCESS_TECH_EUTRAN_NR_DUAL_CONNECTION = 14, // ENDC
+ ACCESS_TECH_MAX,
+ ACCESS_TECH_INVALID = 0xff,
+} access_technology_enum;
+
+typedef enum {
+ NWSEL_STATUS_IND_UPDATE_SEARCHING = 1,
+ /* NWSEL end search list, and report final state.
+ No service and limited service (acceptable cell) are known by NWSEL only. */
+ NWSEL_STATUS_IND_IN_NO_SERVICE = 2,
+ NWSEL_STATUS_IND_CAMP_ON_CELL = 3, // limited or normal service
+ NWSEL_STATUS_IND_IN_ABNORMAL_STATE = 4, // abnormal LU
+ NWSEL_STATUS_IND_IN_LIMITED_SERVICE = 5,
+} nwsel_status_enum;
+
+typedef enum {
+ NO_RESULT,
+ ATTACH_CNF,
+ DETACH_IND,
+} nas_sv_attach_detach_result_type_enum;
+
+#ifdef __GEMINI__
+
+typedef enum
+{
+ ABORT_SUCCESS = 0,
+ RETRY_AFTER_IRAT
+
+} rsim_auth_abort_result_enum;
+#endif
+
+//plz keep synced with ims_access_rat_enum in ims_interface_md.h
+typedef enum
+{
+ SCBM_RAT_LTE = 0,
+ SCBM_RAT_WIFI,
+ SCBM_RAT_EHRPD,
+ SCBM_RAT_GSM,
+ SCBM_RAT_UMTS,
+ SCBM_RAT_NUM
+} scbm_rat_enum;
+
+typedef enum
+{
+ EXIT_SCBM_INVALID,
+ EXIT_SCBM_TIMER_EXPIRE, //exit scbm on timer expiry
+ EXIT_SCBM_NORMAL_CALL, //exit scbm due to normal call
+ EXIT_SCBM_ECC_CALL, //exit scbm due to ECC (shall be start ECBM as instead)
+ EXIT_SCBM_SECOND_T911, //exit scbm due to 2nd T911 (shall be re-started soon after)
+}exit_scbm_reason_enum;
+
+typedef enum
+{
+ MD_SCBM_EXIT, //MD reports scbm is exited
+ MD_SCBM_ENTER, //MD reports scbm is entered
+ MD_SCBM_DISABLE, //MD reports scbm is disabled
+ MD_SCBM_REINIT_TIMER, //MD reports scbm timer need to be re-init
+}md_scbm_status_enum;
+
+typedef enum
+{
+ VG_OPTION1 = 0x01, // ENAS + LTE
+ VG_OPTION2 = 0x02, // 5G NAS + NR
+ VG_OPTION3 = 0x04, // ENAS + LTE + NR
+ VG_OPTION1_OPTION2 = VG_OPTION1 | VG_OPTION2,
+ VG_OPTION1_OPTION3 = VG_OPTION1 | VG_OPTION3,
+ VG_OPTION1_OPTION2_OPTION3 = VG_OPTION1 | VG_OPTION2 | VG_OPTION3,
+ VG_ENDC = VG_OPTION3,
+ VG_OPTION4 = 0x08, // 5G NAS + NR + ELTE
+ VG_NEDC = VG_OPTION4,
+ VG_OPTION5 = 0x10, // 5G NAS + ELTE
+ VG_OPTION7 = 0x40, // 5G NAS + ELTE + NR
+ VG_NG_ENDC = VG_OPTION7,
+ VG_OPTION2_OPTION3 = VG_OPTION2 | VG_OPTION3,
+ VG_OPTION2_OPTION3_OPTION5 = VG_OPTION2_OPTION3 | VG_OPTION5,
+ VG_OPTION1_OPTION2_OPTION3_OPTION5 = VG_OPTION1 | VG_OPTION2 | VG_OPTION3 | VG_OPTION5,
+} vg_option_enum;
+
+typedef enum
+{
+ GSM_CAPABILITY = 0x01,
+} rat_capability_enum;
+
+#define VGSM_MAX_QFI_NUM 64
+
+typedef enum {
+ VGSM_FLOW_ACTION_EST,
+ VGSM_FLOW_ACTION_MOD,
+ VGSM_FLOW_ACTION_REL,
+
+ VGSM_MAX_NUM_OF_FLOW_ACTION,
+} vgsm_flow_action_enum;
+
+typedef enum {
+ VGSM_FLOW_STATE_INACTIVE,
+ VGSM_FLOW_STATE_ACTIVE,
+ VGSM_MAX_NUM_OF_FLOW_STATE,
+} vgsm_flow_state_enum;
+
+typedef enum {
+ ALWAYS_ON_PDU_SESSION_IND_NOT_ALLOWED = 0,
+ ALWAYS_ON_PDU_SESSION_IND_REQUIRED = 1,
+
+ ALWAYS_ON_PDU_SESSION_IND_ENUM_MAX,
+} always_on_pdu_session_ind_enum;
+
+typedef enum {
+ ALWAYS_ON_PDU_SESSION_REQ_NOT_REQUESTED = 0,
+ ALWAYS_ON_PDU_SESSION_REQ_REQUESTED = 1,
+
+ ALWAYS_ON_PDU_SESSION_REQ_ENUM_MAX,
+} always_on_pdu_session_req_enum;
+
+typedef enum {
+ PDUS_ACCESS_TYPE_3GPP,
+ PDUS_ACCESS_TYPE_N3GPP,
+ PDUS_ACCESS_TYPE_ANY,
+ PDUS_ACCESS_TYPE_MAX_NUM,
+} pdus_access_type_enum;
+
+typedef enum {
+ REL_REQ_BEHAVIOR_REGULAR_RELEASE,
+ REL_REQ_BEHAVIOR_LOCAL_RELEASE_WITHOUT_REGISTRATION_UPDATE,
+ REL_REQ_BEHAVIOR_LOCAL_RELEASE_WITH_REGISTRATION_UPDATE,
+} rel_req_behavior_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* Secondary Cell Group connected status, used by EN-DC oe NE-DC
+*****************************************************************************/
+typedef enum
+{
+ INDICATED_NR_SCG_STATUS_NO_UPDATE = 0, // recipient could drop the info
+ INDICATED_NR_SCG_STATUS_DISCONNECTED,
+ INDICATED_NR_SCG_STATUS_CONNECTED,
+} indicated_nr_scg_status_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* NRRC state
+*****************************************************************************/
+
+typedef enum
+{
+ INDICATED_NRRC_STATE_IDLE,
+ INDICATED_NRRC_STATE_CONNECTED,
+ INDICATED_NRRC_STATE_INACTIVE,
+ INDICATED_NRRC_STATE_ENDC,
+} indicated_nrrc_state_enum;
+
+typedef enum
+{
+ VDM_CALL_STATUS_FIRST_CALL_ATTEMPT = 0x01,
+ VDM_CALL_STATUS_FIRST_IMS_CALL_ATTEMPT = 0x02,
+ VDM_CALL_STATUS_FIRST_IMS_CALL_CONNECTED = 0x04,
+ VDM_CALL_STATUS_LAST_IMS_CALL_DISCONNECTED = 0x08, // connected ims call -> disconnected
+ VDM_CALL_STATUS_ALL_IMS_CALL_END = 0x10,
+ VDM_CALL_STATUS_ALL_CALL_END = 0x20,
+ VDM_CALL_STATUS_IMS_GROUP = VDM_CALL_STATUS_FIRST_IMS_CALL_ATTEMPT | VDM_CALL_STATUS_FIRST_IMS_CALL_CONNECTED | VDM_CALL_STATUS_LAST_IMS_CALL_DISCONNECTED | VDM_CALL_STATUS_ALL_IMS_CALL_END,
+ VDM_CALL_STATUS_ALL = VDM_CALL_STATUS_IMS_GROUP | VDM_CALL_STATUS_FIRST_CALL_ATTEMPT | VDM_CALL_STATUS_ALL_CALL_END,
+} vdm_call_status_enum;
+
+typedef kal_uint8 op_feature_bitmap;
+
+typedef enum
+{
+ OP_FEATURE_NONE = 0,
+ OP_FEATURE_VG_OPTION2_DISABLED = 1<<0, // 1
+ OP_FEATURE_VG_OPTION3_DISABLED = 1<<1, // 2
+ OP_FEATURE_PREFER_ENDC = 1<<2, // 4
+
+ OP_FEATURE_GSM_SUNSET = 1<<3, // 8
+ OP_FEATURE_WCDMA_SUNSET = 1<<4, // 16
+ OP_FEATURE_UMTS_SUNSET = 1<<5, // 32
+ OP_FEATURE_SA_STORED_ONLY_SEARCH = 1<<6, // 64
+ OP_FEATURE_ENDC_BEFORE_SA_SEARCH = 1<<7, // 128
+ OP_FEATURE_END = OP_FEATURE_ENDC_BEFORE_SA_SEARCH // should be the last entry
+} op_feature_enum;
+
+
+/*****************************************************************************
+* SCG Event type
+*****************************************************************************/
+typedef enum {
+ SCG_EVENT_NONE = 0,
+ SCG_EVENT_FAILURE, // When UE occurred SCG failure
+ SCG_EVENT_RELEASE, // Whatever it is released by UE or NW
+} scg_event_enum;
+
+/*****************************************************************************
+* DESCRIPTION
+* PLMN operation
+*****************************************************************************/
+typedef enum {
+ SET_PLMN_FREQ_OPERATION_REMOVE_ALL,
+ SET_PLMN_FREQ_OPERATION_UPDATE
+} set_plmn_freq_operation_enum;
+
+/*****************************************************************************
+* For globalized MAX CID/PSI definition
+*****************************************************************************/
+#define MAX_PS_CID_NUM (MAX_NUM_OF_SUPPORTED_QOS_FLOW) // max cid number supported in AT command (bearer/flow level)
+#define MAX_PS_PDN_NUM (MAX_L4_PS_PDN_NUM) // max pdn counts supported in AT command (PDN/PDUS level)
+
+#define PS_NULL_CID (0xFF)
+#define PS_CID_NOT_ALLOCATED (0xFE)
+#define PS_NULL_PSI (0)
+
+#define PS_MIN_CID (0)
+#define PS_MAX_CID (MAX_PS_CID_NUM)
+#define PS_MIN_PSI (1)
+#define PS_MAX_PSI (L4_PS_MAX_PSI)
+
+/*****************************************************************************
+* DESCRIPTION
+* This enum is used by OSTD to notify MD the AP core status from Sleep Management
+*****************************************************************************/
+typedef enum
+{
+ OSTD_AP_CORE_UNKNOWN = 0,
+ OSTD_AP_CORE_SUSPEND,
+ OSTD_AP_CORE_AWAKE,
+} ostd_ap_core_status_enum;
+
+
+typedef enum
+{
+ CC_CALL_STATE_NULL = 0xC0,
+ CC_CALL_STATE_CALL_INITIATED = 0xC1,
+ CC_CALL_STATE_MM_CONN_PENDING = 0xC2,
+ CC_CALL_STATE_MO_CALL_PROC = 0xC3,
+ CC_CALL_STATE_CALL_DELIVERED = 0xC4,
+ CC_CALL_STATE_CALL_PRESENT = 0xC6,
+ CC_CALL_STATE_CALL_RECVD = 0xC7,
+ CC_CALL_STATE_CONNECT_REQ = 0xC8,
+ CC_CALL_STATE_MT_CALL_CNF = 0xC9,
+ CC_CALL_STATE_ACTIVE = 0xCA,
+ CC_CALL_STATE_DISC_REQ = 0xCB,
+ CC_CALL_STATE_DISC_IND = 0xCC,
+ CC_CALL_STATE_RELEASE_REQ = 0xD3,
+ CC_CALL_STATE_MO_MODIFY = 0xDA,
+ CC_CALL_STATE_MT_MODIFY = 0xDB,
+ CC_CALL_STATE_CONN_IND = 0xDC,
+ CC_CALL_STATE_CC_PROMPT_PRESENT = 0xE2,
+ CC_CALL_STATE_WAIT_FOR_NW_INFO = 0xE3,
+ CC_CALL_STATE_CC_ESTAB_PRESENT = 0xE4,
+ CC_CALL_STATE_CC_ESTAB_CNF = 0xE5,
+ CC_CALL_STATE_RECALL_PRESENT = 0xE6,
+} cc_call_state_enum;
+
+#ifdef __IPC_ADAPTER__
+#define PS_IPCA_IMEI_BM(val) (0x01<<(val))
+// refer to region_type_T
+typedef enum
+{
+ PS_IPCA_REGION_WORLD = PS_IPCA_IMEI_BM(0),
+ PS_IPCA_REGION_CHINA = PS_IPCA_IMEI_BM(1),
+ PS_IPCA_REGION_GLOBAL = PS_IPCA_IMEI_BM(2),
+ PS_IPCA_REGION_JPN = PS_IPCA_IMEI_BM(3),
+ PS_IPCA_REGION_KOR = PS_IPCA_IMEI_BM(4),
+ PS_IPCA_REGION_LATIN_AMERICA = PS_IPCA_IMEI_BM(5),
+ PS_IPCA_REGION_N_AMERICA_CAN = PS_IPCA_IMEI_BM(6),
+ PS_IPCA_REGION_N_AMERICA = PS_IPCA_IMEI_BM(7),
+ PS_IPCA_REGION_N_AMERICA_3GPP2 = PS_IPCA_IMEI_BM(8),
+ PS_IPCA_REGION_USA_FACTORY = PS_IPCA_IMEI_BM(9),
+ PS_IPCA_REGION_CHN_FACTORY = PS_IPCA_IMEI_BM(10),
+ PS_IPCA_REGION_JPN_FACTORY = PS_IPCA_IMEI_BM(11),
+ PS_IPCA_REGION_KOR_FACTORY = PS_IPCA_IMEI_BM(12),
+ PS_IPCA_REGION_ETC_FACTORY = PS_IPCA_IMEI_BM(13),
+ PS_IPCA_REGION_GCF = PS_IPCA_IMEI_BM(14),
+ PS_IPCA_REGION_UNKNOWN = 0xffff
+} ps_ipca_region_enum;
+#endif
+
+/* IPC NET NW SCAN - ENUM for band */
+typedef enum
+{
+ NW_SCAN_BAND_NONE = 0,
+ NW_SCAN_LTE_BAND_1 = 1,
+ NW_SCAN_LTE_BAND_2 = 2,
+ NW_SCAN_LTE_BAND_3 = 3,
+ NW_SCAN_LTE_BAND_4 = 4,
+ NW_SCAN_LTE_BAND_5 = 5,
+ NW_SCAN_LTE_BAND_6 = 6,
+ NW_SCAN_LTE_BAND_7 = 7,
+ NW_SCAN_LTE_BAND_8 = 8,
+ NW_SCAN_LTE_BAND_9 = 9,
+ NW_SCAN_LTE_BAND_10 = 10,
+ NW_SCAN_LTE_BAND_11 = 11,
+ NW_SCAN_LTE_BAND_12 = 12,
+ NW_SCAN_LTE_BAND_13 = 13,
+ NW_SCAN_LTE_BAND_14 = 14,
+ NW_SCAN_LTE_BAND_17 = 17,
+ NW_SCAN_LTE_BAND_18 = 18,
+ NW_SCAN_LTE_BAND_19 = 19,
+ NW_SCAN_LTE_BAND_20 = 20,
+ NW_SCAN_LTE_BAND_21 = 21,
+ NW_SCAN_LTE_BAND_22 = 22,
+ NW_SCAN_LTE_BAND_23 = 23,
+ NW_SCAN_LTE_BAND_24 = 24,
+ NW_SCAN_LTE_BAND_25 = 25,
+ NW_SCAN_LTE_BAND_26 = 26,
+ NW_SCAN_LTE_BAND_27 = 27,
+ NW_SCAN_LTE_BAND_28 = 28,
+ NW_SCAN_LTE_BAND_29 = 29,
+ NW_SCAN_LTE_BAND_30 = 30,
+ NW_SCAN_LTE_BAND_31 = 31,
+ NW_SCAN_LTE_BAND_32 = 32,
+ NW_SCAN_LTE_BAND_33 = 33,
+ NW_SCAN_LTE_BAND_34 = 34,
+ NW_SCAN_LTE_BAND_35 = 35,
+ NW_SCAN_LTE_BAND_36 = 36,
+ NW_SCAN_LTE_BAND_37 = 37,
+ NW_SCAN_LTE_BAND_38 = 38,
+ NW_SCAN_LTE_BAND_39 = 39,
+ NW_SCAN_LTE_BAND_40 = 40,
+ NW_SCAN_LTE_BAND_41 = 41,
+ NW_SCAN_LTE_BAND_42 = 42,
+ NW_SCAN_LTE_BAND_43 = 43,
+ NW_SCAN_LTE_BAND_44 = 44,
+ NW_SCAN_LTE_BAND_45 = 45,
+ NW_SCAN_LTE_BAND_46 = 46,
+ NW_SCAN_LTE_BAND_47 = 47,
+ NW_SCAN_LTE_BAND_48 = 48,
+ NW_SCAN_LTE_BAND_49 = 49,
+ NW_SCAN_LTE_BAND_50 = 50,
+ NW_SCAN_LTE_BAND_51 = 51,
+ NW_SCAN_LTE_BAND_52 = 52,
+ NW_SCAN_LTE_BAND_65 = 65,
+ NW_SCAN_LTE_BAND_66 = 66,
+ NW_SCAN_LTE_BAND_67 = 67,
+ NW_SCAN_LTE_BAND_68 = 68,
+ NW_SCAN_LTE_BAND_69 = 69,
+ NW_SCAN_LTE_BAND_70 = 70,
+ NW_SCAN_LTE_BAND_71 = 71,
+ NW_SCAN_LTE_BAND_72 = 72,
+ NW_SCAN_LTE_BAND_73 = 73,
+ NW_SCAN_LTE_BAND_74 = 74,
+ NW_SCAN_LTE_BAND_75 = 75,
+ NW_SCAN_LTE_BAND_76 = 76,
+ NW_SCAN_LTE_BAND_85 = 85,
+ NW_SCAN_UMTS_BAND_1 = 101,
+ NW_SCAN_UMTS_BAND_2 = 102,
+ NW_SCAN_UMTS_BAND_3 = 103,
+ NW_SCAN_UMTS_BAND_4 = 104,
+ NW_SCAN_UMTS_BAND_5 = 105,
+ NW_SCAN_UMTS_BAND_6 = 106,
+ NW_SCAN_UMTS_BAND_7 = 107,
+ NW_SCAN_UMTS_BAND_8 = 108,
+ NW_SCAN_UMTS_BAND_9 = 109,
+ NW_SCAN_UMTS_BAND_10 = 110,
+ NW_SCAN_UMTS_BAND_11 = 111,
+ NW_SCAN_UMTS_BAND_12 = 112,
+ NW_SCAN_UMTS_BAND_13 = 113,
+ NW_SCAN_UMTS_BAND_14 = 114,
+ NW_SCAN_UMTS_BAND_19 = 119,
+ NW_SCAN_UMTS_BAND_20 = 120,
+ NW_SCAN_UMTS_BAND_21 = 121,
+ NW_SCAN_UMTS_BAND_22 = 122,
+ NW_SCAN_UMTS_BAND_25 = 125,
+ NW_SCAN_UMTS_BAND_26 = 126,
+ NW_SCAN_UMTS_BAND_32 = 132,
+ NW_SCAN_UMTS_BAND_33 = 133,
+ NW_SCAN_UMTS_BAND_34 = 134,
+ NW_SCAN_UMTS_BAND_35 = 135,
+ NW_SCAN_UMTS_BAND_36 = 136,
+ NW_SCAN_UMTS_BAND_37 = 137,
+ NW_SCAN_UMTS_BAND_38 = 138,
+ NW_SCAN_UMTS_BAND_39 = 139,
+ NW_SCAN_UMTS_BAND_40 = 140,
+ NW_SCAN_GSM_BAND_850 = 151,
+ NW_SCAN_GSM_BAND_900 = 152,
+ NW_SCAN_GSM_BAND_1800= 153,
+ NW_SCAN_GSM_BAND_1900= 154,
+ NW_SCAN_NR_BAND_1 = 1001,
+ NW_SCAN_NR_BAND_2 = 1002,
+ NW_SCAN_NR_BAND_3 = 1003,
+ NW_SCAN_NR_BAND_4 = 1004,
+ NW_SCAN_NR_BAND_5 = 1005,
+ NW_SCAN_NR_BAND_6 = 1006,
+ NW_SCAN_NR_BAND_7 = 1007,
+ NW_SCAN_NR_BAND_8 = 1008,
+ NW_SCAN_NR_BAND_9 = 1009,
+ NW_SCAN_NR_BAND_10 = 1010,
+ NW_SCAN_NR_BAND_11 = 1011,
+ NW_SCAN_NR_BAND_12 = 1012,
+ NW_SCAN_NR_BAND_13 = 1013,
+ NW_SCAN_NR_BAND_14 = 1014,
+ NW_SCAN_NR_BAND_15 = 1015,
+ NW_SCAN_NR_BAND_16 = 1016,
+ NW_SCAN_NR_BAND_17 = 1017,
+ NW_SCAN_NR_BAND_18 = 1018,
+ NW_SCAN_NR_BAND_19 = 1019,
+ NW_SCAN_NR_BAND_20 = 1020,
+ NW_SCAN_NR_BAND_21 = 1021,
+ NW_SCAN_NR_BAND_22 = 1022,
+ NW_SCAN_NR_BAND_23 = 1023,
+ NW_SCAN_NR_BAND_24 = 1024,
+ NW_SCAN_NR_BAND_25 = 1025,
+ NW_SCAN_NR_BAND_26 = 1026,
+ NW_SCAN_NR_BAND_27 = 1027,
+ NW_SCAN_NR_BAND_28 = 1028,
+ NW_SCAN_NR_BAND_29 = 1029,
+ NW_SCAN_NR_BAND_30 = 1030,
+ NW_SCAN_NR_BAND_31 = 1031,
+ NW_SCAN_NR_BAND_32 = 1032,
+ NW_SCAN_NR_BAND_33 = 1033,
+ NW_SCAN_NR_BAND_34 = 1034,
+ NW_SCAN_NR_BAND_35 = 1035,
+ NW_SCAN_NR_BAND_36 = 1036,
+ NW_SCAN_NR_BAND_37 = 1037,
+ NW_SCAN_NR_BAND_38 = 1038,
+ NW_SCAN_NR_BAND_39 = 1039,
+ NW_SCAN_NR_BAND_40 = 1040,
+ NW_SCAN_NR_BAND_41 = 1041,
+ NW_SCAN_NR_BAND_42 = 1042,
+ NW_SCAN_NR_BAND_43 = 1043,
+ NW_SCAN_NR_BAND_44 = 1044,
+ NW_SCAN_NR_BAND_45 = 1045,
+ NW_SCAN_NR_BAND_46 = 1046,
+ NW_SCAN_NR_BAND_47 = 1047,
+ NW_SCAN_NR_BAND_48 = 1048,
+ NW_SCAN_NR_BAND_49 = 1049,
+ NW_SCAN_NR_BAND_50 = 1050,
+ NW_SCAN_NR_BAND_51 = 1051,
+ NW_SCAN_NR_BAND_52 = 1052,
+ NW_SCAN_NR_BAND_53 = 1053,
+ NW_SCAN_NR_BAND_54 = 1054,
+ NW_SCAN_NR_BAND_55 = 1055,
+ NW_SCAN_NR_BAND_56 = 1056,
+ NW_SCAN_NR_BAND_57 = 1057,
+ NW_SCAN_NR_BAND_58 = 1058,
+ NW_SCAN_NR_BAND_59 = 1059,
+ NW_SCAN_NR_BAND_60 = 1060,
+ NW_SCAN_NR_BAND_61 = 1061,
+ NW_SCAN_NR_BAND_62 = 1062,
+ NW_SCAN_NR_BAND_63 = 1063,
+ NW_SCAN_NR_BAND_64 = 1064,
+ NW_SCAN_NR_BAND_65 = 1065,
+ NW_SCAN_NR_BAND_66 = 1066,
+ NW_SCAN_NR_BAND_67 = 1067,
+ NW_SCAN_NR_BAND_68 = 1068,
+ NW_SCAN_NR_BAND_69 = 1069,
+ NW_SCAN_NR_BAND_70 = 1070,
+ NW_SCAN_NR_BAND_71 = 1071,
+ NW_SCAN_NR_BAND_72 = 1072,
+ NW_SCAN_NR_BAND_73 = 1073,
+ NW_SCAN_NR_BAND_74 = 1074,
+ NW_SCAN_NR_BAND_75 = 1075,
+ NW_SCAN_NR_BAND_76 = 1076,
+ NW_SCAN_NR_BAND_77 = 1077,
+ NW_SCAN_NR_BAND_78 = 1078,
+ NW_SCAN_NR_BAND_79 = 1079,
+ NW_SCAN_NR_BAND_80 = 1080,
+ NW_SCAN_NR_BAND_81 = 1081,
+ NW_SCAN_NR_BAND_82 = 1082,
+ NW_SCAN_NR_BAND_83 = 1083,
+ NW_SCAN_NR_BAND_84 = 1084,
+ NW_SCAN_NR_BAND_85 = 1085,
+ NW_SCAN_NR_BAND_86 = 1086,
+ NW_SCAN_NR_BAND_87 = 1087,
+ NW_SCAN_NR_BAND_88 = 1088,
+ NW_SCAN_NR_BAND_89 = 1089,
+ NW_SCAN_NR_BAND_90 = 1090,
+ NW_SCAN_NR_BAND_91 = 1091,
+ NW_SCAN_NR_BAND_92 = 1092,
+ NW_SCAN_NR_BAND_93 = 1093,
+ NW_SCAN_NR_BAND_94 = 1094,
+ NW_SCAN_NR_BAND_95 = 1095,
+ NW_SCAN_NR_BAND_96 = 1096,
+ NW_SCAN_NR_BAND_97 = 1097,
+ NW_SCAN_NR_BAND_98 = 1098,
+ NW_SCAN_NR_BAND_99 = 1099,
+ NW_SCAN_NR_BAND_100 = 1100,
+ NW_SCAN_NR_BAND_101 = 1101,
+ NW_SCAN_NR_BAND_102 = 1102,
+ NW_SCAN_NR_BAND_103 = 1103,
+ NW_SCAN_NR_BAND_104 = 1104,
+ NW_SCAN_NR_BAND_105 = 1105,
+ NW_SCAN_NR_BAND_106 = 1106,
+ NW_SCAN_NR_BAND_107 = 1107,
+ NW_SCAN_NR_BAND_108 = 1108,
+ NW_SCAN_NR_BAND_109 = 1109,
+ NW_SCAN_NR_BAND_110 = 1110,
+ NW_SCAN_NR_BAND_111 = 1111,
+ NW_SCAN_NR_BAND_112 = 1112,
+ NW_SCAN_NR_BAND_113 = 1113,
+ NW_SCAN_NR_BAND_114 = 1114,
+ NW_SCAN_NR_BAND_115 = 1115,
+ NW_SCAN_NR_BAND_116 = 1116,
+ NW_SCAN_NR_BAND_117 = 1117,
+ NW_SCAN_NR_BAND_118 = 1118,
+ NW_SCAN_NR_BAND_119 = 1119,
+ NW_SCAN_NR_BAND_120 = 1120,
+ NW_SCAN_NR_BAND_121 = 1121,
+ NW_SCAN_NR_BAND_122 = 1122,
+ NW_SCAN_NR_BAND_123 = 1123,
+ NW_SCAN_NR_BAND_124 = 1124,
+ NW_SCAN_NR_BAND_125 = 1125,
+ NW_SCAN_NR_BAND_126 = 1126,
+ NW_SCAN_NR_BAND_127 = 1127,
+ NW_SCAN_NR_BAND_128 = 1128,
+ NW_SCAN_NR_BAND_129 = 1129,
+ NW_SCAN_NR_BAND_130 = 1130,
+ NW_SCAN_NR_BAND_131 = 1131,
+ NW_SCAN_NR_BAND_132 = 1132,
+ NW_SCAN_NR_BAND_133 = 1133,
+ NW_SCAN_NR_BAND_134 = 1134,
+ NW_SCAN_NR_BAND_135 = 1135,
+ NW_SCAN_NR_BAND_136 = 1136,
+ NW_SCAN_NR_BAND_137 = 1137,
+ NW_SCAN_NR_BAND_138 = 1138,
+ NW_SCAN_NR_BAND_139 = 1139,
+ NW_SCAN_NR_BAND_140 = 1140,
+ NW_SCAN_NR_BAND_141 = 1141,
+ NW_SCAN_NR_BAND_142 = 1142,
+ NW_SCAN_NR_BAND_143 = 1143,
+ NW_SCAN_NR_BAND_144 = 1144,
+ NW_SCAN_NR_BAND_145 = 1145,
+ NW_SCAN_NR_BAND_146 = 1146,
+ NW_SCAN_NR_BAND_147 = 1147,
+ NW_SCAN_NR_BAND_148 = 1148,
+ NW_SCAN_NR_BAND_149 = 1149,
+ NW_SCAN_NR_BAND_150 = 1150,
+ NW_SCAN_NR_BAND_151 = 1151,
+ NW_SCAN_NR_BAND_152 = 1152,
+ NW_SCAN_NR_BAND_153 = 1153,
+ NW_SCAN_NR_BAND_154 = 1154,
+ NW_SCAN_NR_BAND_155 = 1155,
+ NW_SCAN_NR_BAND_156 = 1156,
+ NW_SCAN_NR_BAND_157 = 1157,
+ NW_SCAN_NR_BAND_158 = 1158,
+ NW_SCAN_NR_BAND_159 = 1159,
+ NW_SCAN_NR_BAND_160 = 1160,
+ NW_SCAN_NR_BAND_161 = 1161,
+ NW_SCAN_NR_BAND_162 = 1162,
+ NW_SCAN_NR_BAND_163 = 1163,
+ NW_SCAN_NR_BAND_164 = 1164,
+ NW_SCAN_NR_BAND_165 = 1165,
+ NW_SCAN_NR_BAND_166 = 1166,
+ NW_SCAN_NR_BAND_167 = 1167,
+ NW_SCAN_NR_BAND_168 = 1168,
+ NW_SCAN_NR_BAND_169 = 1169,
+ NW_SCAN_NR_BAND_170 = 1170,
+ NW_SCAN_NR_BAND_171 = 1171,
+ NW_SCAN_NR_BAND_172 = 1172,
+ NW_SCAN_NR_BAND_173 = 1173,
+ NW_SCAN_NR_BAND_174 = 1174,
+ NW_SCAN_NR_BAND_175 = 1175,
+ NW_SCAN_NR_BAND_176 = 1176,
+ NW_SCAN_NR_BAND_177 = 1177,
+ NW_SCAN_NR_BAND_178 = 1178,
+ NW_SCAN_NR_BAND_179 = 1179,
+ NW_SCAN_NR_BAND_180 = 1180,
+ NW_SCAN_NR_BAND_181 = 1181,
+ NW_SCAN_NR_BAND_182 = 1182,
+ NW_SCAN_NR_BAND_183 = 1183,
+ NW_SCAN_NR_BAND_184 = 1184,
+ NW_SCAN_NR_BAND_185 = 1185,
+ NW_SCAN_NR_BAND_186 = 1186,
+ NW_SCAN_NR_BAND_187 = 1187,
+ NW_SCAN_NR_BAND_188 = 1188,
+ NW_SCAN_NR_BAND_189 = 1189,
+ NW_SCAN_NR_BAND_190 = 1190,
+ NW_SCAN_NR_BAND_191 = 1191,
+ NW_SCAN_NR_BAND_192 = 1192,
+ NW_SCAN_NR_BAND_193 = 1193,
+ NW_SCAN_NR_BAND_194 = 1194,
+ NW_SCAN_NR_BAND_195 = 1195,
+ NW_SCAN_NR_BAND_196 = 1196,
+ NW_SCAN_NR_BAND_197 = 1197,
+ NW_SCAN_NR_BAND_198 = 1198,
+ NW_SCAN_NR_BAND_199 = 1199,
+ NW_SCAN_NR_BAND_200 = 1200,
+ NW_SCAN_NR_BAND_201 = 1201,
+ NW_SCAN_NR_BAND_202 = 1202,
+ NW_SCAN_NR_BAND_203 = 1203,
+ NW_SCAN_NR_BAND_204 = 1204,
+ NW_SCAN_NR_BAND_205 = 1205,
+ NW_SCAN_NR_BAND_206 = 1206,
+ NW_SCAN_NR_BAND_207 = 1207,
+ NW_SCAN_NR_BAND_208 = 1208,
+ NW_SCAN_NR_BAND_209 = 1209,
+ NW_SCAN_NR_BAND_210 = 1210,
+ NW_SCAN_NR_BAND_211 = 1211,
+ NW_SCAN_NR_BAND_212 = 1212,
+ NW_SCAN_NR_BAND_213 = 1213,
+ NW_SCAN_NR_BAND_214 = 1214,
+ NW_SCAN_NR_BAND_215 = 1215,
+ NW_SCAN_NR_BAND_216 = 1216,
+ NW_SCAN_NR_BAND_217 = 1217,
+ NW_SCAN_NR_BAND_218 = 1218,
+ NW_SCAN_NR_BAND_219 = 1219,
+ NW_SCAN_NR_BAND_220 = 1220,
+ NW_SCAN_NR_BAND_221 = 1221,
+ NW_SCAN_NR_BAND_222 = 1222,
+ NW_SCAN_NR_BAND_223 = 1223,
+ NW_SCAN_NR_BAND_224 = 1224,
+ NW_SCAN_NR_BAND_225 = 1225,
+ NW_SCAN_NR_BAND_226 = 1226,
+ NW_SCAN_NR_BAND_227 = 1227,
+ NW_SCAN_NR_BAND_228 = 1228,
+ NW_SCAN_NR_BAND_229 = 1229,
+ NW_SCAN_NR_BAND_230 = 1230,
+ NW_SCAN_NR_BAND_231 = 1231,
+ NW_SCAN_NR_BAND_232 = 1232,
+ NW_SCAN_NR_BAND_233 = 1233,
+ NW_SCAN_NR_BAND_234 = 1234,
+ NW_SCAN_NR_BAND_235 = 1235,
+ NW_SCAN_NR_BAND_236 = 1236,
+ NW_SCAN_NR_BAND_237 = 1237,
+ NW_SCAN_NR_BAND_238 = 1238,
+ NW_SCAN_NR_BAND_239 = 1239,
+ NW_SCAN_NR_BAND_240 = 1240,
+ NW_SCAN_NR_BAND_241 = 1241,
+ NW_SCAN_NR_BAND_242 = 1242,
+ NW_SCAN_NR_BAND_243 = 1243,
+ NW_SCAN_NR_BAND_244 = 1244,
+ NW_SCAN_NR_BAND_245 = 1245,
+ NW_SCAN_NR_BAND_246 = 1246,
+ NW_SCAN_NR_BAND_247 = 1247,
+ NW_SCAN_NR_BAND_248 = 1248,
+ NW_SCAN_NR_BAND_249 = 1249,
+ NW_SCAN_NR_BAND_250 = 1250,
+ NW_SCAN_NR_BAND_251 = 1251,
+ NW_SCAN_NR_BAND_252 = 1252,
+ NW_SCAN_NR_BAND_253 = 1253,
+ NW_SCAN_NR_BAND_254 = 1254,
+ NW_SCAN_NR_BAND_255 = 1255,
+ NW_SCAN_NR_BAND_256 = 1256,
+ NW_SCAN_NR_BAND_257 = 1257,
+ NW_SCAN_NR_BAND_258 = 1258,
+ NW_SCAN_NR_BAND_259 = 1259,
+ NW_SCAN_NR_BAND_260 = 1260,
+ NW_SCAN_NR_BAND_261 = 1261
+} nw_scan_band_enum;
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+typedef enum{
+ NW_BLACK_LIST_OPERATOR_SUCCESS, /* read or write success */
+ NW_BLACK_LIST_NOT_SUPPORT, /* not support black list */
+ NW_BLACK_LIST_INVALID_PARAM, /* parameters is invalid */
+ NW_BLACK_LIST_OPERATOR_FAILURE /* read or write failure */
+}nw_black_list_operator_result_enum;
+#endif
+
+typedef enum
+{
+ MAIF_MCC_231 = 0, //Slovakia
+ MAIF_MCC_234 = 1, //United Kingdom
+ MAIF_MCC_240 = 2, //Sweden
+ MAIF_MCC_244 = 3, //Finland
+ MAIF_MCC_246 = 4, //Lithuania
+ MAIF_MCC_260 = 5, //Poland
+ MAIF_MCC_262 = 6, //Germany
+ MAIF_MCC_286 = 7, //Turkey
+ MAIF_MCC_293 = 8, //Slovenia
+ MAIF_MCC_310 = 9, //USA
+ MAIF_MCC_334 = 10, //Mexico
+ MAIF_MCC_404_405 = 11, //India
+ MAIF_MCC_414 = 12, //Myanmar
+ MAIF_MCC_424 = 13, //United Arab Emirates
+ MAIF_MCC_450 = 14, //South Korea
+ MAIF_MCC_454 = 15, //Hong Kong
+ MAIF_MCC_454_460 = 16, //Hong Kong + China
+ MAIF_MCC_456 = 17, //Cambodia
+ MAIF_MCC_460 = 18, //China
+ MAIF_MCC_466 = 19, //Taiwan
+ MAIF_MCC_505 = 20, //Australia
+ MAIF_MCC_525 = 21, //Singapore
+ MAIF_MCC_530 = 22, //New Zealand
+ MAIF_MCC_639 = 23, //Kenya
+ MAIF_MCC_714 = 24, //Panama
+ MAIF_MCC_732 = 25, //Colombia
+ MAIF_MCC_MAX = 26,
+} maif_mcc_enum;
+
+/* bitmap */
+typedef enum
+{
+ L4C_SIG_UNKNOWN = 0,
+ L4C_SIG_LTE_RSRP = 1,
+ L4C_SIG_LTE_RS_SNR = 2,
+ L4C_SIG_LTE_RSRQ = 4,
+} l4c_errc_handover_signal_type_enum;
+
+/* bitmap */
+typedef enum
+{
+ L4C_SIG_NR_UNKNOWN = 0,
+ L4C_SIG_NR_SS_RSRP = 1,
+ L4C_SIG_NR_SS_RSRQ = 2,
+ L4C_SIG_NR_SS_SINR = 4,
+} l4c_nrrc_handover_signal_type_enum;
+
+typedef enum
+{
+ L4C_AT_HO_SIG_LTE_RSRP = 0,
+ L4C_AT_HO_SIG_LTE_RS_SNR = 1,
+ L4C_AT_HO_SIG_UMTS_RSCP = 2,
+ L4C_AT_HO_SIG_UMTS_ECNO = 3,
+ L4C_AT_HO_SIG_LTE_RSRQ = 4,
+ L4C_AT_HO_SIG_NR_SS_RSRP = 5,
+} l4c_atcmd_urc_ho_signal_type_enum;
+
+typedef enum
+{
+ L4C_NORMAL_REPORT = 0,
+ L4C_INITIAL_REPORT = 1,
+ L4C_THRESHOLD_CROSS_REPORT = 2
+} l4c_signal_reporting_type_enum;
+
+typedef enum
+{
+ PORT_DEFAULT = 0x89,
+ PORT_UNLOCK = 0xAB,
+ PORT_LOCK = 0xCD
+}port_lock_enum;
+
+typedef enum
+{
+ PORTLOCK_READ_MODE,
+ PORTLOCK_WRITE_MODE
+}port_lock_mode_enum;
+
+typedef enum
+{
+ PORTLOCK_FAILURE,
+ PORTLOCK_SUCCESS,
+ PORTLOCK_REBOOT_REQUIRED
+}port_lock_status_rsp_enum;
+
+typedef enum
+{
+ VZW_BARRING_TIMER_TYPE_TPLMN,
+ VZW_BARRING_TIMER_TYPE_T5GNRSA,
+ VZW_BARRING_TIMER_TYPE_MAX,
+}vzw_barring_timer_type_enum;
+
+typedef enum
+{
+ DISABLE_ALLOWED_MCC_LIST,
+ ENABLE_ALLOWED_MCC_LIST
+}allowed_mcc_list_action_enum;
+
+typedef enum
+{
+ L4C_NW_DRB_STATE_REPORT_NONE = 0x00,
+ L4C_NW_DRB_STATE_REPORT_LTE = 0x01,
+ L4C_NW_DRB_STATE_REPORT_ENDC = 0x02,
+ L4C_NW_DRB_STATE_REPORT_NR = 0x04
+} l4c_nw_drb_state_enum;
+
+#endif /* _PS_PUBLIC_ENUM_H_ */
diff --git a/mcu/interface/protocol/general/ps_public_struct.h b/mcu/interface/protocol/general/ps_public_struct.h
new file mode 100644
index 0000000..3442060
--- /dev/null
+++ b/mcu/interface/protocol/general/ps_public_struct.h
@@ -0,0 +1,3090 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps_public_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file contains the ABM network internal APIs
+ * and these APIs can only be used by MMI CBM and DA
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+#ifndef _PS_PUBLIC_STRUCT_H_
+#define _PS_PUBLIC_STRUCT_H_
+
+#include "kal_public_defs.h"
+//#include "kal_non_specific_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "sim_ps_enum.h"
+#include "sim_public_enum.h"
+#include "kal_general_types.h"
+#include "sim_exported_enum.h"
+#include "l3_inc_enums_public.h"
+#include "atcmd_struct.h"
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+#include "mcd_l3_inc_struct.h"
+#endif
+#include "gmss_public.h"
+
+//used to be in mcd_l4_common.h
+extern kal_uint32 l4_pun_src_buff[180];
+extern kal_uint32 l4_pun_dest_buff[200];
+
+#if defined(__WHITE_CELL_LOCK__)
+#define MAX_NUM_BAND 40
+#else
+#define MAX_NUM_BAND 8
+#endif
+
+#define MAX_NUM_CHANNEL 32
+#define MAX_NUM_OF_SIGNAL_THRESH 10
+
+typedef struct _l4_addr_bcd_struct
+{
+ kal_uint8 addr_length;
+ kal_uint8 addr_bcd[MAX_CC_ADDR_BCD_LEN];
+} l4_addr_bcd_struct;
+
+#if (defined L1_SIM)
+#ifdef MAX_PS_NAME_SIZE
+#undef MAX_PS_NAME_SIZE
+#endif
+#define MAX_PS_NAME_SIZE (42)
+#endif
+
+typedef struct _l4_name_struct
+{
+ kal_uint8 name_length;
+ kal_uint8 name_dcs;
+ kal_uint8 name[MAX_PS_NAME_SIZE];
+} l4_name_struct;
+
+
+
+#if defined(__WIFI_SUPPORT__)
+/* WIFI test*/
+#include "wndrv_ft_types.h"
+#endif
+
+#ifdef __MULTI_LEVEL_BACKLIGHT_SUPPORT__
+#include "custom_hw_default.h"
+#endif
+
+#include "global_type.h"
+
+typedef struct l4c_result_struct
+{
+ kal_uint8 flag; /*l4c_result_enum*/
+ kal_uint16 cause;
+
+} l4c_result_struct;
+
+typedef struct
+{
+ kal_uint32 total_rx_data;
+ kal_uint32 total_tx_data;
+ kal_uint32 last_rx_data;
+ kal_uint32 last_tx_data;
+} l4c_gprs_statistics_info_struct;
+
+typedef struct
+{
+ kal_uint8 apn[MAX_APN_LEN];
+} l4c_tcm_acl_entry_struct;
+
+/* Poying: MSBB. */
+typedef struct {
+ kal_uint16 protocol_id;
+ kal_uint8 protocol_config_len;
+ kal_uint8 protocol_config[MAX_CONFIG_OPTION_CONTENT_LEN];
+} config_option_struct;
+
+typedef struct
+{
+ kal_bool is_sst_present;
+ kal_uint8 sst;
+
+ kal_bool is_sd_present;
+ kal_uint8 sd[TCM_S_NSSAI_SD_LEN];
+
+ kal_bool is_mapped_configured_sst_present;
+ kal_uint8 mapped_configured_sst;
+
+ kal_bool is_mapped_configured_sd_present;
+ kal_uint8 mapped_configured_sd[TCM_S_NSSAI_SD_LEN];
+} l4c_tcm_s_nssai_struct;
+
+typedef struct
+{
+ kal_uint8 context_id;
+ kal_uint8 apn_length;
+ kal_uint8 apn [ MAX_APN_LEN ];
+ kal_uint8 dcomp_algo; /*atci_dcomp_algo_enum*/
+ kal_uint8 hcomp_algo; /*atci_hcomp_algo_enum*/
+ pdp_addr_type_enum pdp_type; /*pdp_type_enum*/
+ pdp_addr_len_enum pdp_addr_len;
+ kal_uint8 addr_val[ MAX_PDP_ADDR_LEN ];
+ kal_uint8 ipv4addralloc;
+ kal_uint8 request_type; //R12
+ kal_uint8 p_cscf_discovery; //R10
+ kal_uint8 im_cn_signalling_flag; //R10
+ nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
+ eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
+ l4c_tcm_securepco_enum secure_pco;
+ l4c_tcm_activate_pdp_request_ipv4_mtu_enum act_pdp_with_pco_req_v4_mtu;
+ l4c_tcm_local_addr_ind_enum local_addr_ind;
+ l4c_tcm_non_ip_mtu_discovery_enum non_ip_mtu_discovery;
+ l4c_tcm_reliable_data_service_enum reliable_data_service;
+ l4c_tcm_ssc_mode_enum ssc_mode;
+ kal_bool s_nssai_present;
+ l4c_tcm_s_nssai_struct s_nssai;
+ l4c_tcm_access_type_enum access_type;
+ l4c_tcm_rqos_ind_enum rqos_ind;
+ l4c_tcm_mh6_pdu_enum mh6_pdu;
+ l4c_tcm_always_on_pdu_enum always_on_pdu;
+ kal_uint8 psi;
+ l4c_tcm_ladn_dnn_enum ladn_dnn;
+
+ /* Used for SSC Mode 3 PDU session re-restablishment in 5G. */
+ kal_bool old_psi_present;
+ kal_uint8 old_psi;
+
+ kal_bool vgpdp_type_present;
+ pdp_addr_type_enum vgpdp_type;
+ kal_bool vgapn_present;
+ kal_uint8 vgapn_length;
+ kal_uint8 vgapn[MAX_APN_LEN];
+} l4c_prim_pdp_info_struct;
+
+typedef struct
+{
+ kal_uint8 context_id;
+ pdp_addr_type_enum roaming_ip_type;
+ kal_uint8 psi;
+} l4c_extended_pdp_info_struct;
+
+
+typedef struct
+{
+ kal_uint8 apn_idx; /* apn table entry index */
+ kal_uint8 apn_length;
+ kal_uint8 apn[MAX_APN_LEN];
+ kal_uint16 inactivity_time; /* unit: minute */
+}l4c_apn_info_struct;
+
+
+typedef struct
+{
+ kal_uint8 context_id; /* child context */
+ kal_uint8 prim_context_id; /* parent context */
+ kal_uint8 dcomp_algo; /* atci_dcomp_algo_enum */
+ kal_uint8 hcomp_algo; /* atci_hcomp_algo_enum */
+ //mtk04121
+ kal_uint8 im_cn_signalling_flag; //R10
+} l4c_sec_pdp_info_struct;
+
+//mtk02219
+#if !defined(__LTE_RAT__)
+typedef struct {
+ kal_uint8 pfi;
+ kal_uint8 epi;
+ kal_uint8 src_addr_sb_net_mask_len;
+ kal_uint8 src_addr_sb_net_mask[MAX_SRC_ADDR_SBNET_MASK_LEN];
+ kal_bool prot_number_present;
+ kal_uint8 prot_number_next_hdr;
+ kal_uint8 dst_port_len;
+ kal_uint16 dst_port_range[2];
+ kal_uint8 src_port_len;
+ kal_uint16 src_port_range[2];
+ kal_bool ipsec_spi_present;
+ kal_uint32 ipsec_spi;
+ kal_uint8 tos_len;
+ kal_uint8 tos_traffic_class_mask[2];
+ kal_bool flow_label_present;
+ kal_uint32 flow_label;
+} l4c_pf_struct;
+
+typedef struct
+{
+ kal_uint8 context_id;
+ kal_uint8 tot_pf_count;
+ l4c_pf_struct pf[8]; //mtk02126 8 is the max number of packet filters in 27.007 v 7.05
+} l4c_tft_struct;
+#else
+
+//mtk02219
+typedef struct {
+ kal_uint8 pfi;
+ kal_uint8 epi;
+ kal_uint8 src_addr_sb_net_mask_len;
+ kal_uint8 src_addr_sb_net_mask[MAX_SRC_ADDR_SBNET_MASK_LEN];
+ kal_bool prot_number_present;
+ kal_uint8 prot_number_next_hdr;
+ kal_uint8 dst_port_len;
+ kal_uint16 dst_port_range[2];
+ kal_uint8 src_port_len;
+ kal_uint16 src_port_range[2];
+ kal_bool ipsec_spi_present;
+ kal_uint32 ipsec_spi;
+ kal_uint8 tos_len;
+ kal_uint8 tos_traffic_class_mask[2];
+ kal_bool flow_label_present;
+ kal_uint32 flow_label;
+} l4c_pf_struct_only_for_mmi;
+
+//mtk02219
+typedef struct
+{
+ kal_uint8 context_id;
+ kal_uint8 tot_pf_count;
+ l4c_pf_struct_only_for_mmi pf[8]; //mtk02126 8 is the max number of packet filters in 27.007 v 7.05
+} l4c_tft_struct_only_for_mmi;
+#endif
+
+typedef struct
+{
+ atci_qos_enum qos_type; /*atci_qos_enum*/
+ kal_uint8 context_id;
+ delay_class_enum delay_class; /*delay_class_enum*/
+ reliability_class_enum reliability_class; /*reliability_class_enum*/
+ peak_throughput_class peak_throughput; /*peak_throughput_class*/
+ precedence_class_enum precedence_class; /*precedence_class_enum*/
+ mean_throughput_enum mean_throughput; /*mean_throughput_enum*/
+} l4c_qos_struct;
+
+typedef struct
+{
+ atci_qos_enum qos_type; /*atci_qos_enum*/
+ kal_uint8 context_id;
+ kal_uint8 traffic_class;
+ kal_uint8 delivery_order;
+ kal_uint8 delivery_of_err_sdu;
+ kal_uint8 max_sdu_size;
+ kal_uint8 max_bitrate_up_lnk;
+ kal_uint8 max_bitrate_down_lnk;
+ kal_uint8 residual_bit_err_rate;
+ kal_uint8 sdu_err_ratio;
+ kal_uint8 transfer_delay;
+ kal_uint8 traffic_hndl_priority;
+ kal_uint8 guarntd_bit_rate_up_lnk;
+ kal_uint8 guarntd_bit_rate_down_lnk;
+ kal_uint8 signalling_indication;
+ kal_uint8 source_statistics_descriptor;
+ kal_uint8 ext_max_bitrate_down_lnk;
+ kal_uint8 ext_guarntd_bit_rate_down_lnk;
+ kal_uint8 ext_max_bitrate_up_lnk;
+ kal_uint8 ext_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext2_max_bitrate_down_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_down_lnk;
+ kal_uint8 ext2_max_bitrate_up_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_up_lnk;
+} l4c_eqos_struct;
+
+//mtk04121
+typedef struct
+{
+ kal_uint8 context_id;
+ kal_uint8 qci;
+ kal_bool max_bitrate_present;
+ kal_uint8 max_bitrate_up_lnk;
+ kal_uint8 max_bitrate_down_lnk;
+ kal_uint8 ext_max_bitrate_up_lnk;
+ kal_uint8 ext_max_bitrate_down_lnk;
+ kal_uint8 ext2_max_bitrate_up_lnk;
+ kal_uint8 ext2_max_bitrate_down_lnk;
+ kal_bool guarntd_bit_rate_present;
+ kal_uint8 guarntd_bit_rate_up_lnk;
+ kal_uint8 guarntd_bit_rate_down_lnk;
+ kal_uint8 ext_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext_guarntd_bit_rate_down_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_down_lnk;
+
+ 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;
+} l4c_eps_qos_struct;
+
+//mtk04121
+typedef struct
+{
+ kal_uint8 qci;
+ kal_uint8 unused1;
+ kal_uint8 unused2;
+ kal_uint8 unused3;
+ kal_uint8 max_bitrate_up_lnk;
+ kal_uint8 max_bitrate_down_lnk;
+ kal_uint8 guarntd_bit_rate_up_lnk;
+ kal_uint8 guarntd_bit_rate_down_lnk;
+ kal_uint8 ext_max_bitrate_up_lnk;
+ kal_uint8 ext_max_bitrate_down_lnk;
+ kal_uint8 ext_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext_guarntd_bit_rate_down_lnk;
+ kal_uint8 ext2_max_bitrate_up_lnk;
+ kal_uint8 ext2_max_bitrate_down_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_down_lnk;
+
+ 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;
+} tcm_eps_qos_struct;
+
+typedef struct
+{
+ kal_uint8 qfi;
+ kal_bool vqi_present;
+ kal_uint32 vqi;
+ kal_bool dl_gfbr_present;
+ kal_uint64 dl_gfbr;
+ kal_bool ul_gfbr_present;
+ kal_uint64 ul_gfbr;
+ kal_bool dl_mfbr_present;
+ kal_uint64 dl_mfbr;
+ kal_bool ul_mfbr_present;
+ kal_uint64 ul_mfbr;
+ kal_bool avg_window_present; /* used for neg_qos. */
+ kal_uint32 avg_window; /* used for neg_qos. */
+} tcm_vgqos_struct;
+
+typedef struct
+{
+ kal_uint8 context_id;
+ tcm_vgqos_struct vgqos;
+} l4c_vgqos_struct;
+
+typedef struct
+{
+ kal_uint8 authentication_type;
+ kal_uint8 user_name[MAX_GPRS_USER_NAME_LEN];
+ kal_uint8 password[MAX_GPRS_PASSWORD_LEN];
+ kal_uint8 dns[MAX_GPRS_IP_ADDR];
+ kal_uint8 sec_dns[MAX_GPRS_IP_ADDR];
+ kal_uint8 apn[MAX_GPRS_APN_LEN];
+ kal_uint8 apn_length;
+
+ //nvram_editor_qos_struct req_qos;
+ kal_uint8 dcomp_algo; // Fixed value: SND_NO_DCOMP
+ kal_uint8 hcomp_algo; // Fixed value: SND_NO_PCOMP
+ kal_uint8 pdp_type; // Fixed value: IPV4_ADDR_TYPE 0x21 for IPv4
+ kal_uint8 pdp_addr_len; // Fixed value: NULL_PDP_ADDR_LEN = 0x01, if use fixed IP address, this should be IPV4_ADDR_LEN = 0x04
+ kal_uint8 pdp_addr_val[MAX_GPRS_IP_ADDR]; // should be all 0
+} l4c_gprs_account_info_struct; //10A_DA_Revise, new gprs account struct, mtk02285
+
+typedef struct
+{
+ kal_uint8 call_id;
+ kal_uint8 call_state;
+ kal_uint8 mpty;
+ kal_uint8 number[MAX_CC_ADDR_LEN];
+} l4c_call_list_entry_struct;
+
+typedef struct
+{
+ kal_uint8 length;
+ l4c_call_list_entry_struct list[L4C_MAX_CALL_LIST_LEN];
+} l4c_call_list_struct;
+
+typedef struct
+{
+ kal_uint8 type;
+ kal_uint8 length;
+ kal_uint8 number[MAX_CC_ADDR_LEN];
+} l4c_number_struct;
+
+typedef struct
+{
+ kal_uint8 type;
+ kal_uint8 length;
+ kal_uint8 number[MAX_CC_ADDR_LEN];
+} l4c_sub_addr_struct;
+
+typedef struct {
+ kal_uint8 bs_code;
+ kal_uint8 ss_status;
+ kal_uint8 no_reply_timer;
+ kal_uint8 subaddress_flag;
+ kal_char address[MAX_CC_ADDR_LEN];
+ kal_char subaddress[MAX_CC_SUB_ADDR_LEN];
+} forwarding_list_struct;
+
+typedef struct {
+ kal_uint8 bs_code;
+ kal_uint8 ss_status;
+} barring_list_struct;
+
+typedef struct {
+ kal_uint8 ss_status;
+ kal_uint8 subaddress_flag;
+ l4_addr_bcd_struct address;
+ l4_addr_bcd_struct subaddress;
+ kal_uint8 bs_code;
+} ccbs_list_struct;
+
+typedef struct
+{
+ kal_bool cug_flag;
+ kal_uint8 clir_flag;
+ kal_uint8 call_type;
+ csmss_string_op_enum opcode;
+ l4c_number_struct addr;
+} l4c_ss_string_info_struct;
+
+typedef struct {
+ kal_uint8 icon_attr;
+ kal_uint8 icon_id;
+} sat_icon_struct;
+
+typedef struct {
+ kal_uint8 length;
+ kal_uint8 procomm[256];
+ rsat_config_enum is_wait_for_rsp;
+} sat_procomm_struct;
+
+typedef struct {
+ kal_uint8 p_class;
+ kal_uint8 d_class;
+ kal_uint8 r_class;
+ kal_uint8 peak_rate;
+ kal_uint8 mean_rate;
+ kal_uint8 proto_type;
+} sat_gprs_bearer_para_struct;
+
+typedef struct {
+ kal_uint8 speed;
+ kal_uint8 service_name;
+ kal_uint8 ce;
+} sat_csd_bearer_para_struct;
+
+//agps begin
+/* OCTET STRING Ext-GeographicalInformation */
+typedef struct L4C_SS_Ext_GeographicalInformation
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[20];
+}
+L4C_SS_Ext_GeographicalInformation;
+
+/* OCTET STRING DecipheringKeys */
+typedef struct L4C_SS_DecipheringKeys
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[15];
+}
+L4C_SS_DecipheringKeys;
+
+/* OCTET STRING Add-GeographicalInformation */
+typedef struct L4C_SS_Add_GeographicalInformation
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[91];
+}
+L4C_SS_Add_GeographicalInformation;
+
+/* BIT STRING DeferredLocationEventType */
+#define L4C_SS_DeferredLocationEventType_msAvailable 0x00000001
+
+#define L4C_SS_DeferredLocationEventType_enteringIntoArea 0x00000002
+
+#define L4C_SS_DeferredLocationEventType_leavingFromArea 0x00000004
+
+#define L4C_SS_DeferredLocationEventType_beingInsideArea 0x00000008
+
+typedef struct L4C_SS_DeferredLocationEventType
+{
+ kal_uint8 numBits;
+ kal_uint8 stringData[2];
+}
+L4C_SS_DeferredLocationEventType;
+
+/* OCTET STRING AddressString */
+typedef struct L4C_SS_AddressString
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[20];
+}
+L4C_SS_AddressString;
+
+typedef L4C_SS_AddressString L4C_SS_ISDN_AddressString;
+
+typedef struct
+{
+ kal_uint32 valueLen;
+ kal_uint8 *value;
+}L4C_LCS_applib2_UnKnowExtensionItem;
+
+typedef struct
+{
+ kal_uint32 valueLen; // Extension Number
+ L4C_LCS_applib2_UnKnowExtensionItem *value; // Point to the first
+}L4C_LCS_applib2_UnKnowExtensionItemArray;
+
+/* SEQUENCE PrivateExtension */
+typedef struct L4C_SS_PrivateExtension
+{
+ L4C_LCS_applib2_UnKnowExtensionItemArray UnKnowItem;
+}
+L4C_SS_PrivateExtension;
+
+/* SEQUENCE OF PrivateExtensionList */
+typedef struct L4C_SS_PrivateExtensionList
+{
+ kal_uint8 numElements;
+
+ L4C_SS_PrivateExtension element[10];
+}
+L4C_SS_PrivateExtensionList;
+
+/* SEQUENCE ExtensionContainer */
+typedef struct L4C_SS_ExtensionContainer
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_ExtensionContainer_privateExtensionList_valid 0x02
+ #define L4C_SS_ExtensionContainer_pcs_Extensions_valid 0x01
+
+ L4C_SS_PrivateExtensionList privateExtensionList; /* OPTIONAL */
+}
+L4C_SS_ExtensionContainer;
+
+/* OCTET STRING USSD-DataCodingScheme */
+typedef struct L4C_SS_USSD_DataCodingScheme
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[1];
+}
+L4C_SS_USSD_DataCodingScheme;
+
+/* OCTET STRING USSD-String */
+typedef struct L4C_SS_USSD_String
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[160];
+}
+L4C_SS_USSD_String;
+
+/* DEFINED NameString */
+typedef L4C_SS_USSD_String L4C_SS_NameString;
+
+/* DEFINED RequestorIDString */
+typedef L4C_SS_USSD_String L4C_SS_RequestorIDString;
+
+/* SEQUENCE LCSClientName */
+typedef struct L4C_SS_LCSClientName
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LCSClientName_lcs_FormatIndicator_valid 0x01
+
+ L4C_SS_USSD_DataCodingScheme dataCodingScheme; /* MANDATORY */
+ L4C_SS_NameString nameString; /* MANDATORY */
+
+ kal_uint8 lcs_FormatIndicator; /* OPTIONAL */ /* L4C_SS_LCS_FormatIndicator */
+}
+L4C_SS_LCSClientName;
+
+/* SEQUENCE LCSRequestorID */
+typedef struct L4C_SS_LCSRequestorID
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LCSRequestorID_lcs_FormatIndicator_valid 0x01
+
+ L4C_SS_USSD_DataCodingScheme dataCodingScheme; /* MANDATORY */
+ L4C_SS_RequestorIDString requestorIDString; /* MANDATORY */
+
+ kal_uint8 lcs_FormatIndicator; /* OPTIONAL */ /* L4C_SS_LCS_FormatIndicator */
+}
+L4C_SS_LCSRequestorID;
+
+/* DEFINED LCSCodewordString */
+typedef L4C_SS_USSD_String L4C_SS_LCSCodewordString;
+
+/* SEQUENCE LCSCodeword */
+typedef struct L4C_SS_LCSCodeword
+{
+ L4C_SS_USSD_DataCodingScheme dataCodingScheme; /* MANDATORY */
+ L4C_SS_LCSCodewordString lcsCodewordString; /* MANDATORY */
+}
+L4C_SS_LCSCodeword;
+
+/* INTEGER LCSServiceTypeID */
+typedef kal_uint8 L4C_SS_LCSServiceTypeID;
+
+/* INTEGER AgeOfLocationInformation */
+typedef kal_uint16 L4C_SS_AgeOfLocationInformation;
+
+/* SEQUENCE LocationNotificationRes */
+typedef struct L4C_SS_LocationNotificationRes
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LocationNotificationRes_verificationResponse_valid 0x01
+
+ kal_uint8 verificationResponse; /* OPTIONAL */ /* L4C_SS_VerificationResponse */
+}
+L4C_SS_LocationNotificationRes;
+
+/* OCTET STRING LCS-ReferenceNumber */
+typedef struct L4C_SS_LCS_ReferenceNumber
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[1];
+}
+L4C_SS_LCS_ReferenceNumber;
+
+/* OCTET STRING GSN-Address */
+typedef struct L4C_SS_GSN_Address
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[17];
+}
+L4C_SS_GSN_Address;
+
+/* SEQUENCE LCS-AreaEventReportArg */
+typedef struct L4C_SS_LCS_AreaEventReportArg
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LCS_AreaEventReportArg_r_gmlc_address_valid 0x01
+
+ L4C_SS_LCS_ReferenceNumber referenceNumber; /* MANDATORY */
+ L4C_SS_GSN_Address h_gmlc_address; /* MANDATORY */
+ L4C_SS_GSN_Address r_gmlc_address; /* OPTIONAL */
+}
+L4C_SS_LCS_AreaEventReportArg;
+
+typedef struct L4C_SS_LCS_AreaEventCancellationArg
+{
+ L4C_SS_LCS_ReferenceNumber referenceNumber; /* MANDATORY */
+ L4C_SS_GSN_Address h_gmlc_address; /* MANDATORY */
+}
+L4C_SS_LCS_AreaEventCancellationArg;
+
+/* OCTET STRING AreaIdentification */
+typedef struct L4C_SS_AreaIdentification
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[7];
+}
+L4C_SS_AreaIdentification;
+
+/* SEQUENCE Area */
+typedef struct L4C_SS_Area
+{
+ kal_uint8 areaType; /* MANDATORY */ /* L4C_SS_AreaType */
+ L4C_SS_AreaIdentification areaIdentification; /* MANDATORY */
+}
+L4C_SS_Area;
+
+/* SEQUENCE OF AreaList */
+typedef struct L4C_SS_AreaList
+{
+ kal_uint8 numElements;
+
+ L4C_SS_Area element[10];
+}
+L4C_SS_AreaList;
+
+/* SEQUENCE AreaDefinition */
+typedef struct L4C_SS_AreaDefinition
+{
+ L4C_SS_AreaList areaList; /* MANDATORY */
+}
+L4C_SS_AreaDefinition;
+
+/* INTEGER IntervalTime */
+typedef kal_uint16 L4C_SS_IntervalTime;
+
+/* SEQUENCE AreaEventInfo */
+typedef struct L4C_SS_AreaEventInfo
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_AreaEventInfo_occurrenceInfo_valid 0x02
+ #define L4C_SS_AreaEventInfo_intervalTime_valid 0x01
+
+ L4C_SS_AreaDefinition areaDefinition; /* MANDATORY */
+ kal_uint8 occurrenceInfo; /* OPTIONAL */ /* L4C_SS_OccurrenceInfo */
+ L4C_SS_IntervalTime intervalTime; /* OPTIONAL */
+}
+L4C_SS_AreaEventInfo;
+
+/* SEQUENCE LCS-AreaEventRequestArg */
+typedef struct L4C_SS_LCS_AreaEventRequestArg
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LCS_AreaEventRequestArg_r_gmlc_address_valid 0x01
+
+ L4C_SS_LCS_ReferenceNumber referenceNumber; /* MANDATORY */
+ L4C_SS_GSN_Address h_gmlc_address; /* MANDATORY */
+ L4C_SS_GSN_Address r_gmlc_address; /* OPTIONAL */
+ L4C_SS_DeferredLocationEventType deferredLocationEventType; /* MANDATORY */
+ L4C_SS_AreaEventInfo areaEventInfo; /* MANDATORY */
+}
+L4C_SS_LCS_AreaEventRequestArg;
+
+/* SEQUENCE ResponseTime */
+typedef struct L4C_SS_ResponseTime
+{
+ kal_uint8 responseTimeCategory; /* MANDATORY */ /* L4C_SS_ResponseTimeCategory */
+}
+L4C_SS_ResponseTime;
+
+/* OCTET STRING Vertical-Accuracy */
+typedef struct L4C_SS_Vertical_Accuracy
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[1];
+}
+L4C_SS_Vertical_Accuracy;
+
+/* OCTET STRING Horizontal-Accuracy */
+typedef struct L4C_SS_Horizontal_Accuracy
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[1];
+}
+L4C_SS_Horizontal_Accuracy;
+
+/* SEQUENCE LCS-QoS */
+typedef struct L4C_SS_LCS_QoS
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LCS_QoS_horizontal_accuracy_valid 0x10
+ #define L4C_SS_LCS_QoS_verticalCoordinateRequest_valid 0x08
+ #define L4C_SS_LCS_QoS_vertical_accuracy_valid 0x04
+ #define L4C_SS_LCS_QoS_responseTime_valid 0x02
+ #define L4C_SS_LCS_QoS_extensionContainer_valid 0x01
+
+ L4C_SS_Horizontal_Accuracy horizontal_accuracy; /* OPTIONAL */
+ kal_int8 verticalCoordinateRequest; /* OPTIONAL */
+ L4C_SS_Vertical_Accuracy vertical_accuracy; /* OPTIONAL */
+ L4C_SS_ResponseTime responseTime; /* OPTIONAL */
+ L4C_SS_ExtensionContainer extensionContainer; /* OPTIONAL */
+}
+L4C_SS_LCS_QoS;
+
+/* BIT STRING SupportedGADShapes */
+#define L4C_SS_SupportedGADShapes_ellipsoidPoint 0x00000001
+
+#define L4C_SS_SupportedGADShapes_ellipsoidPointWithUncertaintyCircle 0x00000002
+
+#define L4C_SS_SupportedGADShapes_ellipsoidPointWithUncertaintyEllipse 0x00000004
+
+#define L4C_SS_SupportedGADShapes_polygon 0x00000008
+
+#define L4C_SS_SupportedGADShapes_ellipsoidPointWithAltitude 0x00000010
+
+#define L4C_SS_SupportedGADShapes_ellipsoidPointWithAltitudeAndUncertaintyElipsoid 0x00000020
+
+#define L4C_SS_SupportedGADShapes_ellipsoidArc 0x00000040
+
+typedef struct L4C_SS_SupportedGADShapes
+{
+ kal_uint8 numBits;
+ kal_uint8 stringData[2];
+}
+L4C_SS_SupportedGADShapes;
+
+/* OCTET STRING GPSAssistanceData */
+typedef struct L4C_SS_GPSAssistanceData
+{
+ kal_uint8 numOctets;
+ kal_uint8 stringData[38];
+}
+L4C_SS_GPSAssistanceData;
+
+/* SEQUENCE LCSClientExternalID */
+typedef struct L4C_SS_LCSClientExternalID
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LCSClientExternalID_externalAddress_valid 0x02
+ #define L4C_SS_LCSClientExternalID_extensionContainer_valid 0x01
+
+ L4C_SS_ISDN_AddressString externalAddress; /* OPTIONAL */
+ L4C_SS_ExtensionContainer extensionContainer; /* OPTIONAL */
+}
+L4C_SS_LCSClientExternalID;
+
+/* SEQUENCE LocationType */
+typedef struct L4C_SS_LocationType
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LocationType_deferredLocationEventType_valid 0x01
+
+ kal_uint8 locationEstimateType; /* MANDATORY */ /* L4C_SS_LocationEstimateType */
+
+ L4C_SS_DeferredLocationEventType deferredLocationEventType; /* OPTIONAL */
+}
+L4C_SS_LocationType;
+
+/* SEQUENCE LCS-MOLRArg */
+typedef struct L4C_SS_LCS_MOLRArg
+{
+ kal_uint16 validity;
+
+ #define L4C_SS_LCS_MOLRArg_locationMethod_valid 0x0200
+ #define L4C_SS_LCS_MOLRArg_lcs_QoS_valid 0x0100
+ #define L4C_SS_LCS_MOLRArg_lcsClientExternalID_valid 0x0080
+ #define L4C_SS_LCS_MOLRArg_mlc_Number_valid 0x0040
+ #define L4C_SS_LCS_MOLRArg_gpsAssistanceData_valid 0x0020
+ #define L4C_SS_LCS_MOLRArg_supportedGADShapes_valid 0x0010
+ #define L4C_SS_LCS_MOLRArg_lcsServiceTypeID_valid 0x0008
+ #define L4C_SS_LCS_MOLRArg_ageOfLocationInfo_valid 0x0004
+ #define L4C_SS_LCS_MOLRArg_locationType_valid 0x0002
+ #define L4C_SS_LCS_MOLRArg_pseudonymIndicator_valid 0x0001
+
+ kal_uint8 molr_Type; /* MANDATORY */ /* L4C_SS_MOLR_Type */
+ kal_uint8 locationMethod; /* OPTIONAL */ /* L4C_SS_LocationMethod */
+ L4C_SS_LCS_QoS lcs_QoS; /* OPTIONAL */
+ L4C_SS_LCSClientExternalID lcsClientExternalID; /* OPTIONAL */
+ L4C_SS_ISDN_AddressString mlc_Number; /* OPTIONAL */
+ L4C_SS_GPSAssistanceData gpsAssistanceData; /* OPTIONAL */
+
+ L4C_SS_SupportedGADShapes supportedGADShapes; /* OPTIONAL */
+
+ L4C_SS_LCSServiceTypeID lcsServiceTypeID; /* OPTIONAL */
+ L4C_SS_AgeOfLocationInformation ageOfLocationInfo; /* OPTIONAL */
+ L4C_SS_LocationType locationType; /* OPTIONAL */
+ kal_uint8 pseudonymIndicator; /* OPTIONAL */
+}
+L4C_SS_LCS_MOLRArg;
+
+/* SEQUENCE LocationNotificationArg */
+typedef struct L4C_SS_LocationNotificationArg
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LocationNotificationArg_lcsClientExternalID_valid 0x10
+ #define L4C_SS_LocationNotificationArg_lcsClientName_valid 0x08
+ #define L4C_SS_LocationNotificationArg_lcsRequestorID_valid 0x04
+ #define L4C_SS_LocationNotificationArg_lcsCodeword_valid 0x02
+ #define L4C_SS_LocationNotificationArg_lcsServiceTypeID_valid 0x01
+
+ kal_uint8 notificationType; /* MANDATORY */ /* L4C_SS_NotificationToMSUser */
+ L4C_SS_LocationType locationType; /* MANDATORY */
+ L4C_SS_LCSClientExternalID lcsClientExternalID; /* OPTIONAL */
+ L4C_SS_LCSClientName lcsClientName; /* OPTIONAL */
+
+ L4C_SS_LCSRequestorID lcsRequestorID; /* OPTIONAL */
+ L4C_SS_LCSCodeword lcsCodeword; /* OPTIONAL */
+ L4C_SS_LCSServiceTypeID lcsServiceTypeID; /* OPTIONAL */
+}
+L4C_SS_LocationNotificationArg;
+
+/* SEQUENCE LCS-MOLRRes */
+typedef struct L4C_SS_LCS_MOLRRes
+{
+ kal_uint8 validity;
+
+ #define L4C_SS_LCS_MOLRRes_locationEstimate_valid 0x04
+ #define L4C_SS_LCS_MOLRRes_decipheringKeys_valid 0x02
+ #define L4C_SS_LCS_MOLRRes_add_LocationEstimate_valid 0x01
+
+ L4C_SS_Ext_GeographicalInformation locationEstimate; /* OPTIONAL */
+ L4C_SS_DecipheringKeys decipheringKeys; /* OPTIONAL */
+
+ L4C_SS_Add_GeographicalInformation add_LocationEstimate; /* OPTIONAL */
+}
+L4C_SS_LCS_MOLRRes;
+//agps end
+
+//eq begin
+typedef struct {
+
+ kal_uint32 PWM1_freq_Level_Info[5];
+ kal_uint32 PWM1_duty_Level_Info[5];
+ kal_uint32 PWM2_freq_Level_Info[5];
+ kal_uint32 PWM2_duty_Level_Info[5];
+ kal_uint32 PWM3_freq_Level_Info[5];
+ kal_uint32 PWM3_duty_Level_Info[5];
+
+ kal_uint8 MainLCD_Contrast_Level_Info[15];
+ kal_uint8 MainLCD_Bias_Level_Info[5];
+ kal_uint8 MainLCD_Linerate_Level_Info[5];
+ kal_uint8 MainLCD_Temp_Level_Info[5];
+
+ kal_uint8 SubLCD_Contrast_Level_Info[15];
+ kal_uint8 SubLCD_Bias_Level_Info[5];
+ kal_uint8 SubLCD_Linerate_Level_Info[5];
+ kal_uint8 SubLCD_Temp_Level_Info[5];
+
+ kal_uint32 Battery_Level_Info[10];
+
+#ifdef __MULTI_LEVEL_BACKLIGHT_SUPPORT__
+ kal_uint32 bl_PWM_freq_Level_Info[PWM_MAX_BACKLIGHT_LEVEL];
+ kal_uint32 bl_PWM_duty_Level_Info[PWM_MAX_BACKLIGHT_LEVEL];
+#endif
+}
+l4c_hw_profile_struct;
+
+typedef struct {
+ kal_uint8 rtc_sec;
+ kal_uint8 rtc_min;
+ kal_uint8 rtc_hour;
+ kal_uint8 rtc_day;
+ kal_uint8 rtc_mon;
+ kal_uint8 rtc_wday;
+ kal_uint8 rtc_year;
+} rtc_format_struct;
+
+typedef struct {
+ kal_uint8 alarm_format;
+ kal_uint8 alarm_index;
+ kal_uint8 type;
+ kal_uint8 text[30];
+ kal_uint8 recurr;
+ rtc_format_struct data_time;
+} rtc_alarm_info_struct;
+
+typedef struct mmi_at_alarm_info_struct
+{
+ kal_uint8 alarm_index;
+ kal_uint8 recurr;
+ rtc_format_struct date_time;
+} mmi_at_alarm_info_struct;
+
+typedef enum{
+ VT_EM_REVERSE_INVALID = -1,
+ VT_EM_REVERSE_DATA = 0,
+ VT_EM_REVERSE_NULL
+}vt_em_reverse_channel_data_type;
+
+typedef enum{
+ VT_EM_AL_INVALID = -1,
+ VT_EM_AL2_WITH_SEQUENCE_NUMBER = 0,
+ VT_EM_AL2_WITHOUT_SEQUENCE_NUMBER,
+ VT_EM_AL3_CONTROL_FIELD_SIZE_0,
+ VT_EM_AL3_CONTROL_FIELD_SIZE_1,
+ VT_EM_AL3_CONTROL_FIELD_SIZE_2
+}vt_em_al_choice;
+
+typedef enum{
+ VT_EM_MUX_LEVEL_INVALID = -1,
+ VT_EM_MUX_LEVEL_0 = 0,
+ VT_EM_MUX_LEVEL_1,
+ VT_EM_MUX_LEVEL_1_WITH_DOUBLE_FLAG,
+ VT_EM_MUX_LEVEL_2,
+ VT_EM_MUX_LEVEL_2_WITH_OPTIONAL_HEADER,
+ VT_EM_MUX_LEVEL_3,
+ VT_EM_MUX_LEVEL_3_WITH_OPTIONAL_HEADER
+}vt_em_mux_level_choice;
+
+typedef enum{
+ VT_EM_WNSRP_INVALID = -1,
+ VT_EM_WNSRP_OFF = 0,
+ VT_EM_WNSRP_ON
+}vt_em_wnsrp_choice;
+
+typedef enum{
+ VT_EM_CODEC_INVALID = -1,
+ VT_EM_CODEC_MPEG4_H263 = 0,
+ VT_EM_CODEC_H263_MPEG4
+}vt_em_video_codec_preference_choice;
+
+typedef enum{
+ VT_EM_AUTO_DROP_INVALID = -1,
+ VT_EM_DISABLE_AUTO_DROP_IF_CHANNEL_FAIL = 0,
+ VT_EM_ENABLE_AUTO_DROP_IF_CHANNEL_FAIL
+}vt_em_auto_drop_if_channel_fail_choice;
+
+typedef enum{
+ VT_EM_TERMINAL_TYPE_INVALID = -1,
+ VT_EM_TERMINAL_TYPE_NORMAL = 0,
+ VT_EM_TERMINAL_TYPE_MASTER,
+ VT_EM_TERMINAL_TYPE_SLAVE
+}vt_em_terminal_type_choice;
+
+typedef struct{
+ vt_em_mux_level_choice mux_level_choice;
+ vt_em_wnsrp_choice wnsrp_choice;
+ vt_em_al_choice audio_al_choice;
+ vt_em_al_choice video_al_choice;
+ vt_em_reverse_channel_data_type video_reverse_data_type_choice;
+ vt_em_video_codec_preference_choice video_codec_preference_choice;
+ vt_em_auto_drop_if_channel_fail_choice auto_drop_if_channel_fail_choice;
+ vt_em_terminal_type_choice terminal_type_choice;
+ kal_int32 timer_T101; //default = -1 (if its value equals -1, no change should be made)
+ kal_int32 timer_T109; //default = -1 (if its value equals -1, no change should be made)
+ kal_int32 timer_T401; //default = -1 (if its value equals -1, no change should be made)
+ kal_int32 user_specified_1; //default = -1 (if its value equals -1, no change should be made)
+ kal_int32 user_specified_2; //default = -1 (if its value equals -1, no change should be made)
+ kal_uint8 user_specified_3[64]; //get input length by strlen() (end by EOF)
+}vt_em_config_struct;
+
+typedef struct
+{
+ kal_uint8 mcc[3]; //MCC
+ kal_uint8 mnc[3]; //MNC
+ kal_uint8 lac[2]; //LAC
+ kal_uint16 cell_id; //cell ID
+ kal_uint8 nc_info_index; // index in rlc array to acquire the corresponding arfcn, bsic, rxlevel...
+ kal_uint8 rac;//RAC EM_RAC
+#ifdef __PS_SERVICE__
+ /*091014 WISDOM_EM Michael Shuang NMO*/
+ kal_uint8 nmo;
+#endif
+ kal_uint8 supported_Band;
+} rr_em_lai_info_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 !*/
+#endif
+
+typedef 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 !*/
+#endif
+ kal_uint8 unused;
+}pmu6223_config_param_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 !*/
+/* 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
+{
+#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 !*/
+#endif
+ kal_uint8 unused;
+}pmu6238_config_param_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 !*/
+#endif
+typedef struct
+{
+ //pmu6326_read_reg_struct read_reg;
+ //pmu6326_write_reg_struct write_reg;
+ kal_uint8 unused;
+}pmu6326_config_param_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 !*/
+/* 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
+{
+#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 !*/
+#endif
+ kal_uint8 unused;
+}pmic_config_param_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint16 arfcn; /* input */
+ kal_int16 afc; /* input */
+ kal_uint8 band; /* input */
+ kal_int8 tsc; /* input */
+ kal_int8 pcl[4]; /* input */
+ kal_uint8 pattern; /* input */
+ kal_int8 timeSlotmask; /* input */
+ kal_uint8 cs[4]; /* input */
+ kal_bool isEgprs; /* input */
+}rf_test_gsm_tx_test_struct, l4cl1_em_rf_test_gsm_tx_test_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_int16 arfcn; /* input */
+ kal_int16 gain; /* input */
+ kal_uint8 band; /* input */
+ kal_uint8 pattern; /* input */
+}rf_test_gsm_rx_test_struct, l4cl1_em_rf_test_gsm_rx_test_req_struct;
+
+#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_int16 arfcn; /* input */
+ kal_int16 gain_prx; /* input */
+ kal_int16 gain_drx; /* input */
+ kal_uint8 band; /* input */
+ kal_uint8 pattern; /* input */
+} rf_test_gsm_rx_test_two_path_struct, l4cl1_em_rf_test_gsm_rx_test_two_path_req_struct;
+#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_int32 rssi_edBm;
+ kal_int16 error_cause;
+}l4cl1_em_rf_test_gsm_rx_test_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_int16 error_cause;
+}l4cl1_em_rf_test_gsm_tx_test_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* input */ /* output */
+ kal_uint8 band; /* input */
+ kal_int16 arfcn_in; /* input */
+ kal_int16 arfcn_out[20]; /* output */
+ kal_int16 power[20]; /* output */
+ kal_int16 error_cause; /* output */
+}rf_test_gsm_power_scan_struct,
+l4cl1_em_rf_test_gsm_power_scan_req_struct,
+l4cl1_em_rf_test_gsm_power_scan_cnf_struct;
+
+#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_int32 rssi_edBm_prx;
+ kal_int32 rssi_edBm_drx;
+ kal_int16 error_cause;
+}l4cl1_em_rf_test_gsm_rx_test_two_path_ind_struct;
+#endif
+
+typedef struct
+{
+ rf_test_gsm_tx_test_struct gsm_tx_test;
+ rf_test_gsm_rx_test_struct gsm_rx_test;
+ rf_test_gsm_power_scan_struct gsm_power_scan;
+#if defined(__2G_RX_DIVERSITY_PATH_SUPPORT__)
+ rf_test_gsm_rx_test_two_path_struct gsm_rx_test_2_path;
+#endif
+}rf_test_gsm_param_struct;
+
+
+typedef struct
+{
+ kal_bool tas_en;
+ kal_bool rxd_en;
+ kal_bool tx_on_flag;
+ kal_uint8 error_cause;
+ kal_uint8 rat;
+ kal_uint8 repeat_times;
+ kal_uint8 dl_bw;
+ kal_uint8 ul_bw;
+ kal_uint8 vrb_start;
+ kal_uint8 vrb_len;
+ kal_uint8 ant_state;
+ kal_int16 tx_power;
+ kal_int16 rxm_gain;
+ kal_int16 rxd_gain;
+ kal_uint16 band;
+ EARFCN arfcn;
+}em_rf_scan_req_struct;
+
+typedef struct
+{
+ kal_uint8 mono_enable; /* input */
+}fm_radio_mono_struct;
+
+typedef struct
+{
+ kal_uint8 stereo_enable; /* input */
+ kal_uint8 sblend_onoff; /* input */
+}fm_radio_stereo_struct;
+
+typedef struct
+{
+ kal_uint8 level; /* input */
+}fm_radio_rssi_struct;
+
+typedef struct
+{
+ kal_uint8 item_value; /* input */
+}fm_radio_if_count_delta_struct;
+
+typedef struct
+{
+ fm_radio_mono_struct fm_radio_mono;
+ fm_radio_stereo_struct fm_radio_stereo;
+ fm_radio_rssi_struct fm_radio_rssi;
+ fm_radio_if_count_delta_struct fm_radio_if;
+}fm_radio_config_param_struct;
+
+#if defined(__WIFI_SUPPORT__)
+typedef struct
+{
+ kal_uint8 ich; /* output */
+ kal_uint8 qch; /* output */
+}rf_test_wifi_tx_get_dac_offset_struct;
+
+typedef struct
+{
+ kal_uint8 contry_code[2]; /* input */
+ kal_uint32 ch_freq; /* input */
+ kal_uint8 tx_rate; /* input */
+ kal_uint8 tx_ant; /* input */
+ kal_uint8 gain; /* input */
+ wndrv_test_bandwidth_enum txBw;
+ wndrv_test_guard_intval_enum txGI;
+ wndrv_test_mode_sel_enum txMode;
+}rf_test_wifi_tx_common_struct;
+
+typedef struct
+{
+ kal_uint8 contry_code[2]; /* input */
+ kal_uint32 ch_freq; /* input */
+ kal_uint8 tx_rate; /* input */
+ kal_uint8 tx_ant; /* input */
+ kal_uint8 gain; /* input */
+ kal_uint32 pkt_count; /* input */
+ kal_uint32 pkt_interval; /* input */
+ kal_uint32 pkt_length; /* input */
+ kal_uint8 tx_pattern; /* input */
+ kal_bool short_peramble; /* input */
+ kal_uint8 mac_header[24]; /* input */
+ wndrv_test_bandwidth_enum txBw; /* input */
+ wndrv_test_guard_intval_enum txGI; /* input */
+ wndrv_test_mode_sel_enum txMode; /* input */
+}rf_test_wifi_tx_cont_pkt_struct;
+
+typedef struct
+{
+ kal_uint32 ch_freq; /* input */
+ kal_uint32 pau_total; /* output -- pau_rx_ptk_count */
+ kal_uint32 pau_err; /* output -- pau_crc_err_count */
+ kal_uint32 pau_ccca; /* output -- pau_cca_count */
+ kal_uint32 pau_fifo_full; /* output -- pau_rx_fifo_full_count */
+ kal_uint32 int_ok; /* int_rx_ok_num */
+ kal_uint32 int_err; /* int_crc_err_num */
+ kal_uint32 rssi_mean; /* int_rssi_mean */
+ kal_uint32 rssi_max; /* int_rssi_max */
+ kal_uint32 rssi_min; /* int_rssi_min */
+ kal_uint32 rssi_variance; /* int_rssi_variance */
+ kal_uint32 int_long_preamble; /* int_long_preamble_num */
+ kal_uint32 int_short_preamble; /* int_short_preamble_num */
+ wndrv_test_bandwidth_enum rxBw; /* input */
+}rf_test_wifi_rx_cont_pkt_struct;
+
+typedef struct
+{
+ kal_uint8 pwr_mgt; /* input */
+}rf_test_wifi_power_save_struct;
+
+typedef struct
+{
+ kal_uint32 mcr_index;
+ kal_uint32 mcr32;
+}rf_test_wifi_reg_mcr32_write_struct;
+
+typedef struct
+{
+ kal_uint32 mcr_index; /* input */
+ kal_uint32 mcr32; /* output */
+}rf_test_wifi_reg_mcr32_read_struct;
+
+typedef struct
+{
+ kal_uint32 mcr_index; /* input */
+ kal_uint16 mcr16; /* input */
+}rf_test_wifi_reg_mcr16_write_struct;
+
+typedef struct
+{
+ kal_uint32 mcr_index; /* intput */
+ kal_uint16 mcr16; /* output */
+}rf_test_wifi_reg_mcr16_read_struct;
+
+typedef struct
+{
+ kal_uint32 bbcr_index; /* intput */
+ kal_uint8 bbcr; /* intput */
+}rf_test_wifi_reg_bbcr_write_struct;
+
+typedef struct
+{
+ kal_uint32 bbcr_index; /* intput */
+ kal_uint8 bbcr; /* output */
+}rf_test_wifi_reg_bbcr_read_struct;
+
+typedef struct
+{
+ kal_uint32 eeprom_index; /* intput */
+ kal_uint16 eeprom; /* intput */
+}rf_test_wifi_reg_eeprom_write_struct;
+
+typedef struct
+{
+ kal_uint32 eeprom_index; /* intput */
+ kal_uint16 eeprom; /* output */
+}rf_test_wifi_reg_eeprom_read_struct;
+
+typedef struct
+{
+ kal_uint32 efuse_index; /* intput */
+ kal_uint32 efuse; /* intput */
+}rf_test_wifi_reg_efuse_write_struct;
+
+typedef struct
+{
+ kal_uint32 efuse_index; /* intput */
+ kal_uint32 efuse; /* intput */
+}rf_test_wifi_reg_efuse_read_struct;
+
+typedef struct
+{
+ rf_test_wifi_tx_get_dac_offset_struct wifi_get_dac;
+ rf_test_wifi_tx_common_struct wifi_tx_common;
+ rf_test_wifi_tx_cont_pkt_struct wifi_tx_cont_pkt;
+ rf_test_wifi_rx_cont_pkt_struct wifi_rx_cont_pkt;
+ rf_test_wifi_power_save_struct wifi_power_save;
+ rf_test_wifi_reg_mcr32_write_struct wifi_mcr32_write;
+ rf_test_wifi_reg_mcr32_read_struct wifi_mcr32_read;
+ rf_test_wifi_reg_mcr16_write_struct wifi_mcr16_write;
+ rf_test_wifi_reg_mcr16_read_struct wifi_mcr16_read;
+ rf_test_wifi_reg_bbcr_write_struct wifi_bbcr_write;
+ rf_test_wifi_reg_bbcr_read_struct wifi_bbcr_read;
+ rf_test_wifi_reg_eeprom_write_struct wifi_eeprom_write;
+ rf_test_wifi_reg_eeprom_read_struct wifi_eeprom_read;
+ rf_test_wifi_reg_efuse_write_struct wifi_efuse_write;
+ rf_test_wifi_reg_efuse_read_struct wifi_efuse_read;
+}rf_test_wifi_param_struct;
+#endif
+
+//typedef struct _l4cul1_rssi_measurement_ind_struct
+//{
+// LOCAL_PARA_HDR
+// kal_int16 rssi; /* RSSI. Range: -400 ~ -100 means (-100 ~ -25)dBm 0.25 dB step */
+// kal_uint16 uarfcn; /* UARFCN */
+//
+//} l4cul1_rssi_measurement_ind_struct;
+
+
+//eq end
+
+typedef struct
+{
+ kal_uint8 addr_length;
+ kal_uint8 addr_bcd[11];
+}l4c_sms_addr_struct;
+
+typedef struct
+{
+ l4c_sms_addr_struct sca;
+ kal_uint8 tpdu[176];
+ kal_uint8 pdu_len;
+ kal_uint8 tpdu_len;
+}l4c_usm_cmgw_struct;
+
+typedef struct
+{
+ kal_uint8 mode;
+ kal_uint8 mt;
+ kal_uint8 bm;
+ kal_uint8 ds;
+ kal_uint8 bfr;
+}l4c_usm_cnmi_struct;
+
+typedef struct
+{
+ kal_uint16 reply_index;
+ kal_uint16 data_len;
+ kal_uint8 length;
+ kal_uint8 pdu[176];
+}l4c_usm_cmss_struct;
+
+typedef struct {
+ l4_name_struct name;
+ l4c_number_struct number_info;
+} l4c_sms_mailbox_info_struct;
+
+typedef struct {
+ kal_uint8 line_no; /* Number of Line*/
+ kal_uint8 msp_no;
+ kal_uint8 waiting_num;
+ kal_uint8 ind_type;
+ kal_bool is_show_num;
+ kal_bool is_clear;
+ kal_bool is_from_storage;
+} l4csmsal_msg_waiting_ind_ext_struct;
+
+typedef struct {
+ kal_uint16 mid[60]; // = [SMSAL_MMI_CBMI_MAX_ENTRY]
+ kal_uint16 dcs[30]; // = [SMSAL_CB_MAX_ENTRY]
+ kal_uint16 mir[60]; // = [SMSAL_CB_MAX_ENTRY*2]
+ kal_uint8 mid_mask[60]; // = [SMSAL_MMI_CBMI_MAX_ENTRY]
+ kal_uint8 mir_mask[30]; // = [SMSAL_CB_MAX_ENTRY]
+ kal_uint8 dcs_mask[30]; // = [SMSAL_CB_MAX_ENTRY]
+ kal_uint8 para_ind; /* used in set_cb_mode_req only */
+
+ kal_bool is_all_language_on;
+
+ /* used in get_cb_mode_cnf */
+ kal_bool is_cb_ready;
+ kal_bool is_sim_change;
+
+ l4c_cb_set_type_enum set_type;
+} l4c_cb_info_struct;
+
+typedef struct {
+ kal_uint16 ref; /* concat. message reference*/
+ kal_uint8 total_seg; /* total segments*/
+ kal_uint8 seg; /* indicate which segment*/
+} smsal_concat_struct;
+
+typedef struct {
+ kal_uint8 mem1; /* Storage type for Memory1*/
+ kal_uint8 mem2; /* Storage type for Memory2*/
+ kal_uint8 mem3; /* Storage type for Memory3*/
+ kal_uint16 used1;
+ kal_uint16 used2;
+ kal_uint16 used3;
+ kal_uint16 total1;
+ kal_uint16 total2;
+ kal_uint16 total3;
+} smsal_prefer_storage_struct;
+
+/* Message Waiting Indication Status */
+typedef struct
+{
+#ifdef __REL6__
+ kal_uint8 mbi_id[5]; //5 = NUM_OF_MSG_WAITING_TYPE
+#else
+ kal_uint8 mbi_id[4]; //4 = NUM_OF_MSG_WAITING_TYPE
+#endif
+} smsal_mbi_struct;
+
+typedef struct {
+ kal_uint8 mti; /* smsal_mti_enum */
+ kal_uint8 status; /* Status of message*/
+ kal_uint8 storage_type;
+ kal_uint16 index; /* Index of message*/
+} smsal_inbox_struct;
+
+typedef struct {
+ kal_uint16 msg_count; /* Message Count*/
+ smsal_inbox_struct inbox_list[40];
+} smsal_inbox_list_struct;
+
+typedef struct {
+ kal_uint8 mti; /* smsal_mti_enum */
+ kal_uint8 status; /* Status of message*/
+ kal_uint8 storage_type;
+ kal_uint16 index; /* Index of message*/
+} smsal_outbox_struct;
+
+typedef struct {
+ kal_uint16 msg_count; /* Message Count*/
+ smsal_outbox_struct outbox_list[40];
+} smsal_outbox_list_struct;
+
+// Enhanced Voice Mail Information
+typedef struct
+{
+ kal_uint16 id;
+
+ kal_uint8 msg_len_insec;
+ kal_uint8 msg_retention_day; // max 31
+
+ kal_uint8 priority;
+
+ kal_uint8 msg_ext_flg;
+
+ l4_addr_bcd_struct calling_line_addr;
+
+ kal_uint8 msg_ext_len;
+ kal_uint8 *msg_ext_data;
+}smsal_evmi_msg_struct;
+
+typedef struct {
+ kal_uint8 addr_length;
+ kal_uint8 addr_bcd[11];
+} sms_addr_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_cbs_required;
+} smsal_4g5g_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_uint8 dcs[CB_MAX_LANG_NUM]; /* DCS is one byte in TS23.041 9.3.18 & TS23.038, however, here 2 bytes represents ISO639 + DCS */
+ kal_bool is_all_language_on;
+} smsal_4g5g_cb_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 message_id;
+ kal_uint16 serial_number;
+ kal_uint8 data_coding_scheme;
+} smsal_4g5g_cb_data_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 message_id;
+ kal_uint16 serial_number;
+} smsal_4g5g_cb_msg_removal_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_etws_needed;
+ kal_bool is_etws_testing_on;
+} l4c_4g5g_etws_setting_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 warning_type;
+ kal_uint16 message_id;
+ kal_uint16 serial_number;
+} l4c_4g5g_etws_information_ind_struct;
+
+
+typedef struct {
+ kal_uint8 storage;
+ kal_uint8 type;
+ kal_uint8 num_index;
+ kal_uint8 aas_id;
+ kal_uint16 index;
+ kal_uint16 record_index;
+ l4c_number_struct tel;
+ l4_name_struct alpha_id;
+} l4c_phb_entry_struct;
+
+typedef struct {
+ kal_uint16 record_size; /* size of record in storage */
+ kal_uint16 record_num; /* rec number */
+ kal_uint8 alpha_length; /* alpha length */
+ kal_uint8 occurrence;
+ kal_bool is_support; /* to indicate the EF is supported or not */
+} l4c_phb_desc_struct;
+
+typedef l4_name_struct phb_sne_struct;
+typedef l4_name_struct phb_aas_struct;
+typedef l4_name_struct phb_gas_struct;
+
+typedef struct {
+ kal_uint8 email_length;
+ kal_uint16 record_index; /* Record index in physical storage*/
+ kal_uint16 adn_record_index; /* adn record index */
+ kal_uint8 email_address[PHB_MAX_EMAIL_LENGTH]; /* email address */
+ kal_uint8 email_dcs;
+} phb_email_struct;
+
+typedef struct
+{
+ kal_uint8 gas_id[PHB_MAX_ASSOCIATE_GRP];
+} phb_grp_struct;
+
+typedef struct
+{
+ kal_uint8 ctrl_info;
+ kal_uint8 hidden_info;
+} phb_pbc_struct;
+
+typedef union {
+ phb_sne_struct sne;
+ phb_aas_struct aas;
+ phb_gas_struct gas;
+ phb_grp_struct grp;
+ phb_email_struct email;
+ phb_pbc_struct pbc;
+} l4c_phb_usim_field;
+
+typedef struct {
+ l4c_phb_usim_field field;
+} l4c_phb_usim_entry;
+
+typedef struct {
+ kal_uint8 storage;
+ kal_uint8 type;
+ kal_uint16 index;
+ kal_uint16 record_index;
+ l4_addr_bcd_struct tel;
+ l4_name_struct alpha_id;
+} l4c_phb_bcd_entry_struct;
+
+
+typedef struct
+{
+ kal_uint16 num_of_entry;
+ l4c_phb_bcd_entry_struct phb_entry[1000/NVRAM_PHB_SIZE];
+} l4c_phb_entries_struct;
+
+/* for AT/MMI */
+typedef struct {
+ kal_uint8 plmn_id[7];
+ kal_uint8 status; /*l4c_cops_status_enum*/
+} l4c_plmn_info_struct;
+
+typedef struct {
+ kal_uint8 plmn_id[7];
+ kal_uint8 status; /*l4c_cops_status_enum*/
+ kal_uint8 rat;
+ kal_uint8 lac[3];
+ endc_sib_status_enum endc_sib_status;
+} l4c_rat_plmn_info_struct;
+
+typedef struct l4c_nw_time_zone_time_struct
+{
+ kal_uint8 year;
+ kal_uint8 month;
+ kal_uint8 day;
+ kal_uint8 hour;
+ kal_uint8 min;
+ kal_uint8 sec;
+ kal_uint8 time_zone;
+} l4c_nw_time_zone_time_struct;
+
+//mtk01616_080301: NOTE! this structure should sync with rac_ecc_number_struct
+typedef struct l4c_rac_ecc_number_struct
+{
+ kal_uint8 category;
+ l4_addr_bcd_struct tel_number;
+} l4c_rac_ecc_number_struct;
+
+//mtk02374
+typedef struct {
+ kal_uint8 chv1_count;
+ kal_uint8 chv2_count;
+ kal_uint8 ubchv1_count;
+ kal_uint8 ubchv2_count;
+ kal_uint8 is_chv1_enabled;
+ kal_uint8 is_chv1_verified;
+ kal_uint8 is_chv2_enabled;
+ kal_uint8 is_chv2_verified;
+ kal_uint8 chv_key_ref[2];
+} sim_chv_info_struct;
+
+typedef struct {
+ kal_uint8 chv1_status;
+ kal_uint8 chv2_status;
+ kal_uint8 ubchv1_status;
+ kal_uint8 ubchv2_status;
+} sim_chv_status_struct;
+
+typedef struct {
+ kal_uint8 ecc[3];
+ kal_uint8 esc; // emergency service category //
+ kal_uint8 name_length;
+ kal_uint8 name_dcs;
+ kal_uint8 name[MAX_SIM_NAME_LEN];
+} sim_ecc_entry_struct;
+
+typedef struct
+{
+ kal_bool cache_updated;
+ kal_uint16 file_info_len;
+ kal_uint8 file_info_buff[USIM_CACHE_MAX_FILE_SIZE];
+ kal_uint8 sw1;
+ kal_uint8 sw2;
+} usim_cache_struct;
+
+typedef struct {
+ kal_uint8 alpha_id_dcs;
+ kal_uint8 alpha_id_size;
+ kal_uint8 alpha_id[32];
+ kal_uint8 ton_npi;
+ kal_uint8 digit_size;
+ kal_uint8 digit[41];
+} l4csmu_addr_struct;
+
+typedef struct {
+ kal_uint8 alpha_id_size;
+ kal_uint8 alpha_id[21];
+ kal_uint8 ton_npi;
+ kal_uint8 digit_size;
+ kal_uint8 digit[4];//[41];
+ kal_uint8 index_level;
+ kal_bool network_specific;
+ kal_bool premium_rate;
+} l4csmu_info_num_struct;
+
+typedef struct {
+ kal_uint8 rand[16];
+ kal_bool is_auth_present;
+ kal_uint8 auth[16];
+ sim_interface_enum sim_id;
+} smu_supc_sim_authenticate_request_struct;
+
+typedef struct {
+ kal_uint16 result;
+ kal_uint8 kc[8];
+ kal_uint8 sres[4];
+ kal_uint8 ck[16];
+ kal_uint8 ik[16];
+ kal_uint8 res[16];
+ kal_uint8 res_len;
+ kal_uint8 auts[16];
+ kal_uint8 auts_len;
+} smu_supc_sim_authenticate_response_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 bearer_type;
+} l4csmu_sat_open_channel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 state;
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+} l4csmu_sat_close_channel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 state;
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+} l4csmu_sat_send_data_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 state;
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+} l4csmu_sat_recv_data_ind_struct;
+
+typedef struct {
+ kal_uint8 hnb_name_length;
+ kal_uint8 hnb_name[MAX_HNB_NAME_LEN];
+ csg_type_enum csg_type;
+ kal_uint32 csg_id;
+ kal_int8 power_level;
+} csg_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 gsm_tx_pwr_red;
+ kal_uint8 umts_tx_pwr_red;
+} l4c_max_tx_pwr_red_req_struct;
+
+typedef struct {
+ pdp_addr_type_enum ip_addr_type;
+ kal_uint8 ipv4[IPV4_ADDR_LEN];
+ kal_uint8 ipv6[IPV6_ADDR_LEN];
+} ip_addr_struct;
+
+typedef struct
+{
+ EARFCN earfcn;
+ kal_uint8 bandwidth;
+} interrat_lte_cell_info_struct;
+
+typedef struct {
+ kal_bool is_dnsv4_present ;
+ kal_uint8 dnsv4[IPV4_ADDR_LEN] ;
+} ipv4_dns_struct ;
+
+typedef struct {
+ kal_bool is_dnsv6_present ;
+ kal_uint8 dnsv6[IPV6_ADDR_LEN] ;
+} ipv6_dns_struct ;
+
+#define NUM_OF_DNS_ADDR 2
+typedef struct {
+ ipv4_dns_struct v4[NUM_OF_DNS_ADDR];
+ ipv6_dns_struct v6[NUM_OF_DNS_ADDR];
+} dns_struct ;
+
+/* to replace l4ctst_at_response_ind_struct */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 length;
+ kal_uint8 string[128];
+}atptst_at_response_ind_struct;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ ratcm_utest_loopback_mode_cmd_enum cmd;
+} upcm_ratcm_test_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool remote_wakeup_enable;
+}l4c_usb_suspend_req_struct;
+
+#ifndef __MTK_TARGET__
+// for MSG_ID_L4C_INJECT_SBP_CHANGE_IND
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_sbp_feature_change;
+ sbp_md_feature_enum sbp_feature;
+ kal_bool new_feature_val;
+ kal_bool is_sbp_data_change;
+ sbp_md_feature_data_enum sbp_data;
+ kal_uint8 new_data_val;
+}l4c_inject_sbp_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat_mode;
+} l4c_ut_set_rac_rat_mode_context_ind_struct;
+#endif
+
+typedef struct
+{
+ // if is_in_dynamic_sbp = TRUE, sbp_id is SIM SBP ID, else it is legacy SBP ID
+ kal_uint32 sbp_id;
+ kal_uint32 sbp_sub_id;
+ kal_bool is_in_dynamic_sbp;
+ protocol_id_enum ps_id;
+ kal_uint8 mcc[MAX_MCC_STR_LEN];
+ kal_uint8 mnc[MAX_MNC_STR_LEN];
+ kal_uint8 iccid[21];
+ kal_uint8 trans_id; // trans_id correspondign to SIM READY IND
+ kal_bool is_boot_up;
+} sbp_reconfig_custom_param_struct;
+
+typedef kal_bool (*SBP_RECONFIG_CUSTOM_FUNC)(sbp_reconfig_custom_param_struct *param_ptr);
+
+
+typedef struct {
+ module_type mod_id;
+ sap_type sap_id;
+ kal_uint8 reconfig_type;
+ kal_uint8 gemini_check;
+ SBP_RECONFIG_CUSTOM_FUNC custom_func_ptr; /* IMS customized */
+}reconfigure_module_info_struct;
+
+typedef struct {
+ module_type mod_id;
+ kal_uint8 max_sim_num; /* Num of modules */
+}l4bpwr_module_info_struct;
+
+typedef struct {
+ module_type mod_id;
+ sap_type sap_id;
+ kal_uint32 reconfig_type;
+ kal_uint8 gemini_check;
+ SBP_RECONFIG_CUSTOM_FUNC custom_func_ptr; /* IMS customized */
+}sbp_reconfigure_module_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 reconfig_type;
+}l4c_me_reconfigure_req_struct, l4c_me_volte_reconfigure_req_struct, l4c_me_ims_reconfigure_req_struct, l4c_me_dsbp_reconfigure_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 reconfig_type;
+ kal_uint8 trans_id; // trans_id corresponding to SIM READY IND
+ kal_uint32 sim_sbp_id;
+}l4c_me_dsbp_reconfigure_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+ kal_bool is_all;
+} l4c_sbp_dsbp_reconfigure_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_all;
+} l4c_sbp_dsbp_reconfigure_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id; // trans_id correspondign to SIM READY IND
+}l4bsbp_me_reconfigure_not_occur_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4_rf_state_enum rf_state;
+ rfoff_cause_enum rfoff_cause;
+ l4_sim_state_enum sim_state;
+ kal_bool is_power_off; /* used by IMC to teardown IMS anyway */
+}l4bpwr_phone_state_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 cause;
+}l4bpwr_phone_state_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ ostd_ap_core_status_enum ap_core_status;
+}ostd_ap_core_status_req_struct, l4bpwr_ap_core_status_req_struct;
+
+typedef struct
+{
+ kal_uint8 result;
+ kal_uint8 plmn_id[7];
+ kal_uint8 lac[2];
+ kal_uint16 cell_id;
+ kal_uint16 arfcn;
+ kal_uint8 bsic;
+ kal_uint8 si3_raw_data[23];
+}l4c_pseudo_bs_info_struct;
+
+
+#if (defined L1_SIM)
+ typedef union{
+ kal_uint32 u_integer_num;
+ kal_int32 integer_num;
+ kal_uint8 string_s[MAX_ATCMD_EGMC_SHORT_STR_LEN];
+ }l4c_at_cmd_param_union;
+#else
+ typedef union{
+ kal_uint32 u_integer_num;
+ kal_int32 integer_num;
+ kal_uint8 string_s[MAX_ATCMD_EGMC_SHORT_STR_LEN+1];
+ }l4c_at_cmd_param_union;
+#endif
+
+typedef struct{
+ kal_uint8 param_num;
+
+ l4c_at_cmd_param_type type[MAX_ATCMD_EGMC_PARAM_NUM];
+ l4c_at_cmd_param_union param[MAX_ATCMD_EGMC_PARAM_NUM];
+}l4c_general_modem_configure_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 configure_string[MAX_ATCMD_EGMC_CONFIG_STR_LEN+1];
+ l4c_general_modem_configure_struct data;
+}l4c_general_modem_configure_set_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_bool result;
+ kal_uint8 configure_string[MAX_ATCMD_EGMC_CONFIG_STR_LEN+1];
+ l4c_general_modem_configure_struct data;
+}l4c_general_modem_configure_set_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 configure_string[MAX_ATCMD_EGMC_CONFIG_STR_LEN+1];
+}l4c_general_modem_configure_query_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 configure_string[MAX_ATCMD_EGMC_CONFIG_STR_LEN+1];
+ l4c_general_modem_configure_struct data;
+}l4c_general_modem_configure_query_cnf_struct;
+
+typedef struct{
+ kal_char *plmnId;
+ emm_op_enum op;
+} plmn_id_op_struct;
+
+typedef struct{
+ kal_char *plmnId;
+ vgmm_op_enum op;
+} vgmm_plmn_id_op_struct;
+
+#ifdef __TX_PWR_EXTENSION__
+typedef struct {
+ LOCAL_PARA_HDR
+ /*
+ *nv_write 0: clear band_no power offset in NVRAM
+ *nv_write 1: write band_no power offset to NVRAM
+ *nv_write 0xFF: not clear and not write band_no power offset to NVRAM
+ *
+ */
+ kal_uint8 src_id;
+ kal_uint8 nv_write;
+ kal_uint8 band_no;
+ kal_int16 max_tx_pwr_offset; /* 1/16 dB*/
+}l4cnl1_set_max_tx_pwr_offset_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+}l4cnl1_set_max_tx_pwr_offset_cnf_struct;
+
+typedef struct {
+ kal_uint8 band;
+ kal_uint8 tx_path; /*0/1*/
+ kal_int32 pwr_value;
+}nl1_tx_pwr_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+}l4cnl1_get_tx_pwr_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ nl1_tx_pwr_struct tx_pwr[2];
+}l4cnl1_get_tx_pwr_cnf_struct;
+typedef l4cnl1_get_tx_pwr_cnf_struct l4cnl1_get_tx_power_cnf_struct; // for logging
+#endif
+
+
+typedef struct _l4_cnap_struct
+{
+ kal_uint8 name_length;
+ kal_uint8 name_dcs;
+ kal_uint8 name[MAX_CHAR_CNAP * 2+1+2]; // +2 addition for KSC5601 DCS alphabet type
+} l4_cnap_struct;
+
+typedef struct {
+ kal_uint8 mcc2;
+ kal_uint8 mcc1;
+ kal_uint8 mnc3;
+ kal_uint8 mcc3;
+ kal_uint8 mnc2;
+ kal_uint8 mnc1;
+} pam_plmn_id_struct;
+
+typedef struct
+{
+ kal_uint8 apn_len;
+ ps_cause_enum pam_cause;
+ pam_plmn_id_struct plmn_id;
+ rat_enum reject_rat;
+ kal_bool is_backoff_timer_deactivated;
+ kal_uint32 backoff_timer_timeout_timestamp;
+ pam_procedure_enum reject_proc;
+} pam_non_standard_backoff_timer_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ at_cabtsri_ind_struct cabtsri_ind; // for standard AT cmd: +CABTSRI
+ pam_non_standard_backoff_timer_struct info; // for other related back-off timer info
+} pam_backoff_timer_report_ind_struct; //this struct should be removed after L4/TCM remove MSG_ID_PAM_BACKOFF_TIMER_REPORT_IND
+
+
+typedef struct {
+ kal_bool is_sst_present;
+ kal_uint8 sst;
+
+ kal_bool is_sd_present;
+ kal_uint8 sd[S_NSSAI_SD_LEN];
+
+ kal_bool is_mapped_configured_sst_present;
+ kal_uint8 mapped_configured_sst;
+
+ kal_bool is_mapped_configured_sd_present;
+ kal_uint8 mapped_configured_sd[S_NSSAI_SD_LEN];
+} pdus_s_nssai_struct;
+
+typedef struct {
+ kal_bool qos_5qi_present;
+ kal_bool gfbr_ul_present;
+ kal_bool gfbr_dl_present;
+ kal_bool mfbr_ul_present;
+ kal_bool mfbr_dl_present;
+ kal_bool avg_window_present;
+ kal_bool ebi_present;
+
+ kal_uint8 qos_5qi;
+ kal_uint64 gfbr_ul;
+ kal_uint64 gfbr_dl;
+ kal_uint64 mfbr_ul;
+ kal_uint64 mfbr_dl;
+ kal_uint16 avg_window;
+ kal_uint8 ebi;
+} qos_params_struct;
+
+typedef struct {
+ kal_uint8 qfi_with_default_rule;
+ kal_uint32 num_of_active_flow;
+ vgsm_flow_state_enum state[VGSM_MAX_QFI_NUM];
+ qos_params_struct flow_params[VGSM_MAX_QFI_NUM];
+
+} pdus_qos_flow_struct;
+
+typedef struct {
+ kal_uint8 qfi;
+ qos_params_struct qos_profile;
+} qf_params_struct;
+
+typedef struct {
+ kal_uint8 num_of_qf_params;
+ qf_params_struct qf_params[VGSM_MAX_QFI_NUM];
+} qos_flow_descriptions_struct;
+
+typedef struct {
+ kal_uint8 qfi;
+ vgsm_flow_action_enum qfi_action;
+
+} qos_flow_action_struct;
+
+typedef struct {
+ kal_uint8 num_of_flow_action;
+ qos_flow_action_struct flow_action[VGSM_MAX_QFI_NUM];
+
+} qos_flow_action_table_struct;
+
+typedef struct {
+ kal_uint64 dl;
+ kal_uint64 ul;
+} pdus_session_ambr_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+} l4c_sms_dsbp_reconfigure_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+}l4c_imcsms_dsbp_reconfigure_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+}l4c_dsbp_setting_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+}l4c_smsal_dsbp_reconfigure_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+} l4c_atci_dsbp_reconfigure_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vdm_call_status_enum indication;
+ vdm_call_domain_enum call_domain;
+ kal_bool is_emergency;
+} vdm_me_call_status_req_struct;
+
+
+
+typedef struct {
+ module_type mod_id;
+ sap_type sap_id;
+ vdm_call_status_enum reg_type;
+ kal_uint8 gemini_check;
+} call_status_notify_module_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ ia_apn_change_cause_enum cause;
+} ia_apn_change_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 ap_cid;
+ kal_uint8 d2_cid;
+ kal_uint8 ps_cid;
+} l4aps_tcm_update_cid_mapping_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 d2_cid;
+ kal_bool result;
+} l4aps_tcm_update_cid_mapping_cnf_struct;
+
+typedef struct {
+ kal_uint16 ref; /* concat. message reference*/
+ kal_uint8 total_seg; /* total segments*/
+ kal_uint8 seg; /* indicate which segment*/
+} sms_concat_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+}tcm_dsbp_reconfigure_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+}sm_dsbp_reconfigure_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 hvolte_mode;
+} l4c_hvolte_mode_switch_ind_struct;
+
+typedef struct
+{
+ l4_rf_state_enum rf_state;
+ rfoff_cause_enum rfoff_cause;
+ l4_sim_state_enum sim_state;
+} phone_state_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_power_off;
+ phone_state_info_struct phone_state_info[MAX_SIM_NUM];
+}l4bpwr_phone_state_finished_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_power_off;
+ phone_state_info_struct phone_state_info[MAX_SIM_NUM];
+}l4bpwr_mt_phone_state_ind_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct
+{
+ kal_uint16 len;
+ kal_uint8 uri[MAX_PHB_XDN_URI_LEN + 1];
+
+} l4_phb_uri_struct;
+#endif /* (__ECALL_SUPPORT__) || (__NG_ECALL_SUPPORT__) */
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sbp_reconfig_custom_param_struct sbp_parameters;
+} l4c_cc_dsbp_reconfigure_ind_struct;
+
+/* For AT SLA support*/
+typedef struct
+{
+ kal_uint8 cmd[20]; /* This value should be same as ATP_TABLE_DATA_SIZE*/
+}atp_factory_at_cmd_table_item;
+
+
+typedef struct
+{
+ kal_uint8 num_of_band;
+ nw_scan_band_enum band[MAX_NUM_BAND];
+ kal_uint8 num_of_channel;
+ kal_uint32 channel[MAX_NUM_CHANNEL];
+} network_scan_input_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 diff;
+ kal_uint8 period;
+} l4c_nl1icd_rfpd_set_ind_struct;
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+typedef struct {
+ plmn_id_struct plmn_id;
+ kal_uint16 tac;
+} public_enas_tai_struct;
+
+typedef struct en_sos_urn_association_struct {
+ kal_uint8 emergency_number_byte_count;
+ kal_uint8 emergency_number[MAX_EN_NUMBER_LENGTH];
+ kal_uint16 emergency_sos_urn_count;
+ kal_uint8 emergency_sos_urn[MAX_SOS_URN_LENGTH];
+} en_sos_urn_association_struct;
+
+typedef struct extended_emergency_number_list_struct {
+ plmn_id_struct eenl_plmn;
+ eenl_validity_enum eenl_validity;
+ kal_uint8 en_sos_urn_association_count;
+ en_sos_urn_association_struct *en_sos_urn_association;
+} extended_emergency_number_list_struct;
+
+typedef struct
+{
+ /* Cell Identity NR */
+ NRARFCN nrarfcn; // NRARFCN
+ kal_uint16 pci; // PCID
+ kal_uint16 dl_freq_band; // BAND
+ kal_uint8 num_of_plmn_list;
+ plmn_id_struct plmn_list[MAX_NUM_MULTI_PLMN]; // MCC + MNC
+ kal_uint8 cell_id[5]; // CI
+ kal_uint8 tac[3]; // TAC
+ kal_bool reg_status; // 0 for non-serving cell; 1 for serving cell
+
+ /* Signal Strength NR */
+ kal_int16 ss_rsrp_in_qdbm; // RSRP, 0x8000 for invalid
+ kal_int16 ss_rsrq_in_qdb; // RSRQ, 0x8000 for invalid
+ kal_int16 ss_sinr_in_qdb; // SINR, 0x8000 for invalid
+
+ kal_int16 csi_rsrp_in_qdbm; // not support, 0x8000 for invalid
+ kal_int16 csi_rsrq_in_qdb; // not support, 0x8000 for invalid
+ kal_int16 csi_sinr_in_qdb; // not support, 0x8000 for invalid
+} network_scan_5g_output_struct;
+
+typedef struct
+{
+ /* Cell Identity LTE */
+ EARFCN earfcn; // EARFCN
+ kal_uint16 pci; // PCID
+ kal_uint16 dl_freq_band; // BAND
+ kal_uint8 num_of_plmn_id; // Number of elements in plmn_id_list
+ plmn_id_struct plmn_id_list[MAX_NUM_MULTI_PLMN]; // MCC + MNC
+ kal_uint32 cell_id; // CI
+ kal_uint16 tac; // TAC
+ kal_bool reg_status; // 0 for non-serving cell; 1 for seving cell
+
+ /* Signal Strength LTE */
+ kal_int16 rssi; // RSSI
+ kal_int16 rsrp; // RSRP
+ kal_int16 rsrq; // RSRQ
+ kal_int16 snr; // SNR
+} network_scan_4g_output_struct;
+
+/* 2G Part*/
+typedef struct
+{
+ /* Cell Identity 2G*/
+ kal_uint16 arfcn; //ARFCN
+ kal_uint8 bsic; //BSIC
+ plmn_id_struct plmn_id; //MCC + MNC
+ kal_uint16 cell_id; // CI
+ kal_uint8 lai[2]; //LAC
+ /* Signal Strength 2G */
+ kal_int16 rssi; //RSSI
+ kal_bool reg_status; // 0: non-Serving cell; 1: Serving cell
+} network_scan_2g_output_struct;
+
+typedef struct
+{
+ /* Cell Identity UMTS*/
+ kal_uint16 uarfcn; // UARFCN
+ kal_uint16 psc; // PSC
+ plmn_id_struct plmn_id; // MCC + MNC
+ kal_uint32 cell_id; // CI
+ kal_uint16 lac; //LAC
+ /* Signal Strength UMTS*/
+ kal_int16 rscp; // rscp
+ kal_int16 ecno; // EcNO
+ kal_int32 rssi; // RSSI
+ kal_bool reg_status; // Registration Status (Serving Cell/Non Serving cell)
+ umts_duplex_mode_type umts_duplex_mode; // Duplex mode(UMTS_WCDMA_DUPLEX_MODE)
+} network_scan_3g_output_struct;
+
+typedef union
+{
+ network_scan_2g_output_struct nw_scan_2g_output;
+ network_scan_3g_output_struct nw_scan_3g_output;
+} network_scan_23g_union;
+
+typedef union
+{
+ network_scan_2g_output_struct nw_scan_2g_output;
+ network_scan_3g_output_struct nw_scan_3g_output;
+ network_scan_4g_output_struct nw_scan_4g_output;
+} network_scan_234g_union_type;
+
+typedef union
+{
+ network_scan_2g_output_struct nw_scan_2g_output;
+ network_scan_3g_output_struct nw_scan_3g_output;
+ network_scan_4g_output_struct nw_scan_4g_output;
+ network_scan_5g_output_struct nw_scan_5g_output;
+} network_scan_rat_union_type;
+#endif
+
+typedef struct
+{
+ kal_uint32 cell_id;
+ kal_uint16 lac_or_tac_value;
+ kal_uint8 plmn_id[MAX_PLMN_LEN+1];
+} l4bnw_cell_info_struct;
+
+typedef struct
+{
+ rat_enum current_rat;
+
+ l4bnw_cell_info_struct cs_cell_info;
+ l4bnw_cell_info_struct ps_cell_info;
+
+ /* C2K cell info */
+ kal_uint16 sid;
+ kal_uint16 nid;
+ kal_uint16 base_id;
+} l4bnw_cs_ps_cell_info_struct;
+
+/* For AT CMD ON/OFF support*/
+typedef struct
+{
+ kal_uint8 cmd[20]; /* This value should be same as ATP_TABLE_DATA_SIZE*/
+}atp_block_at_cmd_table_item;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id; // piggy-back
+ kal_uint8 sim_ef_type; // 0 - Unknown, 1 - OPL, 2 - PNN, 3 - OPL5G
+} l4c_eons_sim_data_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id; // piggy-back
+ kal_bool result; // TRUE for data exit (peer buffer), FALSE for no data exist
+ kal_uint8 sim_ef_type; // 0 - Unknown, 1 - OPL, 2 - PNN, 3 - OPL5G
+ kal_uint8 num_record;
+ kal_uint8 rec_size;
+} l4c_eons_sim_data_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 event_type;
+} l4c_dhl_event_notify_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ rat_enum rat; /*1 - GSM, 2 - UMTS, 4 - LTE*/
+ kal_uint8 signal_type; /* When rat GSM, 0 - RSSI, when rat UMTS, 0 - RSCP, When rat LTE, 0 - RSRP, 1 - RSRP, 2 - RSSNR */
+ kal_uint8 mode; /* 0 - reset all thresholds. 1 - set threshold as provided in parameters below */
+ kal_uint8 num_of_thresholds;
+ kal_int16 threshold[MAX_NUM_OF_SIGNAL_THRESH];
+ kal_uint32 HysterisisMS;
+ kal_uint32 HysterisisDB;
+} l4cps_set_signal_reporting_criteria_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 sig1;
+ kal_uint8 sig2;
+ kal_uint8 ber;
+ kal_int32 rssi_in_qdbm;
+ kal_int32 rscp_in_qdbm;
+ kal_int32 ecn0_in_qdbm;
+ kal_int32 rsrq_in_qdbm;
+ kal_int32 rsrp_in_qdbm;
+ kal_int16 rs_snr_in_qdb;
+ kal_int16 serv_band;
+ rat_enum rat;
+} l4c_public_signal_info_ind_struct;
+
+
+#ifdef __TX_PWR_EXTENSION__
+typedef struct{
+ kal_int8 tx_pwr_value;
+ kal_uint8 band;
+ kal_uint8 phy_idx;
+}l4c_tx_pwr_info_per_antenna;
+#endif
+#endif /* _PS_PUBLIC_STRUCT_H_ */
diff --git a/mcu/interface/protocol/general/ps_public_ups_def.h b/mcu/interface/protocol/general/ps_public_ups_def.h
new file mode 100644
index 0000000..a582645
--- /dev/null
+++ b/mcu/interface/protocol/general/ps_public_ups_def.h
@@ -0,0 +1,81 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps_public_ups_def.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * The public definitions of module UPS.
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef PS_PUBLIC_UPS_DEF_H
+#define PS_PUBLIC_UPS_DEF_H
+
+
+#endif /* PS_PUBLIC_UPS_DEF_H */
diff --git a/mcu/interface/protocol/general/ps_public_ups_enum.h b/mcu/interface/protocol/general/ps_public_ups_enum.h
new file mode 100644
index 0000000..c3d1be2
--- /dev/null
+++ b/mcu/interface/protocol/general/ps_public_ups_enum.h
@@ -0,0 +1,97 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps_public_ups_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * The public enums of module UPS.
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef PS_PUBLIC_UPS_ENUM_H
+#define PS_PUBLIC_UPS_ENUM_H
+
+typedef enum
+{
+ ABM_RNDIS_DEACT_TYPE_DETACH = 0,
+ ABM_RNDIS_DEACT_TYPE_SUSPEND
+} abm_rndis_deact_type_enum;
+
+typedef enum {
+ MBIM_TERMINATE_CLOSE,
+ MBIM_TERMINATE_RESET,
+ MBIM_TERMINATE_PLUGOUT,
+ MBIM_TERMINATE_STOP_LOOPBACK_TEST
+} mbim_terminate_enum;
+
+#endif /* PS_PUBLIC_UPS_ENUM_H */
diff --git a/mcu/interface/protocol/general/ps_public_utility.h b/mcu/interface/protocol/general/ps_public_utility.h
new file mode 100644
index 0000000..01ed322
--- /dev/null
+++ b/mcu/interface/protocol/general/ps_public_utility.h
@@ -0,0 +1,391 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps_public_utility.h
+ *
+ * Description:
+ * ------------
+ * This file is intends for put the header of PS public API
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+*****************************************************************************/
+#ifndef _PS_PUBLIC_UTILITY_H_
+#define _PS_PUBLIC_UTILITY_H_
+
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "sim_public_enum.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "keypad_sw.h"
+#include "nvram_data_items.h"
+#include "sbp_public_utility.h"
+
+#include "c2k_irat_msg_struct.h"
+#include "l3_inc_enums_public.h"
+
+extern kal_uint8 l4c_cc_ss_string_parsing(kal_uint8 *string_ptr, kal_uint8 length, kal_uint8 sim_interface, kal_bool is_in_call);
+
+extern sim_interface_enum l4c_gemini_get_actual_sim_id(sim_interface_enum simId);
+
+extern sim_interface_enum l4c_gemini_get_switched_sim_id(sim_interface_enum simId);
+
+extern sim_interface_enum l4c_csus_get_actual_sim_slot_id(protocol_id_enum sim_ps_Id);
+
+extern protocol_id_enum l4c_csus_get_switched_sim_ps_id(sim_interface_enum sim_slot_Id);
+
+extern module_type rmmi_get_default_uart_owner(void);
+
+extern void smsal_gsm7_unpack(kal_uint8 *packed_data, kal_uint8 *unpacked_data, kal_uint16 data_len, kal_uint16 offset);
+extern kal_uint16 smsal_msg_len_in_character(kal_uint8 dcs, kal_uint16 len, kal_uint8 last_byte);
+extern kal_bool smsal_is_support_r4_mbdn(void);
+extern void smsal_sdm_set_tp_rd(kal_uint8 *str, kal_uint16 str_len);
+
+#if defined(__IMS_SUPPORT__) || defined(__SMS_IMS_SUPPORT__)
+extern kal_bool sdm_is_sms_tp_rd_set(void);
+#endif
+
+extern kal_uint8 smsal_cmgf_query_with_ps_id(kal_uint8 ps_id);
+extern kal_uint8 smsal_get_mr(kal_uint8 slot);
+extern kal_bool smsal_is_initing_or_sim_refreshing(kal_uint8 slot);
+extern kal_bool smsal_is_csca_set(void);
+
+
+extern kal_bool l4c_kbd_getkeydata(kbd_data *keydata);
+
+//move to ATP extern void rmmi_sleep_mode_callback(void);
+
+extern void l4c_report_voice_codec(kal_uint16 codec);
+
+extern kal_bool tcm_get_ims_flag_by_nsapi(kal_uint8 nsapi, kal_uint8 sim_interface);
+extern kal_bool tcm_get_nw_applied_ims_flag_by_nsapi(kal_uint8 nsapi, kal_uint8 sim_interface);
+extern kal_uint16 tcm_get_ims_flag_to_bitmap(kal_uint8 sim_interface);
+// CSR
+#ifdef __VIDEO_CALL_SUPPORT__
+typedef void (*fp_vt_csr_activate_req)(void);
+typedef void (*fp_vt_csr_deactivate_req)(void);
+
+extern fp_vt_csr_activate_req csr_get_fp_vt_csr_activate_req(void);
+extern fp_vt_csr_deactivate_req csr_get_fp_vt_csr_deactivate_req(void);
+#endif
+
+extern vg_option_enum l4crac_get_vg_option (protocol_id_enum ps_id);
+
+#if defined(__FAST_DORMANCY__) || defined(__NO_PSDATA_SEND_SCRI__)
+/****************************************************************************
+ * Function: RRC_CPCSupport
+ *
+ * Description: Return TRUE if UE supports CPC.
+ *****************************************************************************/
+extern kal_bool RRC_CPCSupport(void);
+
+#ifdef __FAST_DORMANCY__
+/****************************************************************************
+ * Function: RRC_NW_R8_FD_Support
+ *
+ * Description: Return TRUE if NW supports T323.
+ *****************************************************************************/
+extern kal_bool RRC_NW_R8_FD_Support();
+#endif /* __FAST_DORMANCY__ */
+#endif /* __FAST_DORMANCY__ || __NO_PSDATA_SEND_SCRI__ */
+
+
+/*****************************************************************************
+* FUNCTION
+* sbp_query_id()
+*
+* DESCRIPTION
+* This function is used to query SBP ID received by modem
+*
+* PARAMETERS
+* [IN] N/A
+* RETURNS
+* the unsigned 4-byte value for the SBP ID
+*****************************************************************************/
+extern kal_uint32 sbp_query_id(void);
+
+/*****************************************************************************
+* FUNCTION
+* l4c_get_iratmode_req()
+*
+* DESCRIPTION
+* This function is used to get the setting of iratmode
+*
+* PARAMETERS
+* N/A
+*
+* RETURNS
+* l4c_irat_type_enum 0: AP based iRAT; 1: modem based iRAT
+*****************************************************************************/
+extern l4c_irat_type_enum l4c_get_iratmode_req(void);
+
+#ifdef __CDMA2000_RAT__
+/*****************************************************************************
+* FUNCTION
+* errc_cel_com_lte_rat_info_to_as_info()
+*
+* DESCRIPTION
+* This function is used in IRAT from C2K to LTE (LTE <--RAT_CHANGE_REQ-- C2K) to convert LTE RAT info (from C2K) into EAS RAT info (for EAS)
+*
+* PARAMETERS
+* a_irat_type [IN] IRAT type from C2K to LTE
+* *a_lte_rat_info [IN] LTE RAT info from C2K
+*
+* RETURNS
+* EAS RAT info pointer, which the data is converted from *a_lte_rat_info
+*****************************************************************************/
+extern void *errc_cel_com_lte_rat_info_to_as_info(irat_type_enum a_irat_type, cas_eas_activate_ecell_req_struct *a_lte_rat_info);
+
+/*****************************************************************************
+* FUNCTION
+* errc_cel_com_as_info_ptr_to_as_irat_info()
+*
+* DESCRIPTION
+* This function is used in IRAT from C2K to LTE (LTE --RAT_CHANGE_CNF--> C2K) to convert EAS RAT info (from EAS) into C2K RAT info (for C2K)
+*
+* PARAMETERS
+* *a_as_info_ptr [IN] LTE RAT info from EAS
+* *c2k_rat_info [IN/OUT] LTE RAT info, containing info converted from *a_as_info_ptr, for C2K
+*
+* RETURNS
+* N/A
+*****************************************************************************/
+extern void errc_cel_com_as_info_ptr_to_c2k_rat_info(void *a_as_info_ptr, cas_eas_activate_ecell_cnf_struct *c2k_rat_info);
+
+/*****************************************************************************
+* FUNCTION
+* errc_cel_com_as_info_to_c2k_rat_info()
+*
+* DESCRIPTION
+* This function is used in IRAT from LTE to C2K (LTE --RAT_CHANGE_IND--> C2K) to convert EAS RAT info (from EAS) into C2K RAT info (for C2K)
+*
+* PARAMETERS
+* *a_as_info_ptr [IN] C2K RAT info from EAS
+* *c2k_rat_info [IN/OUT] C2K RAT info, containing info converted from *a_as_info_ptr, for C2K
+*
+* RETURNS
+* N/A
+*****************************************************************************/
+extern void errc_cel_com_as_info_to_c2k_rat_info(eas_cas_activate_ccell_req_struct *c2k_rat_info, void *a_as_info_ptr);
+
+/*****************************************************************************
+* FUNCTION
+* errc_cel_com_c2k_rat_info_to_as_info_ptr()
+*
+* DESCRIPTION
+* This function is used in IRAT from LTE to C2K (LTE <--RAT_CHANGE_RSP-- C2K) to convert C2K RAT info (from C2K) into EAS RAT info (for EAS)
+*
+* PARAMETERS
+* a_irat_type [IN] IRAT type from LTE to C2K
+* *c2k_rat_info [IN] C2K RAT info from C2K
+*
+* RETURNS
+* C2K RAT info pointer, which the data is converted from *c2k_rat_info
+*****************************************************************************/
+extern void *errc_cel_com_c2k_rat_info_to_as_info_ptr(irat_type_enum a_irat_type, eas_cas_activate_ccell_cnf_struct *c2k_rat_info);
+#endif /* __CDMA2000_RAT__ */
+
+
+extern void l4ctcm_translate_apn_to_spec_format(kal_uint8 *access_name, kal_uint8 *src_apn, kal_uint8 apn_len);
+extern kal_uint8 l4ctcm_translate_apn_to_string_format(kal_uint8 *src_apn, kal_uint8 *dst_apn);
+/*****************************************************************************
+* FUNCTION
+* l4c_set_dynamic_sbp_id()
+*
+* DESCRIPTION
+* Change SBP ID dynamically according to the inserted SIM.
+*
+* PARAMETERS
+* void
+*
+* RETURNS
+* void
+*****************************************************************************/
+
+extern void l4c_set_dynamic_sbp_id(void);
+
+#if defined (__TC01_NVRAM__) || defined(__TC01__) //MOLY00294741
+/*****************************************************************************
+* FUNCTION
+* sbp_query_md_feature_custom()
+*
+* DESCRIPTION
+* This function is used to query modem configuration
+* for customer's specific Single Binary Platform (SBP) features
+* MUSE - ALPS0144925
+*
+* PARAMETERS
+* feature [IN] modem feature
+*
+* RETURNS
+* KAL_TRUE : if this feature is turned on
+* KAL_FALSE : if this feature is turned off
+*****************************************************************************/
+extern kal_bool sbp_query_md_feature_custom(sbp_md_feature_custom_enum feature );
+
+/*****************************************************************************
+* FUNCTION
+* sbp_set_md_feature()
+*
+* DESCRIPTION
+* This function is used to query modem configuration for customer's features
+* MUSE - ALPS0144925
+* PARAMETERS
+* feature [IN] modem feature
+* is_turned_on [IN]
+* sbp_feature_ptr [IN/OUT]
+*
+* RETURNS
+* KAL_TRUE if success; otherwise KAL_FALSE
+*****************************************************************************/
+kal_bool sbp_set_md_feature_custom(sbp_md_feature_custom_enum feature,
+ kal_bool is_turned_on,
+ nvram_ef_sbp_modem_config_struct *sbp_custom_ptr);
+#endif /* __TC01__ */
+
+/*****************************************************************************
+* FUNCTION
+* check_if_icc_is_KOR_KT_OP_card()
+*
+* DESCRIPTION
+* This function is used to check whether the inserted SIM card is KT Operator or not.
+*
+* PARAMETERS
+*
+* RETURNS
+* TRUE or FALSE
+*****************************************************************************/
+extern kal_bool check_if_icc_is_KOR_KT_OP_card();
+
+/*****************************************************************************
+* FUNCTION
+* check_if_icc_is_KOR_SKT_OP_card()
+*
+* DESCRIPTION
+* This function is used to check whether the inserted SIM card is SKT Operator or not.
+*
+* PARAMETERS
+*
+* RETURNS
+* TRUE or FALSE
+*****************************************************************************/
+extern kal_bool check_if_icc_is_KOR_SKT_OP_card();
+
+/*****************************************************************************
+* FUNCTION
+* check_if_icc_is_KOR_KCT_OP_card()
+*
+* DESCRIPTION
+* This function is used to check whether the inserted SIM card is KCT(SKT MVNO) Operator or not.
+*
+* PARAMETERS
+*
+* RETURNS
+* TRUE or FALSE
+*****************************************************************************/
+extern kal_bool check_if_icc_is_KOR_KCT_OP_card();
+
+/*****************************************************************************
+* FUNCTION
+* check_if_icc_is_KOR_LGUPLUS_OP_card()
+*
+* DESCRIPTION
+* This function is used to check whether the inserted SIM card is LGUPLUS Operator or not.
+*
+* PARAMETERS
+*
+* RETURNS
+* TRUE or FALSE
+*****************************************************************************/
+extern kal_bool check_if_icc_is_KOR_LGUPLUS_OP_card();
+
+/*****************************************************************************
+* FUNCTION
+* check_if_icc_is_KOR_OP_card()
+*
+* DESCRIPTION
+* This function is used to check whether the inserted SIM card is Korea Operator or not.
+*
+* PARAMETERS
+*
+* RETURNS
+* TRUE or FALSE
+*****************************************************************************/
+extern kal_bool check_if_icc_is_KOR_OP_card();
+
+/*******************************************************************************
+ Function Name:
+ mrs_eas_is_supported_band_public
+
+ Parameters: [in] lte_band:
+
+ Return Value: If input band is LTE / UE supported band
+
+ Description:
+ This function checks if input band is LTE / UE supported band.
+ It is defined in public header file for modules not belong to Modem private group, ex : Middleware LBS
+*******************************************************************************/
+kal_bool mrs_eas_is_supported_band_public(kal_uint16 sim_index, kal_uint16 lte_band); /*form 1 to max_band*/
+
+/*****************************************************************************
+* FUNCTION
+* nas_get_power_on_prefer_rat()
+*
+* DESCRIPTION
+* This function will return the power on prefer rat from NWSEL
+*
+* PARAMETERS
+*
+* RETURNS
+* rat_enum
+*****************************************************************************/
+extern rat_enum nas_get_power_on_prefer_rat(rat_enum rat);
+
+#ifdef __IMS_SUPPORT__
+extern kal_bool imcsms_get_mt_ims_sms_info(sms_concat_struct sms_concat_info,kal_uint32 *seg_bitmask,kal_uint8 ps_id);
+#endif
+extern kal_bool sms_get_mt_sgs_sms_info(sms_concat_struct imcsms_concat_info,kal_uint32 *seg_bitmask,kal_uint8 ps_id);
+
+extern kal_bool smsal_duplicated_sms_detection_by_ps_id(kal_uint8 *new_mt_pdu, kal_uint16 new_mt_pdu_len,kal_uint8 ps_id);
+
+extern kal_bool phb_util_is_usim_csim(kal_uint8 sim_num);
+
+#endif /* _PS_PUBLIC_UTILITY_H_ */
+
diff --git a/mcu/interface/protocol/general/ps_ratdm_struct.h b/mcu/interface/protocol/general/ps_ratdm_struct.h
new file mode 100644
index 0000000..33bbcff
--- /dev/null
+++ b/mcu/interface/protocol/general/ps_ratdm_struct.h
@@ -0,0 +1,204 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * ps2ratdm_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct between Application and RATDM for PS service
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _PS_RATDM_STRUCT_H
+#define _PS_RATDM_STRUCT_H
+
+#ifndef __L1_STANDALONE__
+
+#include "kal_general_types.h"
+//#include "uas_data_common.h"
+#include "kal_public_defs.h"
+
+typedef enum{
+ PS_STATISTICS_RESET_ALL, // reset all data (eset context 1, 2, 3¡K tx data amount to zero, eset context 1, 2, 3¡K rx data amount to zero)
+ PS_STATISTICS_RESET_ALL_TX, // reset context 1, 2, 3¡K tx data amount to zero
+ PS_STATISTICS_RESET_ALL_RX, // reset context 1, 2, 3¡K rx data amount to zero
+ PS_STATISTICS_CHECK_ARRAY_TO_RESET //(check detail_reset_command[] array content to determine reset which content)
+}ext_call_history_reset_operation_enum;
+
+typedef enum{
+ RATDM_SHAQ_SOCKET_EMPTY_VALUE = 0xFE,
+ RATDM_SHAQ_SOCKET_INVALID_VALUE = 0xFF
+}ratdm_shaq_socket_value_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+#ifndef __LTE_RAT__
+ kal_uint8 context_id;
+#endif
+ kal_uint8 pool_id;
+
+ /* for RATDM usage */
+ kal_uint8 nsapi;
+ kal_uint16 npdu_num;
+} ps_data_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+#ifndef __LTE_RAT__
+ kal_uint8 context_id;
+#endif
+ kal_uint8 pool_id;
+
+ /* for RATDM usage */
+ kal_uint8 nsapi;
+ kal_uint16 npdu_num;
+} ps_data_req_struct;
+
+typedef struct ratdm_ps_data_ind_struct_tag
+{
+ PEER_BUFF_HDR
+
+ kal_uint8 pool_id;
+#ifndef __LTE_RAT__
+ kal_uint8 context_id;
+#endif
+ kal_uint8 nsapi;
+ kal_uint16 npdu_num;
+#ifdef __3G_NEW_DATA_PLANE_ARCH__
+ void *gpd_ptr; //umts_dl_gpd *gpd_ptr; need to include "uas_data_common.h"
+ void *last_gpd_ptr; //umts_dl_gpd *last_gpd_ptr; need to include "uas_data_common.h"
+ peer_buff_struct *pTemp;
+#endif
+}ratdm_ps_data_ind_struct;
+
+#ifdef __3G_NEW_DATA_PLANE_ARCH__
+// for MSC ~ it is necessary to be defined
+typedef ratdm_ps_data_ind_struct peer_buff_ps_dscr_data_struct;
+#endif
+
+#endif // ~ #ifndef __L1_STANDALONE__
+
+#endif
+
+
+
diff --git a/mcu/interface/protocol/general/psilib_api.h b/mcu/interface/protocol/general/psilib_api.h
new file mode 100644
index 0000000..af2280b
--- /dev/null
+++ b/mcu/interface/protocol/general/psilib_api.h
@@ -0,0 +1,214 @@
+/******************************************************************************
+* 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).
+*
+*******************************************************************************/
+
+#ifndef _PSILIB_API_H
+#define _PSILIB_API_H
+
+// include dependency headers
+
+/********************************************
+ * MACROS *
+ ********************************************/
+#include "kal_general_types.h"
+#include "ps_public_enum_public.h"
+#include "kal_public_defs.h"
+
+/********************************************
+ * TYPE DEFINITIONS & ENUMS *
+ ********************************************/
+#define PSILIB_NULL_PSI L4_PS_NULL_PSI
+#define PSILIB_INVALID_CID L4_PS_NULL_CID
+#define PSILIB_INVALID_APN_IDX -1
+#define PSILIB_INVALID_APN_NAME "#do_not_care"
+
+typedef enum {
+ PSILIB_PSI_OP_RELEASE,
+ PSILIB_PSI_OP_OCCUPY,
+ PSILIB_PSI_OP_QUERY,
+ PSILIB_PSI_OP_INJECT,
+ PSILIB_PSI_OP_REQUIRE,
+ PSILIB_PSI_OP_UT = 254,
+ PSILIB_PSI_OP_MAX,
+} psilib_op_enum;
+
+/********************************************
+ * VARIABLES *
+ ********************************************/
+
+// only extern variables are allowed in header
+
+/********************************************
+ * FUNCTION DECLARATIONS *
+ ********************************************/
+
+/**
+ * @brief Initialize the PSILIB (to be called by module_init())
+ * @param[in] null
+ * @return
+ * - KAL_TRUE, always
+ */
+kal_bool psilib_init(void);
+
+/**
+ * @brief Allocate a psi with the specified apn name, apn_idx and cid
+ * @param[in] apn name (to be associated with psi)
+ * @param[in] apn index(to be associated with psi)
+ * @param[in] cid (to be associated with psi)
+ * @return
+ * - KAL_TRUE if successful;
+ * - KAL_FALSE if failed (ex. all psi are occupied by other cids; the specified cid is used to alloc too many times)
+ */
+kal_bool psilib_alloc_psi_by_apn_idx_cid(kal_uint8 sim_interface, kal_char *apn_name,
+ kal_int8 apn_idx, kal_uint8 cid);
+
+/**
+ * @brief Module IP occupies a psi with the specified apn name, apn_idx and cid. It usually used by EPSI_REQ of ILM
+ * @param[in] apn name (to be associated with psi)
+ * @param[in] apn index(to be associated with psi)
+ * @param[in] module type(to record occupier of associated psi)
+ * @return
+ * - KAL_TRUE if successful;
+ * - KAL_FALSE if failed (ex. all psi are occupied by other cids; the specified cid is used to alloc too many times)
+ */
+kal_bool psilib_alloc_psi_by_apn_idx(kal_uint8 sim_interface, kal_char *apn_name,
+ kal_int8 apn_idx, module_type mod_id);
+
+/**
+ * @brief Allocate a psi with the specified cid
+ * @param[in] cid (to be assoicated with psi)
+ * @return
+ * - KAL_TRUE if successful;
+ * - KAL_FALSE if failed (ex. all psi are occupied by other cids; the specified cid is used to alloc too many times)
+ */
+kal_bool psilib_alloc_psi_by_cid(kal_uint8 sim_interface, kal_uint8 cid);
+
+/**
+ * @brief Allocate a psi with the specified psi, apn name and apn_idx
+ * @param[in] apn name (to be associated with psi)
+ * @param[in] apn index(to be associated with psi)
+ * @param[in] psi (a used/existing psi)
+ * @param[in] module type(to record occupier of associated psi)
+ * @return
+ * - KAL_TRUE if successful;
+ * - KAL_FALSE if failed (ex. all psi are occupied by other cids; the specified cid is used to alloc too many times)
+ */
+kal_bool psilib_require_psi_by_psi_apn_idx(kal_uint8 sim_interface, kal_char *apn_name,
+ kal_int8 apn_idx, kal_int8 psi, module_type mod_id);
+
+/**
+ * @brief Query the associated psi for the specified cid
+ * @param[in] cid (to know its associated psi)
+ * @return
+ * - [psi_val] if successful;
+ * - PSILIB_NULL_PSI if failed (ex. the specified cid does not allocate with any psi)
+ */
+kal_uint8 psilib_query_psi_by_cid(kal_uint8 sim_interface, kal_uint8 cid);
+
+/**
+ * @brief Query the associated psi for the specified apn name and apn index
+ * @param[in] apn_name (to know its associated psi)
+ * @param[in] apn_idx (to know its associated psi)
+ * @param[in] mod_id (to know its occupied psi)
+ * @return
+ * - [psi_val] if successful;
+ * - PSILIB_NULL_PSI if failed (ex. It did not allocate any psi with specified apn name and apn index)
+ */
+kal_uint8 psilib_query_psi_by_apn_idx(kal_uint8 sim_interface, kal_char *apn_name, kal_int8 apn_idx, module_type mod_id);
+
+/**
+ * @brief De-allocate psi with the specified cid
+ * @param[in] cid (it would be de-associated with the psi)
+ * @return
+ * - KAL_TRUE if successful;
+ * - KAL_FALSE if failed (ex. the specified cid is not associated with psi before calling dealloc)
+ */
+kal_bool psilib_dealloc_psi_by_cid(kal_uint8 sim_interface, kal_uint8 cid);
+
+/**
+ * @brief Release psi which occupied by someone module
+ * @param[in] psi (to release specified psi)
+ * @param[in] mod_id (the module wants to release psi (Occupier))
+ * @return
+ * - KAL_TRUE if successful;
+ * - KAL_FALSE if failed (ex. the specified psi's ref_count is already 0)
+ */
+kal_bool psilib_release_psi_by_psi(kal_uint8 sim_interface, kal_uint8 psi, module_type mod_id);
+
+/**
+ * @brief De-allocate psi with the specified apn name and apn index
+ * @param[in] apn_name (it would de-associated with psi)
+ * @param[in] apn_idx (it would de-associated with psi)
+ * @param[in] mod_id (the module wants to release psi (Occupier))
+ * @return
+ * - KAL_TRUE if successful;
+ * - KAL_FALSE if failed (ex. the specified apn name and apn index were not associated with psi before calling dealloc)
+ */
+kal_bool psilib_dealloc_psi_by_apn_idx(kal_uint8 sim_interface, kal_char *apn_name, kal_int8 apn_idx, module_type mod_id);
+
+/**
+ * @brief Update apn and apn index to associated psi with the specified cid
+ * @param[in] cid (to know its associated psi)
+ * @param[in] apn_name (to update apn of associated psi)
+ * @param[in] apn_idx (to update apn_idx of associated psi)
+ * @return
+ * - KAL_TRUE if successful;
+ * - KAL_FALSE if failed (ex. can not find psi according to cid)
+ */
+kal_bool psilib_update_apn_idx_by_cid(kal_uint8 sim_interface, kal_uint8 cid, kal_char *apn_name, kal_int8 apn_idx);
+
+/**
+ * @brief Inject PSI value for testing purpose
+ * @param[in] PSI
+ * @return
+ */
+void psilib_inject_psi(kal_uint8 sim_interface, kal_uint8 psi);
+
+#ifndef __MTK_TARGET__
+/**
+ * @brief Unit test of psilib
+ * @return
+ */
+void psilib_ut_handler(void);
+
+/**
+ * @brief Reset the PSILIB (to be called by module_reset())
+ * @param[in] null
+ * @return
+ * - KAL_TRUE, always
+ */
+kal_bool psilib_reset(void);
+#endif // #ifndef __MTK_TARGET__
+
+#endif /* _PSILIB_API_H */
diff --git a/mcu/interface/protocol/general/ratdm_shaq_application_api.h b/mcu/interface/protocol/general/ratdm_shaq_application_api.h
new file mode 100644
index 0000000..5be24bc
--- /dev/null
+++ b/mcu/interface/protocol/general/ratdm_shaq_application_api.h
@@ -0,0 +1,177 @@
+/******************************************************************************
+* 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:
+ * --------------------------------------------------------
+ * ratdm_shaq_application_api.h
+ *
+ * Project:
+ * --------------------------------------------------------
+ *
+ *
+ * Description:
+ * --------------------------------------------------------
+ * public R8 SHAQ API for application modules (PPP, UPS, TCPIP...etc)
+ *
+ * Author:
+ * --------------------------------------------------------
+ * -------
+ *
+ * --------------------------------------------------------
+ * $Log$
+ *
+ * 03 30 2017 ravitej.ballakur
+ * [MOLY00238716] [Gen93] 6M RATDM Multiple PS feature sync
+ * M-PS changes for UMOLYA.
+ *
+ * 05 20 2015 head.hsu
+ * [MOLY00089131] [MT6291 Gemini] L+W+W+W code revision check in
+ * ;RATDM/RABM/PDCP/CSR part check-in
+ *
+ * 08 22 2012 andrew.wu
+ * [MOLY00002319] [MSBB] Remove Invalid Inter-Category Including.
+ * modem related option move to modem internal
+ *
+ * 06 11 2012 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ * 01 30 2012 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ * 01 30 2012 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ * 01 11 2012 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ * 09 21 2011 carlson.lin
+ * removed!
+ * <saved by Perforce>
+ *
+ *
+ *
+ ******************************************************************************/
+
+#ifndef _RATDM_SHAQ_APPLICATION_API_H
+#define _RATDM_SHAQ_APPLICATION_API_H
+
+#include "kal_general_types.h"
+#include "flc2_config.h"
+
+/* fake header for easy conversion */
+typedef struct SHAQ_qElmtHeader
+{
+ PEER_BUFF_HDR
+ struct SHAQ_qElmtHeader *next_shaqElmt;
+} SHAQ_qElmtHeader;
+
+/* Error codes & Return codes */
+typedef enum
+{
+ SHAQ_OK,
+ SHAQ_GENERAL_ABORT,
+ SHAQ_CONVENTIONAL_TRACK,
+ UPLINK_DATA_GOTO_CONVENTIONAL_TRACK = SHAQ_CONVENTIONAL_TRACK,
+ SHAQ_KICK_UL2,
+ SHAQ_NOT_INITIATED,
+ SHAQ_CANNOT_FIND_Q,
+ SHAQ_CANNOT_FIND_NSAPI_FROM_CONTEXT_ID,
+ SHAQ_NSAPI_CHECK_FAIL,
+ SHAQ_EXCEPTION,
+ SHAQ_ABORT,
+ SHAQ_NOT_READY,
+ SHAQ_CANNOT_FIND_CID_FROM_RBID
+} SHAQ_retCode;
+
+typedef enum
+{
+ SHAQ_ENQUEUE_PRIORITY_QUEUE,
+ SHAQ_ENQUEUE_NORMAL_QUEUE,
+ SHAQ_ENQUEUE_DECIDED_BY_SHAQ_API,
+ SHAQ_NUMBER_OF_ENQUEUE_DECISIONS
+} SHAQ_ENQUEUE_WHICH_QUEUE;
+
+#ifndef __RATDM_UL_SHAQ__
+typedef struct ratdm_ps_data_req_struct_tag
+{
+ PEER_BUFF_HDR
+
+ kal_uint8 pool_id;
+ kal_uint8 context_id;
+ kal_uint8 nsapi;
+ kal_uint16 npdu_num;
+ kal_uint16 ori_free_header_space;
+ struct ratdm_ps_data_req_struct_tag *next;
+ kal_uint8 padding[12]; // To feet 24 bytes, adding 8bytes header as 32 bytes to fulfill cacheline
+}ratdm_ps_data_req_struct;
+#else // #ifndef __RATDM_UL_SHAQ__
+typedef struct ratdm_ps_data_req_struct_tag
+{
+ //Dont touch this part
+ //M_SHAQ_ELMT_HEADER
+ PEER_BUFF_HDR
+ struct SHAQ_qElmtHeader *next_shaqElmt;
+ // Hands off please
+
+ kal_uint8 pool_id;
+ kal_uint8 context_id;
+ kal_uint8 nsapi;
+ kal_bool bConfirm;
+
+ kal_uint16 npdu_num;
+ kal_uint16 ori_free_header_space;
+
+ kal_uint8 TxRBId;
+ kal_uint8 ap_enqueue_decision; // SHAQ_ENQUEUE_WHICH_QUEUE enum
+ kal_uint16 bitLength;
+ kal_uint32 MUI;
+ struct ratdm_ps_data_req_struct_tag *next;
+}ratdm_ps_data_req_struct;
+
+#endif // ~ #ifndef __RATDM_UL_SHAQ__
+
+/* MACRO DEFINITION */
+#define SHAQ_psEnqueue(pPeer, pool_id, cid, taskid, sim_interface) SHAQ_psEnqueueWithPriorityInfo((pPeer), (pool_id), (cid), (taskid), SHAQ_ENQUEUE_DECIDED_BY_SHAQ_API, (sim_interface))
+
+/* EXPORT FUNCTIONS */
+extern SHAQ_retCode SHAQ_psEnqueueWithPriorityInfo(ratdm_ps_data_req_struct *pPeer, flc2_pool_id_enum pool_id, kal_uint8 cid, kal_taskid taskid, SHAQ_ENQUEUE_WHICH_QUEUE ap_enqueue_decision, kal_uint8 sim_interface);
+extern kal_uint8 ratdm_autogen_sim_idx();
+
+#endif /* _RATDM_SHAQ_APPLICATION_API_H */
diff --git a/mcu/interface/protocol/general/rmmi_struct.h b/mcu/interface/protocol/general/rmmi_struct.h
new file mode 100644
index 0000000..2c96de1
--- /dev/null
+++ b/mcu/interface/protocol/general/rmmi_struct.h
@@ -0,0 +1,402 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * rmmi_strcut.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __RMMI_STRUCT_H__
+#define __RMMI_STRUCT_H__
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+//#include "l4c_common_enum.h"
+#include "ps_public_enum.h"
+#include "kal_public_defs.h"
+
+#include "ps_public_struct.h"
+
+#ifndef __MTK_TARGET__
+#include "dcl.h" //for DCL_DEV_T
+#endif
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 data[256];
+} rmmi_inject_msg_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 data[256];
+} rmmi_inject_msg_cnf_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+} rmmi_atcidt_force_transfer_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+ kal_bool is_dt;
+} rmmi_atcidt_force_transfer_cnf_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ rmmi_sim_uart_setting_enum sim_setting;
+} rmmi_master_sim_change_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool result;
+} rmmi_master_sim_change_cnf_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 ch_num;
+} rmmi_register_channel_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 begin_port_id;
+} rmmi_register_channel_cnf_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 port_id;
+ kal_uint16 length;
+} rmmi_exe_at_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint8 port_id;
+} rmmi_exe_at_cnf_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 port_id;
+ kal_uint16 length;
+} rmmi_response_at_ind_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint16 length;
+} rmmi_urc_at_ind_struct;
+
+typedef struct rmmi_report_mode_struct
+{
+ kal_uint32 einfo; /* proprietary +ECPI: call progress information */
+ kal_uint32 ecpi; /* proprietary +ECPI: call progress information */
+ kal_uint32 eind; /* proprietary +EIND: general indication */ /* Bit 0(SMS ready), Bit 1(PHB ready), Bit 7(AT ready), others reserved */
+ kal_uint8 ccm; /* rmmi_report_mode_enum */
+ kal_uint8 acm_warning; /* rmmi_report_mode_enum */
+ kal_uint8 call_wait; /* rmmi_report_mode_enum */
+ kal_uint8 cdip; /* rmmi_report_mode_enum */
+ kal_uint8 clip; /* rmmi_report_mode_enum */
+ kal_uint8 clir; /* rmmi_report_mode_enum */
+ kal_uint8 cnap; /* rmmi_report_mode_enum */
+ kal_uint8 colp; /* rmmi_report_mode_enum */
+ kal_uint8 ss_mo; /* rmmi_report_mode_enum */
+ kal_uint8 ss_mt; /* rmmi_report_mode_enum */
+ kal_uint8 ussd; /* rmmi_report_mode_enum */
+ kal_uint8 compression; /* rmmi_report_mode_enum */
+ kal_uint8 ps_reg; /* rmmi_nw_reg_report_mode_enum */
+ kal_uint8 nr_reg; /* rmmi_nw_reg_report_mode_enum */
+ kal_uint8 cs_reg; /* rmmi_nw_reg_report_mode_enum */
+ kal_uint8 timezone; /* rmmi_time_zone_report_mode_enum */
+ kal_uint8 crc; /* rmmi_report_mode_enum, for +CRC */
+ kal_uint8 cr; /* rmmi_report_mode_enum, for +CR */
+ kal_uint8 ecsq;
+ kal_uint8 cen; // +CEN
+ kal_uint8 ecsq_count;
+ kal_uint8 cgerep;
+ kal_uint8 cgerep_bfr;
+ kal_uint8 cmer_mode;
+ kal_uint8 cmer_keyp;
+ kal_uint8 cmer_ind;
+ kal_uint8 cmer_bfr;
+ kal_uint8 esims;
+ kal_uint8 eusim;
+ kal_uint8 etestsim;
+#if defined(__MOD_TCM__)
+ kal_uint8 psbearer_indicate; // for +PSBEARER
+#endif
+ kal_uint8 pacsp;
+#ifdef __CSG_SUPPORT__
+ kal_uint8 ecsg;
+#endif
+#ifdef __IMS_SUPPORT__
+ kal_uint8 cireg;
+ kal_uint8 cirep;
+ kal_uint8 cnem;
+#endif
+ kal_uint8 ecell;
+ kal_uint8 armee;
+ kal_uint8 eemcinfo;
+ kal_uint8 essac;
+ kal_uint8 emobd;
+ kal_uint8 cusats;
+ kal_uint8 ecusats;
+
+ kal_uint8 eccause;
+ kal_uint8 ecsra;
+ kal_uint8 evocd;
+ kal_uint8 erlm_mode;
+ kal_uint8 edrb;
+ kal_uint8 ecamp;
+ kal_uint8 eslband;
+ kal_uint8 cscon;
+ kal_uint8 scp_cellinfo;
+ kal_uint8 emodcfg;
+ kal_uint8 elce;
+ kal_uint8 elatency;
+ kal_uint8 ereginfo; //to enable/disable +EREGINFO URC
+ kal_uint8 eimsps;
+ kal_uint8 eimscons;
+ kal_uint8 ecgreg;
+ kal_uint8 ecereg;
+ kal_uint8 ecmpcid; //to enable/disable +ECMPCID URC
+ kal_uint8 ecreg;
+ kal_uint8 esimecc;
+ kal_uint8 eltebwinfo;
+ kal_uint8 eacb;
+ kal_uint8 eppi; //to enable/disable +EPPI URC
+//#ifdef __FAST_ROAMING_SEARCH__
+ kal_uint8 efmcc;
+//#endif
+ kal_uint8 eimsess; // to enable/disable +EIMSESS URC
+ kal_uint8 ecainfo; //to enable/disable +ECAINFO URC
+ kal_uint8 eplwth;
+ kal_uint8 ercefc; // to enable/disable +ERCEFC URC
+ kal_uint8 iccid; // to enable/disable +ICCID URC
+ kal_uint8 ecbdinfo_mode; // to enable/disable +ECBDINFO
+ kal_uint8 edmfapp; // to enable/disable +EDMFAPP
+ kal_uint8 eatnusd; // to enable/disable +EATNUSD URC
+ kal_uint8 edsda; // to enable/disable +EDSDA URC
+ kal_uint8 eopsu; // to enable/disable +EOPSU URC
+ kal_uint8 ecampui; // enable/disable +ECAMPUI URC
+ kal_uint8 epcellinfo; // to enable/disable +EPCELLINFO URC
+ kal_uint8 egtchs; /* to enable/disable +EGTCHS URC */
+
+#ifdef __EPSFB_SUPPORT__
+ kal_uint8 cepsfb; // to enable/disable +CEPSFB
+#endif
+ kal_uint8 cladn;
+ kal_uint8 erejinfo; // to enable/disable +EREJINFO URC
+
+#ifdef __SAR_SENSOR_TX_DETECTION_SUPPORT__
+ kal_uint8 etxpwrstus; /* to enable/disable +ETXPWRSTUS URC*/
+#endif
+
+ kal_uint8 euacalv; // to enable/disable +EUACALV URC
+
+ kal_uint8 enwcfginfo; /* to enable/disable +ENWCFGINFO URC*/
+ kal_uint8 e5guw; /* to enable/disable +E5GUW URC*/
+ kal_uint8 enrcaband; /* to enable/disable +ENRCABAND URC*/
+
+ kal_uint8 epnwcause;
+
+} rmmi_report_mode_struct;
+
+typedef struct rmmi_op01_report_mode_struct
+{
+ kal_uint8 dsci;
+ kal_uint8 rfsw;
+ kal_uint8 cardmode;
+} rmmi_op01_report_mode_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool lock; //KAL_TRUE: lock, KAL_FALSE: unlock
+} rmmi_lock_at_cmd_req_struct;
+
+ typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool result; //KAL_TRUE: success, KAL_FALSE: fail
+} rmmi_lock_at_cmd_cnf_struct;
+
+#ifdef __GAS_SUPPORT__
+ /* Message Structure */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 data[1500]; /* data */
+ kal_uint16 size; /* size of the input data */
+ kal_uint16 buf_size; /* avariable size of the output buffer */
+} gas_data_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 data[1500]; /* data */
+ kal_uint16 size; /* size of the input data */
+ kal_uint8 data_type; /* gati_output_data_type_enum */
+} gas_data_req_struct;
+
+typedef enum
+{
+ GAS_OUTPUT_NORMAL, /* The type of output data is normal type which might be partially put to the output buffer of the ATCI */
+ GAS_OUTPUT_URC, /* The type of output data is a URC. Note that this type of data is an integrity type implicitly. */
+} gas_output_data_type_enum;
+#endif /*__GAS_SUPPORT__*/
+
+/* for thermal_protection */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_int16 value;
+ kal_uint8 type;
+} atci_thermal_event_report_ind_struct;
+
+typedef struct
+{
+ l4c_rac_ecc_number_struct ecc_list[MAX_NW_ECC_NUM]; /* ecc number list*/
+ kal_uint8 no_ecc; /* number of ecc number*/
+} rmmi_ecc_number_list_struct;
+
+#ifndef __MTK_TARGET__
+#define MAX_UT_UART_LENGTH 2048
+
+typedef enum
+{
+ ATCI_UT_UART_PORT1 = uart_port1,
+ ATCI_UT_UART_PORT2 = uart_port2,
+ ATCI_UT_UART_PORT_USB = uart_port_usb,
+ ATCI_UT_UART_PORT_USB2 = uart_port_usb2,
+ ATCI_UT_UART_PORT_CCCI = uart_port_at_ccci,
+ ATCI_UT_UART_PORT_GPS = uart_port_gps_ccci,
+#ifdef __HIF_CCISM_SCP_SUPPORT__
+ ATCI_UT_UART_CELLINFO_CCCI = uart_port_cellinfo_ccci,
+#endif
+
+ /* CMUX virtual port for SIM1 */
+ ATCI_UT_UART_VIRTUAL_PORT_START = start_of_virtual_port,
+ ATCI_UT_UART_VIRTUAL_PORT2,
+ ATCI_UT_UART_VIRTUAL_PORT3,
+ ATCI_UT_UART_VIRTUAL_PORT4,
+ ATCI_UT_UART_VIRTUAL_PORT5,
+ ATCI_UT_UART_VIRTUAL_PORT6, //CMUX extention port for TTL
+
+ /* CMUX virtual port for SIM2 */
+ ATCI_UT_UART_VIRTUAL_PORT7,
+ ATCI_UT_UART_VIRTUAL_PORT8,
+ ATCI_UT_UART_VIRTUAL_PORT9,
+ ATCI_UT_UART_VIRTUAL_PORT10,
+ ATCI_UT_UART_VIRTUAL_PORT11,
+ ATCI_UT_UART_VIRTUAL_PORT12,
+
+ /* no list all of CMUX_VP_NUM virtual ports */
+
+ ATCI_UT_UART_VIRTUAL_PORT_END = end_of_virtual_port,
+} atci_ut_uart_port_enum;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ atci_ut_uart_port_enum port;
+ kal_uint8 string[MAX_UT_UART_LENGTH];
+ kal_uint16 str_len;
+} atci_ut_uart_input_ind_struct; // MSG_ID_ATCI_UT_UART_INPUT_IND
+#endif
+
+typedef enum{
+ RMMI_SCP_CMD_DISABLE = 0,
+ RMMI_SCP_CMD_ENABLE_CHANGE_OF_CELL_ID, //Phase 1: enable but report only when camping cell id has changed
+ RMMI_SCP_CMD_ENABLE_CHANGE_OF_CELL_RSSI, //Phase 2: enable but report only when camping cell's RSSI has changed
+ RMMI_SCP_CMD_END
+}rmmi_scp_cmd_enum;
+
+typedef enum{
+ RMMI_SCP_CELLINFO_GSM = 0,
+ RMMI_SCP_CELLINFO_CDMA,
+ RMMI_SCP_CELLINFO_UMTS,
+ RMMI_SCP_CELLINFO_LTE,
+ RMMI_SCP_CELLINFO_TYPE_END
+}rmmi_scp_cellinfo_type_enum;
+
+typedef struct{
+ kal_uint16 mdm_type;
+ kal_uint16 mcc;
+ kal_uint16 mnc;
+ kal_uint16 area; /* lac or tac */
+ kal_uint16 pci;
+ kal_uint16 strength; /* RSSI or RSCP or RSRP */
+ kal_uint32 cell; /* cid or uc or ci */
+ kal_uint32 isCamping; /* 0: neighbor cell; 1: camping cell */
+}rmmi_scp_cellinfo_struct;
+
+#define SCP_NBR_CELLINFO_MAX 9
+#define SCP_CELLINFO_MAX (SCP_NBR_CELLINFO_MAX+1)
+
+typedef struct{
+ kal_uint32 length;
+ rmmi_scp_cellinfo_struct info[SCP_CELLINFO_MAX];
+}rmmi_scp_cellinfo_data_struct;
+
+
+typedef struct {
+ kal_uint8 date_string[20];
+ kal_uint8 tz[4];
+ kal_uint8 dst;
+} rmmi_nitz_time_struct; // CCLK
+
+#endif
diff --git a/mcu/interface/protocol/general/sat_def.h b/mcu/interface/protocol/general/sat_def.h
new file mode 100644
index 0000000..322f116
--- /dev/null
+++ b/mcu/interface/protocol/general/sat_def.h
@@ -0,0 +1,81 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * sat_def.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file defines the data structure, enum and constant for SAT.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+#ifndef SAT_DEF_H
+#define SAT_DEF_H
+
+#include "sim_public_enum.h"
+
+#include "sim_ps_enum.h"
+
+#include "sim_public_api.h"
+
+#include "sim_ps_api.h"
+
+#include "sim_public_struct.h"
+
+#include "sim_ps_struct.h"
+
+#endif
diff --git a/mcu/interface/protocol/general/sim_common_enums.h b/mcu/interface/protocol/general/sim_common_enums.h
new file mode 100644
index 0000000..9c9f676
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_common_enums.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) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * Copyright Statement:
+ * --------------------
+ * This software is protected by Copyright and the information contained
+ * herein is confidential. The software may not be copied and the information
+ * contained herein may not be used or disclosed except with the written
+ * permission of MediaTek Inc. (C) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * sim_common_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Enum and Constant provided by SIM task
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef SIM_COMMON_ENUMS_H
+#define SIM_COMMON_ENUMS_H
+
+#include "sim_public_enum.h"
+
+#include "sim_ps_enum.h"
+
+#include "sim_public_api.h"
+
+#include "sim_ps_api.h"
+
+#endif
diff --git a/mcu/interface/protocol/general/sim_ps_api.h b/mcu/interface/protocol/general/sim_ps_api.h
new file mode 100644
index 0000000..085ccda
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_ps_api.h
@@ -0,0 +1,83 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * Copyright Statement:
+ * --------------------
+ * This software is protected by Copyright and the information contained
+ * herein is confidential. The software may not be copied and the information
+ * contained herein may not be used or disclosed except with the written
+ * permission of MediaTek Inc. (C) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * sim_ps_api.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * API provided by SIM task and inside-PS task uses only
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef SIM_PS_API_H
+#define SIM_PS_API_H
+
+/************* Phased out *************/
+/**** Merged into sim_public_api.h ****/
+#include "sim_public_api.h"
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_check_custom_iccid_operator_by_ps_id
+ * DESCRIPTION
+ * Query SIM tray status.
+ * PARAMETERS
+ * operator_type [IN]
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * Boolean
+ *****************************************************************************/
+extern kal_bool sim_check_custom_iccid_operator_by_ps_id(sim_operator_type_enum operator_type, kal_uint8 ps_id);
+#endif
diff --git a/mcu/interface/protocol/general/sim_ps_enum.h b/mcu/interface/protocol/general/sim_ps_enum.h
new file mode 100644
index 0000000..3462fb0
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_ps_enum.h
@@ -0,0 +1,1308 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * Copyright Statement:
+ * --------------------
+ * This software is protected by Copyright and the information contained
+ * herein is confidential. The software may not be copied and the information
+ * contained herein may not be used or disclosed except with the written
+ * permission of MediaTek Inc. (C) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * sim_ps_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Enum and Constant provided by SIM task and inside-PS task uses only
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+#ifndef SIM_PS_ENUM_H
+#define SIM_PS_ENUM_H
+
+typedef enum
+{
+ SIM_NO_FILE_ID = 0x0000,
+ MASTER_FILE_ID = 0x3f00, /* Master File */
+ /* Dedicated File under Master File */
+ DF_GSM_ID = 0x7f20,
+ DF_TELECOM_ID = 0x7f10,
+
+ /* Dedicated files under DF_GSM */
+ DF_IRIDIUM_ID = 0x5f30,
+ DF_GLOBST_ID = 0x5f31,
+ DF_ICO_ID = 0x5f32,
+ DF_ACeS_ID = 0x5f33,
+ DF_EIA_ID = 0x5f40,
+ DF_CTS_ID = 0x5f60,
+ DF_SoLSA_ID = 0x5f70,
+ DF_MExE_ID = 0x5f3C,
+ /* Dedicated File under DF_TELECOM */
+ DF_GRAPHICS_ID = 0x5f50,
+ /* Elementary Files under Master File */
+ EF_ICCID_ID = 0x2fE2,
+ EF_EID_ID = 0x2f02,
+ EF_ELP_ID = 0x2f05,
+ EF_LOCK_ID = 0x2FF0,
+ EF_VER_ID = 0x2F30,
+ EF_KT_USIM_TYPE_ID = 0x2F33,
+ EF_VZPF = 0x2FE8,
+ /* Elementary Files under DF_SoLSA */
+ EF_SAI_ID = 0x4f30,
+ EF_SLL_ID = 0x4f31,
+ /* Elementary Files under DF_MExE */
+ EF_MExE_ST_ID = 0x4f40,
+ EF_ORPK_ID = 0x4f41,
+ EF_ARPK_ID = 0x4f42,
+ EF_TPRPK_ID = 0x4f43,
+ /* Elementary Files at DF_GRAPHICS */
+ EF_IMG_ID = 0x4f20,
+ EF_IMG_1_ID = 0x4f01,
+ EF_IMG_2_ID = 0x4f02,
+ EF_IMG_3_ID = 0x4f03,
+ EF_IMG_4_ID = 0x4f04,
+ EF_IMG_5_ID = 0x4f05,
+ EF_IMG_6_ID = 0x4f06,
+ EF_IMG_7_ID = 0x4f07,
+ EF_IMG_8_ID = 0x4f08,
+ EF_IMG_9_ID = 0x4f09,
+ EF_IMG_A_ID = 0x4f0a,
+ EF_IMG_B_ID = 0x4f0b,
+ EF_IMG_C_ID = 0x4f0c,
+ EF_IMG_D_ID = 0x4f0d,
+ EF_IMG_E_ID = 0x4f0e,
+ EF_IMG_F_ID = 0x4f0f,
+
+ /* Elementary Files under DF_GSM */
+ EF_LP_ID = 0x6f05,
+ EF_IMSI_ID = 0x6f07,
+ EF_Kc_ID = 0x6f20,
+ EF_PLMNsel_ID = 0x6f30,
+ EF_HPLMN_ID = 0x6f31,
+ EF_ACMax_ID = 0x6f37,
+ EF_SST_ID = 0x6f38,
+ EF_ACM_ID = 0x6f39,
+ EF_GID1_ID = 0x6f3E,
+ EF_GID2_ID = 0x6f3F,
+ EF_SPN_ID = 0x6f46,
+ EF_PUCT_ID = 0x6f41,
+ EF_CBMI_ID = 0x6f45,
+ EF_BCCH_ID = 0x6f74,
+ EF_ACC_ID = 0x6f78,
+ EF_FPLMN_ID = 0x6f7B,
+ EF_LOCI_ID = 0x6f7E,
+ EF_AD_ID = 0x6fAD,
+ EF_PHASE_ID = 0x6fAE,
+ EF_VGCS_ID = 0x6fB1,
+ EF_VGCSS_ID = 0x6fB2,
+ EF_VBS_ID = 0x6fB3,
+ EF_VBSS_ID = 0x6fB4,
+ EF_eMLPP_ID = 0x6fB5,
+ EF_AAeM_ID = 0x6fB6,
+ EF_CBMID_ID = 0x6f48,
+ EF_ECC_ID = 0x6fB7,
+ EF_CBMIR_ID = 0x6f50,
+ EF_DCK_ID = 0x6f2C,
+ EF_CNL_ID = 0x6f32,
+ EF_NIA_ID = 0x6f51,
+ EF_KcGPRS_ID = 0x6f52,
+ EF_LOCIGPRS_ID = 0x6f53,
+ EF_SUME_ID = 0x6f54,
+ EF_PLMNwACT_ID = 0x6f60,
+ EF_OPLMNwACT_ID = 0x6f61,
+ EF_HPLMNACT_ID = 0x6f62,
+ EF_CPBCCH_ID = 0x6f63,
+ EF_INVSCAN_ID = 0x6f64,
+ EF_VM_WAIT_ID = 0x6F11,
+ EF_CPHS_SST_ID = 0x6F12,
+ EF_CF_FLAG_ID = 0x6F13,
+ EF_OP_STRING_ID = 0x6F14,
+ EF_CSP_ID = 0x6F15,
+ EF_CPHS_INFO_ID = 0x6F16,
+ EF_MAILBOX_NUM_ID = 0x6F17,
+ EF_OP_SHORTFORM_ID = 0x6F18,
+ EF_INFO_NUM_ID = 0x6F19,
+ /* Elementary Files at DF_TELECOM Level */
+ EF_ADN_ID = 0x6f3A,
+ EF_FDN_ID = 0x6f3B,
+ EF_SMS_ID = 0x6f3C,
+ EF_CCP_ID = 0x6f3D,
+ EF_ECCP_ID = 0x6f4F,
+ EF_MSISDN_ID = 0x6f40,
+ EF_SMSP_ID = 0x6f42,
+ EF_SMSS_ID = 0x6f43,
+ EF_LND_ID = 0x6f44,
+ EF_SDN_ID = 0x6f49,
+ EF_EXT1_ID = 0x6f4A,
+ EF_EXT2_ID = 0x6f4B,
+ EF_EXT3_ID = 0x6f4C,
+ EF_BDN_ID = 0x6f4D,
+ EF_EXT4_ID = 0x6f4E,
+ EF_SMSR_ID = 0x6f47,
+ EF_CMI_ID = 0x6f58,
+ /* HomeZone Support */
+ DF_VID_ID = 0x7F43,
+ EF_HZ_ID = 0x6F60,
+ EF_HZ_CACHE1_ID = 0x6F61,
+ EF_HZ_CACHE2_ID = 0x6F62,
+ EF_HZ_CACHE3_ID = 0x6F63,
+ EF_HZ_CACHE4_ID = 0x6F64,
+ /* ENS support mtk01488 */
+ DF_ENS_7F66_ID = 0x7F66,
+ DF_ENS_5F30_ID = 0x5F30,
+ EF_ENS_ACTING_HPLMN = 0x4F34,
+ EF_ENS_TERMINAL_SUPPORT_TABLE = 0x6FD2,
+ EF_PNN_ID = 0x6FC5,
+ EF_OPL_ID = 0x6FC6,
+ EF_MBDN_ID = 0x6FC7,
+ EF_EXT6_ID = 0x6FC8,
+ EF_MBI_ID = 0x6FC9,
+ EF_MWIS_ID = 0x6FCA,
+ EF_CFIS_ID = 0x6FCB,
+ EF_EXT7_ID = 0x6FCC,
+ EF_SPDI_ID = 0x6FCD,
+ EF_MMSN_ID = 0x6FCE,
+ EF_EXT8_ID = 0x6FCF,
+ EF_MMSICP_ID = 0x6FD0,
+ EF_MMSUP_ID = 0x6FD1,
+ EF_MMSUCP_ID = 0x6FD2,
+ EF_DIR_ID = 0x2F00,
+ /* USIM FILES */
+ EF_ARR_ID = 0x2F06,
+ DF_USIM_ID = 0x7FFF,
+ EF_U_LI_ID = 0x6F05,
+ EF_U_IMSI_ID = 0x6F07,
+ EF_U_KEYS_ID = 0x6F08,
+ EF_U_KEYSPS_ID = 0x6F09,
+ EF_U_PLMNWACT_ID = 0x6F60,
+ EF_U_HPPLMN_ID = 0x6F31,
+ EF_U_ACMMAX_ID = 0x6F37,
+ EF_U_UST_ID = 0x6F38,
+ EF_U_ACM_ID =0x6F39,
+ EF_U_GID1_ID = 0x6F3E,
+ EF_U_GID2_ID = 0x6F3F,
+ EF_U_SPN_ID = 0x6F46,
+ EF_U_PUCT_ID = 0x6F41,
+ EF_U_CBMI_ID = 0x6F45,
+ EF_U_ACC_ID = 0x6F78,
+ EF_U_FPLMN_ID = 0x6F7B,
+ EF_U_LOCI_ID = 0x6F7E,
+ EF_U_AD_ID = 0x6FAD,
+ EF_U_CBMID_ID = 0x6F48,
+ EF_U_ECC_ID = 0x6FB7,
+ EF_U_CBMIR_ID = 0x6F50,
+ EF_U_PSLOCI_ID = 0x6F73,
+ EF_U_FDN_ID = 0x6F3B,
+ EF_U_SMS_ID = 0x6F3C,
+ EF_U_MSISDN_ID = 0x6F40,
+ EF_U_SMSP_ID = 0x6F42,
+ EF_U_SMSS_ID = 0x6F43,
+ EF_U_SDN_ID = 0x6F49,
+ EF_U_EXT2_ID = 0x6F4B,
+ EF_U_EXT3_ID = 0x6F4C,
+ EF_U_SMSR_ID = 0x6F47,
+ EF_U_ICI_ID = 0x6F80,
+ EF_U_OCI_ID = 0x6F81,
+ EF_U_ICT_ID = 0x6F82,
+ EF_U_OCT_ID = 0x6F83,
+ EF_U_EXT5_ID = 0x6F4E,
+ EF_U_CCP2_ID = 0x6F4F,
+ EF_U_EMLPP_ID = 0x6FB5,
+ EF_U_AAEM_ID = 0x6FB6,
+ EF_U_HIDDENKEY_ID = 0x6FC3,
+ EF_U_BDN_ID = 0x6F4D,
+ EF_U_EXT4_ID = 0x6F55,
+ EF_U_CMI_ID = 0x6F58,
+ EF_U_EST_ID = 0x6F56,
+ EF_U_ACL_ID = 0x6F57,
+ EF_U_DCK_ID = 0x6F2C,
+ EF_U_CNL_ID = 0x6F32,
+ EF_U_STARTHFN_ID = 0x6F5B,
+ EF_U_THRESHOLD_ID = 0x6F5C,
+ EF_U_OPLMNWACT_ID = 0x6F61,
+ EF_U_HPLMNWACT_ID = 0x6F62,
+ EF_U_ARR_ID = 0x6F06,
+ EF_U_NETPAR_ID = 0x6FC4,
+ EF_U_PNN_ID = 0x6FC5,
+ EF_U_OPL_ID = 0x6FC6,
+ EF_U_MBDN_ID = 0x6FC7,
+ EF_U_EXT6_ID = 0x6FC8,
+ EF_U_MBI_ID = 0x6FC9,
+ EF_U_MWIS_ID = 0x6FCA,
+ EF_U_CFIS_ID = 0x6FCB,
+ EF_U_EXT7_ID = 0x6FCC,
+ EF_U_SPDI_ID = 0x6FCD,
+ EF_U_MMSN_ID = 0x6FCE,
+ EF_U_EXT8_ID = 0x6FCF,
+ EF_U_MMSICP_ID = 0x6FD0,
+ EF_U_MMSUP_ID = 0x6FD1,
+ EF_U_MMSUCP_ID = 0x6FD2,
+ EF_U_NIA_ID = 0x6FD3,
+ EF_U_VGCS_ID = 0x6FB1,
+ EF_U_VGCSS_ID = 0x6FB2,
+ EF_U_VBS_ID = 0x6FB3,
+ EF_U_VBSS_ID = 0x6FB4,
+ EF_U_VGCSCA_ID = 0x6FD4,
+ EF_U_VBSCA_ID = 0x6FD5,
+ EF_U_GBAP_ID = 0x6FD6,
+ EF_U_MSK_ID = 0x6FD7,
+ EF_U_MUK_ID = 0x6FD8,
+ EF_U_GBANL_ID = 0x6FDA,
+ DF_U_SOLSA_ID = 0x5F70,
+ EF_U_SAI_ID = 0x4F30,
+ EF_U_SLL_ID = 0x4F31,
+ EF_U_LSAD_ID = SIM_NO_FILE_ID,
+ DF_U_PHONEBOOK_ID = 0x5F3A,
+ EF_U_PBR_ID = 0x4F30,
+ EF_U_IAP_ID = SIM_NO_FILE_ID,
+ EF_U_ADN_ID = SIM_NO_FILE_ID,
+ EF_U_EXT1_ID = SIM_NO_FILE_ID,
+ EF_U_PBC_ID = SIM_NO_FILE_ID,
+ EF_U_GRP_ID = SIM_NO_FILE_ID,
+ EF_U_AAS_ID = SIM_NO_FILE_ID,
+ EF_U_GAS_ID = SIM_NO_FILE_ID,
+ EF_U_ANR_ID = SIM_NO_FILE_ID,
+ EF_U_SNE_ID = SIM_NO_FILE_ID,
+ EF_U_CCP1_ID = SIM_NO_FILE_ID,
+ EF_U_UID_ID = SIM_NO_FILE_ID,
+ EF_U_PSC_ID = 0x4F22,
+ EF_U_CC_ID = 0x4F23,
+ EF_U_PUID_ID = 0x4F24,
+ EF_U_EMAIL_ID = SIM_NO_FILE_ID,
+ DF_U_GSMACCESS_ID = 0x5F3B,
+ EF_U_KC_ID = 0x4F20,
+ EF_U_KCGPRS_ID = 0x4F52,
+ EF_U_CPBCCH_ID = 0x4F63,
+ EF_U_INVSCAN_ID = 0x4F64,
+ DF_U_MEXE_ID = 0x5F3C,
+ EF_U_MEXEST_ID = 0x4F40,
+ EF_U_ORPK_ID = 0x4F41,
+ EF_U_ARPK_ID = 0x4F42,
+ EF_U_TPRPK_ID = 0x4F43,
+ EF_U_TKCDF_ID = SIM_NO_FILE_ID,
+ DF_U_WLAN_ID = 0x5F40,
+ EF_U_PSEUDO_ID = 0x4F41,
+ EF_U_UPLMNWLAN_ID = 0x4F42,
+ EF_U_OPLMNWLAN_ID = 0x4F43,
+ EF_U_USSIDL_ID = 0x4F44,
+ EF_U_OSSIDL_ID = 0x4F45,
+ EF_U_WRI_ID = 0x4F46,
+ DF_G_PHONEBOOK_ID = 0x5F3A,
+ EF_G_PBR_ID = 0x4F30,
+ EF_G_IAP_ID = SIM_NO_FILE_ID,
+ EF_G_ADN_ID = SIM_NO_FILE_ID,
+ EF_G_EXT1_ID = SIM_NO_FILE_ID,
+ EF_G_PBC_ID = SIM_NO_FILE_ID,
+ EF_G_GRP_ID = SIM_NO_FILE_ID,
+ EF_G_AAS_ID = SIM_NO_FILE_ID,
+ EF_G_GAS_ID = SIM_NO_FILE_ID,
+ EF_G_ANR_ID = SIM_NO_FILE_ID,
+ EF_G_SNE_ID = SIM_NO_FILE_ID,
+ EF_G_CCP1_ID = SIM_NO_FILE_ID,
+ EF_G_UID_ID = SIM_NO_FILE_ID,
+ EF_G_PSC_ID = 0x4F22,
+ EF_G_CC_ID = 0x4F23,
+ EF_G_PUID_ID = 0x4F24,
+ EF_G_EMAIL_ID = SIM_NO_FILE_ID,
+ DF_MULTIMEDIA_ID = 0x5F3B,
+ EF_MML_ID = 0x4F47,
+ EF_MMDF_ID = 0x4F48,
+ EF_U_EHPLMN_ID = 0x6FD9, //__R7_EHPLMN__
+ EF_U_EHPLMNPI_ID = 0x6FDB,
+ EF_U_LRPLMNSI_ID = 0x6FDC,
+ /* __U_CSP_SUPPORT__ mtk01612 */
+ EF_U_CSP_ID = 0x6F15, /*[MAUI_02387843] mtk01612: AT&T proprietary EF_CSP 7FFF\6F15*/
+ EF_U_ENS_RAT_ID = 0x4F36, //__ENS_RAT_BALANCING__
+ EF_U_ENS_TERMINAL_SUPPORT_TABLE = 0x6FD2, /* [MAUI_02908638] mtk01616_110418 support EF_U_TS_table under 7FFF */
+ /* __CSG_SUPPORT__ */
+ DF_U_HNB_ID = 0x5F50,
+ EF_U_ACSGL_ID = 0x4F81,
+ EF_U_CSGT_ID = 0x4F82,
+ EF_U_HNBN_ID = 0x4F83,
+ EF_U_EPSLOCI_ID = 0x6FE3,
+ EF_U_EPSNSC_ID = 0x6FE4,
+ EF_U_OCSGL_ID = 0x4F84,
+ /* __ISIM_SUPPORT__ start */
+ EF_PSISMSC_ID = 0x6FE5,
+ DF_ISIM_ID = 0x7FFF,
+ EF_I_IST_ID = 0x6F07,
+ EF_I_IMPI_ID = 0x6F02,
+ EF_I_DOMAIN_ID = 0x6F03,
+ EF_I_IMPU_ID = 0x6F04,
+ EF_I_AD_ID = 0x6FAD,
+ EF_I_ARR_ID = 0x6F06,
+ EF_I_PCSCF_ID = 0x6F09,
+ EF_I_GBAP_ID = 0x6FD5,
+ EF_I_GBANL_ID = 0x6FD7,
+ EF_I_NAFKCA_ID = 0x6FDD,
+ EF_I_UICCIARI_ID = 0x6FE7,
+ EF_I_SMS_ID = 0x6F3C,
+ EF_I_SMSS_ID = 0x6F43,
+ EF_I_SMSR_ID = 0x6F47,
+ EF_I_SMSP_ID = 0x6F42,
+ /* __ISIM_SUPPORT__ end */
+
+ /* USIM R10/R11 new file start */
+ EF_U_NAFKCA_ID = 0x6FDD,
+ EF_U_SPNI_ID = 0x6FDE,
+ EF_U_PNNI_ID = 0x6FDF,
+ EF_U_NCPIP_ID = 0x6FE2,
+ //EF_U_EPSLOCI_ID = 0x6FE3, // Already exist
+ //EF_U_EPSNSC_ID = 0x6FE4, // Already exist
+ EF_U_UFC_ID = 0x6FE6,
+ EF_U_UICCIARI_ID = 0x6FE7,
+ EF_U_NASCONFIG_ID = 0x6FE8,
+ EF_U_PWS_ID = 0x6FEC,
+ /* USIM R10/R11 new file end */
+
+ /* WLAN addition start */
+ EF_U_HWSIDL_ID = 0x4F47,
+ EF_U_WEHPLMNPI_ID = 0x4F48,
+ EF_U_WHPI_ID = 0x4F49,
+ EF_U_WLRPLMN_ID = 0x4F4A,
+ EF_U_HPLMNDAI_ID = 0x4F4B,
+ /* WLAN addition end */
+
+ /* HNB addition start */
+ EF_U_OCSGT_ID = 0x4F85,
+ EF_U_OHNBN_ID = 0x4F86,
+ /* HNB addition end */
+
+ /* USIM R12/R13/R14 new files start */
+ EF_U_FDNURI_ID = 0x6FED,
+ EF_U_BDNURI_ID = 0x6FEE,
+ EF_U_SDNURI_ID = 0x6FEF,
+ EF_U_IWL_ID = 0x6FF0,
+ EF_U_IPS_ID = 0x6FF1,
+ EF_U_IPD_ID = 0x6FF2,
+ EF_U_EPDGID_ID = 0x6FF3,
+ EF_U_EPDGSELECTION_ID = 0x6FF4,
+ EF_U_EPDGIDEM_ID = 0x6FF5,
+ EF_U_EPDGSELECTIONEM_ID = 0x6FF6,
+ EF_U_FROMPREFERRED_ID = 0x6FF7,
+ EF_U_IMSCONFIGDATA_ID = 0x6FF8,
+ EF_U_TVCONFIG_ID = 0x6FFB,
+ EF_U_3GPPPSDATAOFF_ID = 0x6FF9,
+ EF_U_3GPPPSDATAOFFSERVICELIST_ID = 0x6FFA,
+ /* PHONEBOOK start */
+ EF_U_PURI_ID = 0x0000,
+ /* PHONEBOOK end */
+ /* ProSe start */
+ DF_U_PROSE_ID = 0x5F90,
+ EF_U_PROSE_MON_ID = 0x4F01,
+ EF_U_PROSE_ANN_ID = 0x4F02,
+ EF_U_PROSEFUNC_ID = 0x4F03,
+ EF_U_PROSE_RADIO_COM_ID = 0x4F04,
+ EF_U_PROSE_RADIO_MON_ID = 0x4F05,
+ EF_U_PROSE_RADIO_ANN_ID = 0x4F06,
+ EF_U_PROSE_POLICY_ID = 0x4F07,
+ EF_U_PROSE_PLMN_ID = 0x4F08,
+ EF_U_PROSE_GC_ID = 0x4F09,
+ EF_U_PST_ID = 0x4F10,
+ EF_U_PROSE_UIRC_ID = 0x4F11,
+ EF_U_PROSE_GM_DISCOVERY_ID = 0x4F12,
+ EF_U_PROSE_RELAY_ID = 0x4F13,
+ EF_U_PROSE_RELAY_DISCOVERY_ID = 0x4F14,
+ /* ProSe end */
+ /* ACDC start */
+ DF_U_ACDC_ID = 0x5FA0,
+ EF_U_ACDC_LIST_ID = 0x4F01,
+ EF_U_ACDC_OS_CONFIG_ID = 0x0000,
+ /* ACDC end */
+ /* USIM R12/R13/R14 new files end */
+ EF_U_OP_STRING_ID = 0x6F14,
+ EF_U_OP_SHORTFORM_ID = 0x6F18,
+
+ /* TELECOM R13/R14 new files start */
+ DF_MCPTT_ID = 0x5F3D,
+ EF_MST_ID = 0x4F01,
+ EF_MCPTT_CONFIG_ID = 0x4F02,
+ DF_V2X_ID = 0x5F3E,
+ EF_VST_ID = 0x4F01,
+ EF_V2X_CONFIG_ID = 0x4F02,
+ /* TELECOM R13/R14 new files end */
+
+ /* ISIM R12/R13/R14 new files start */
+ EF_I_FROMPREFERRED_ID = 0x6FF7,
+ EF_I_IMSCONFIGDATA_ID = 0x6FF8,
+ /* ISIM R12/R13/R14 new files end */
+
+ /* CDMA2000 file start */
+ DF_MMSS_ID = 0x5f3c,
+ EF_MLPL_ID = 0x4f20,
+ EF_MSPL_ID = 0x4f21,
+ EF_MMSSMODE_ID = 0x4f22,
+ DF_CSIM_ID = 0x7FFF,
+ EF_C_COUNT_ID = 0x6F21,
+ EF_C_IMSI_M_ID = 0x6F22,
+ EF_C_IMSI_T_ID = 0x6F23,
+ EF_C_TMSI_ID = 0x6F24,
+ EF_C_CDMA_HOME_ID = 0x6F28,
+ EF_C_ACCLOC_ID = 0x6F2C,
+ EF_C_TERM_ID = 0x6F2D,
+ EF_C_SSCI_ID = 0x6F2E,
+ EF_C_PRL_ID = 0x6F30,
+ EF_C_UIM_ID_ID = 0x6F31,
+ EF_C_CST_ID = 0x6F32,
+ EF_C_OTAPASPC_ID = 0x6F34,
+ EF_C_NAMLOCK_ID = 0x6F35,
+ EF_C_OTA_ID = 0x6F36,
+ EF_C_ESN_MEID_ME_ID = 0x6F38,
+ EF_C_LI_ID = 0x6F3A,
+ EF_C_FDN_ID = 0x6F3B,
+ EF_C_SMS_ID = 0x6F3C,
+ EF_C_SMSP_ID = 0x6F3D,
+ EF_C_SMSS_ID = 0x6F3E,
+ EF_C_SPN_ID = 0x6F41,
+ EF_C_USGIND_ID = 0x6F42,
+ EF_C_AD_ID = 0x6F43,
+ EF_C_MDN_ID = 0x6F44,
+ EF_C_SPCS_ID = 0x6F46,
+ EF_C_ECC_ID = 0x6F47,
+ EF_C_ME3GPDOPC_ID = 0x6F48,
+ EF_C_3GPDOPM_ID = 0x6F49,
+ EF_C_SIPCAP_ID = 0x6F4A,
+ EF_C_MIPCAP_ID = 0x6F4B,
+ EF_C_SIPUPP_ID = 0x6F4C,
+ EF_C_MIPUPP_ID = 0x6F4D,
+ EF_C_SIPSP_ID = 0x6F4E,
+ EF_C_MIPSP_ID = 0x6F4F,
+ EF_C_SIPPAPSS_ID = 0x6F50,
+ EF_C_MECRP_ID = 0x6F55,
+ EF_C_HRPDCAP_ID = 0x6F56,
+ EF_C_HRPDUPP_ID = 0x6F57,
+ EF_C_EPRL_ID = 0x6F5A,
+ EF_C_BCSMScfg_ID = 0x6F5B,
+ EF_C_BCSMStable_ID = 0x6F5D,
+ EF_C_BCSMSP_ID = 0x6F5E,
+ EF_C_GID1_ID = 0x6F6D,
+ EF_C_GID2_ID = 0x6F6E,
+ EF_C_SFUIMID_ID = 0x6F74,
+ EF_C_EST_ID = 0x6F75,
+ EF_C_EXT2_ID = 0x6F7A,
+ EF_C_MIPFlags_ID = 0x6F84,
+ EF_C_3GPDUPPExt_ID = 0x6F85,
+ EF_C_IPC6CAP_ID = 0x6F87,
+ EF_C_TCPConfig_ID = 0x6F88,
+ EF_C_DGC_ID = 0x6F89,
+ DF_CDMA_ID = 0x7F25,
+ /* CDMA2000 file end */
+
+ EF_PERSO = 0x6F02,
+
+ /* RPM */
+ DF_RPM_ARMED_AGENT_ID = 0x5F40,
+ EF_RPM_VERSION_ID = 0x4F44,
+
+ /* USIM R15 new files start */
+ EF_U_EARFCNLIST_ID = 0x6FFD,
+ /* 5GS files start */
+ DF_U_5GS_ID = 0x5FC0,
+ EF_U_5GS3GPPLOCI_ID = 0x4F01,
+ EF_U_5GSN3GPPLOCI_ID = 0x4F02,
+ EF_U_5GS3GPPNSC_ID = 0x4F03,
+ EF_U_5GSN3GPPNSC_ID = 0x4F04,
+ EF_U_5GAUTHKEYS_ID = 0x4F05,
+ EF_U_UAC_AIC_ID = 0x4F06,
+ EF_U_SUCI_CALC_INFO_ID = 0x4F07,
+ EF_U_OPL5G_ID = 0x4F08,
+ EF_U_NSI_ID = 0x4F09,
+ EF_U_ROUTING_INDICATOR_ID = 0x4F0A,
+ EF_U_URSP_ID = 0x4F0B,
+ /* 5GS files end */
+ /* USIM R15 new files end */
+
+ /* ISIM R14/R15 new files start */
+ EF_I_WEBRTCURI_ID = 0x6FFA,
+ EF_I_XCAPCONFIGDATA_ID = 0x6FFC,
+ EF_I_WLAN_EPS_ROAMING_HANDOVER_ID = 0x6FFD,
+ /* ISIM R14/R15 new files end */
+
+ EF_NULL = 0xFFFF
+}sim_file_id_enum;
+
+typedef enum
+{
+ SIMCALLCONTROL_NOMODIFY,
+ SIMCALLCONTROL_CALLTOSS,
+ SIMCALLCONTROL_CALLTOUSSD,
+ SIMCALLCONTROL_SSTOCALL,
+ SIMCALLCONTROL_SSTOUSSD,
+ SIMCALLCONTROL_USSDTOCALL,
+ SIMCALLCONTROL_USSDTOSS,
+ SIMCALLCONTROL_L4RETRY
+}sim_call_control_type_enum;
+
+typedef enum
+{
+ TYPE_NONE=0,
+ TYPE_ADN=0x2,
+ TYPE_FDN=0x4,
+ TYPE_BDN=0x8,
+ TYPE_ADN_BDN=0x0A,
+ TYPE_FDN_BDN=0x0C
+}sim_dn_enum;
+
+typedef enum
+{
+ SIM_CHV_1=1,
+ SIM_CHV_2=2
+}sim_chv_type_enum;
+
+typedef enum
+{
+ SIM_START_MODE_RESET,
+ SIM_START_MODE_INIT,
+ SIM_START_MODE_PUK1,
+ SIM_START_ADDITIONAL_LOCK
+}sim_start_mode_enum;
+
+typedef enum
+{
+ UICC_ISIM_APP,
+ UICC_USIM_APP,
+ UICC_CSIM_APP,
+ UICC_SIM_APP,
+ UICC_RUIM_APP,
+ UICC_MAX_APP_NUM,
+ UICC_APP_INVALID = 0xFF
+}uicc_app_type_enum;
+
+typedef enum
+{
+ SIM_ELP,
+ SIM_LP,
+ USIM_LI,
+ USIM_PL
+}sim_lp_file_type_enum;
+
+typedef enum
+{
+ SIM_PHASE_0,
+ SIM_PHASE_2=2,
+ SIM_PHASE_3=3
+}sim_phase_enum;
+
+typedef enum
+{
+ SIM_FILE_SIZE,
+ SIM_REC_NUM,
+ SIM_REC_SIZE,
+ SIM_RES_DATA_LEN /*[MAUI_01702417] mtk01612: WinMo_GEMINI : +crsm*/
+}sim_info_type_enum;
+
+/*[MAUI_03058435] mtk01612: move sim_security_operation_enum into other file due to HAL rule*/
+
+typedef enum
+{
+ SAT_MM_NO_SERVICE,
+ SAT_MM_LIMITED_SERVICE,
+ SAT_MM_NORMAL_SERVICE,
+ SAT_MM_SEARCHING
+}sat_mm_status_enum;
+
+typedef enum
+{
+ SIM_FILE_TRANSP = 0x00,
+ SIM_FILE_LINEAR_FIXED= 0x01,
+ SIM_FILE_CYCLIC = 0x03,
+ SIM_FILE_NO_STRUCTURE = 0x07,
+ SIM_FILE_BER_TLV = 0x0f
+} sim_file_structure_enum; //[MAUI_02369100] mtk01612
+
+typedef enum
+{
+ USIM_FILE_SIZE,
+ USIM_REC_NUM,
+ USIM_REC_SIZE
+}usim_info_type_enum;
+
+typedef enum
+{
+ USIM_ACL_SERVICE_NOT_AVAILABLE,
+ USIM_ACL_SERVICE_NOT_ACTIVATED,
+ USIM_ACL_SERVICE_ACTIVATED,
+ USIM_NOT_INITIALIZED
+}usim_acl_type_enum;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+typedef enum
+{
+ SIM_NO_TIMER_STATUS = 0,
+ SIM_TIMER_RUNNING,
+ SIM_TIMER_NOT_RUNNING,
+ SIM_TIMER_STOPPED,
+ SIM_TIMER_TIMED_OUT,
+ SIM_TIMER_SWITCHING, // For SAT timer during DSS_NO_RESET
+ SIM_TIMER_EXTENDED_RUNNING
+} sim_timer_status_enum;
+
+typedef enum
+{
+ UICC_NOT_INIT,
+ SIM_CARD_INSIDE,
+ UICC_USIM_INSIDE,
+ UICC_ISIM_INSIDE,
+ SIM_RUIM_INSIDE,
+ UICC_CSIM_INSIDE,
+ RUIM_CSIM_INSIDE,
+ RUIM_ONLY_INSIDE,
+ OTHER_UICC_APP_INSIDE
+} uicc_card_type_enum;
+
+typedef enum
+{
+ SIM_CHANNEL_OPEN,
+ SIM_CHANNEL_CLOSE
+} sim_manage_channel_mode_enum;
+
+#ifdef __VSIM__
+typedef enum
+{
+ VSIM_SIM_TYPE,
+ VSIM_USIM_TYPE
+}vsim_card_type_enum;
+#endif
+
+typedef enum
+{
+ /* TS 27.005, +CUSATR/+CUSATW profile_storage */
+ SIM_PROFILE_TE = 0, /* TE profile that can be set with +CUSATW */
+ SIM_PROFILE_MT, /* MT profile that can be set with +CUSATW */
+ SIM_PROFILE_DEFAULT_MT, /* MT default profile that reflects the inherent, default supported facilities of the MT */
+ SIM_PROFILE_ACTIVE, /* UICC profile that reflects the currently active UICC profile */
+ SIM_PROFILE_UST, /* UICC EF_UST. The elementary file that indicates services available in the USIM */
+ SIM_PROFILE_MT_ONLY = 5, /* List of MT only facilities (facilities that are not allowed to be assigned to the TE) */
+ SIM_PROFILE_CONFLICT = 5, /* Refers to a conflict between the TE profile and the list of MT only facilities */
+
+ /* Special handling, not defined in TS 27.005 */
+ SIM_PROFILE_TE_MT = 128
+} sim_profile_storage_enum;
+
+/*__SAT__ start*/
+typedef enum
+{
+ CMD_DETAIL_TAG = 1,
+ DEVICE_ID_TAG,
+ RESULT_TAG,
+ DURATION_TAG,
+ ALPHA_ID_TAG,
+ ADDRESS_TAG,
+ CCP_TAG,
+ SUBADDR_TAG,
+ SS_STRING_TAG,
+ USSD_STRING_TAG,
+ SMS_TPDU_TAG,
+ PDP_PDN_PDU_TYPE_TAG = SMS_TPDU_TAG,
+ CB_PAGE_TAG,
+ PDU_ESTABLISH_PARAM_TAG = CB_PAGE_TAG,
+ TEXT_STRING_TAG,
+ TONE_TAG,
+ ITEM_TAG,
+ ITEM_ID_TAG, /* 0x10 */
+ RSP_LEN_TAG,
+ FILE_LIST_TAG,
+ LOCI_TAG,
+ IMEI_TAG,
+ HELP_REQ_TAG,
+ NET_MEASURE_RES_TAG,
+ DEFAULT_TEXT_TAG,
+ ITEM_NEXT_ACTION_IND_TAG,
+ EVENT_LIST_TAG,
+ CAUSE_TAG,
+ LOCATION_STATUS_TAG,
+ TID_TAG,
+ BCCH_CHAN_LIST_TAG,
+ DATA_CONNECT_STATUS_TAG = BCCH_CHAN_LIST_TAG,
+ ICON_ID_TAG,
+ ITEM_ICON_ID_LIST_TAG,
+ CARD_READER_STATUS_TAG, /* 0x20 */
+ CARD_ATR_TAG,
+ C_APDU_TAG,
+ R_APDU_TAG,
+ TIMER_ID_TAG,
+ TIMER_VALUE_TAG,
+ DATE_TIME_ZONE_TAG,
+ CC_REQ_ACTION_TAG,
+ AT_CMD_TAG,
+ AT_RSP_TAG,
+ BC_REPEAT_IND_TAG,
+ DATA_CONNECT_TYPE_TAG = BC_REPEAT_IND_TAG,
+ IMMEDIATE_RSP_TAG,
+ DTMF_STRING_TAG,
+ LANGUAGE_TAG,
+ TA_TAG,
+ XSM_CAUSE_TAG = TA_TAG,
+ AID_TAG,
+ BROWSER_ID_TAG, /* 0x30 */
+ URL_TAG,
+ IMS_REQUEST_URI_TAG = URL_TAG,
+ BEARER_TAG,
+ PROVISIONING_REF_FILE_TAG,
+ BROWSER_TERMINATION_CAUSE_TAG,
+ BEARER_DESCRIPTION_TAG,
+ CHAN_DATA_TAG,
+ CHAN_DATA_LEN_TAG,
+ CHAN_STATUS_TAG,
+ BUFFER_SIZE_TAG,
+ CARD_READER_ID_TAG,
+ REFRESH_ENFORCEMENT_POLICY_TAG = CARD_READER_ID_TAG,
+ RFU2_TAG,
+ SIM_ME_INTERFACE_LEVEL_TAG,
+ RFU3_TAG,
+ OTHER_ADDR_TAG,
+ ACCESS_TECH_TAG,
+ RFU4_TAG, /* 0x40 */
+ RFU5_TAG,
+ NETWORK_ACCESS_NAME_TAG = 0x47,
+ CDMA_SMS_TPDU_TAG = 0x48, /* 3GPP2 SMS TPDU */
+ REMOTE_ENTITY_ADDR_TAG = 0x49,
+ IWLAN_ID_TAG = 0x4a,
+ IWLAN_ACCESS_STATUS_TAG = 0x4b,
+ TEXT_ATTRIBUTE_TAG = 0x50,
+ ITEM_TEXT_ATTRIBUTE_LIST_TAG = 0x51,
+ PDP_CTX_ACTIVATE_PARAM_TAG = 0x52, /* PDP Context Activation parameters tag*/
+ CONTACTLESS_FUNCTIONALITY_STATE_TAG = 0x54,
+ CSG_CELL_SELECT_STATUS_TAG = 0x55, /* CSG Cell Selection Status */
+ CSG_ID_TAG = 0x56, /* CSG ID */
+ HNB_NAME_TAG = 0x57, /* HNB Name */
+ IMEISV_TAG = 0x62,
+ NETWORK_SEARCH_MODE_TAG = 0x65, /* mtk02374 20090513 add for nw search mode */
+ FRAME_LAYOUT_TAG = 0x66,
+ FRAME_INFORMATION_TAG = 0x67,
+ FRAME_IDENTIFIER_TAG = 0x68, /* PROACTIVE: Frame identifier tag */
+ NMR_QUAL_TAG = 0x69, /* UTRAN/E-UTRAN Measurement Qualifier */
+ PLMNwACT_LIST_TAG = 0x72,
+ ROUTING_AREA_ID_TAG = 0x73,
+ UPDATE_ATTCH_TYPE_TAG = 0x74,
+ REJECT_CAUSE_TAG = 0x75,
+ GEO_LOCATION_PARAM_TAG = 0x76, /* PROACTIVE: Geographical Location Parameters */
+ IARI_TAG = 0x76, /* ENVELOPE: IARI */
+ GAD_SHAPES_TAG = 0x77, /* PROACTIVE: GAD_SHAPES */
+ IMPU_LIST_TAG = 0x77, /* ENVELOPE: IMPU List */
+ NMEA_SENTENCE_TAG = 0x78, /* PROACTIVE: NMEA sentence */
+ IMS_STATUS_CODE_TAG = 0x78, /* ENVELOPE: IMS Status-Code */
+ PLMN_LIST_TAG = 0x79,
+ EUTRAN_NET_MEASURE_RES_TAG = 0x79,
+ ACTIVATE_DESCRIPTOR_TAG = 0x7b, /* __SATCL__ */
+ EPS_PDN_CONNECT_PARAM_TAG = 0x7c, /* EPS PDN Connection Activation Parameters */
+ TRACKING_AREA_ID_TAG = 0x7d,
+ CSG_ID_LIST_TAG = 0x7e, /* CSG ID List */
+ MEDIA_TYPE_TAG = 0x7e,
+
+ PROACTIVE_CMD_TAG = 0xD0,
+ SMS_PP_DL_TAG,
+ CB_DL_TAG,
+ MENU_SELECTION_TAG,
+ CALL_CONTROL_TAG,
+ MO_SMS_CONTROL_TAG,
+ EVENT_DL_TAG,
+ TIMER_EXPIR_TAG,
+
+ VZW_MCC_MNC_TAG = 0xDF,
+ RFU6_TAG=0xDF
+}sat_tag_enum;
+
+typedef enum
+{
+ SAT_SETUP_CALL=ADDRESS_TAG,
+ SAT_SEND_SS=SS_STRING_TAG,
+ SAT_SEND_USSD=USSD_STRING_TAG
+}sat_call_ctrl_type_enum;
+
+typedef enum
+{
+ SAT_ALLOWED_NO_MODIFICATION=0,
+ SAT_NOT_ALLOWED,
+ SAT_ALLOWED_WITH_MODIFICATION,
+ SAT_SIM_ERROR
+}sat_call_ctrl_by_sim_result_enum;
+
+typedef enum
+{
+ SAT_BIP_NO_SPECIFIC_CAUSE,
+ SAT_BIP_NO_CHANNEL_AVAILABLE,
+ SAT_BIP_CHANNEL_CLOSED,
+ SAT_BIP_CHANNEL_IDENTIFIER_NOT_VALID,
+ SAT_BIP_REQUESTED_BUFFER_SIZE_NOT_AVAILABLE,
+ SAT_BIP_SECURITY_ERROR,
+ SAT_BIP_REQUESTED_TRANSPORT_LEVEL_NOT_AVAILABLE
+}sat_bearer_independent_protocol_additional_info_for_res_enum;
+
+typedef enum
+{
+ SAT_CSD_BEARER = 0x01,
+ SAT_GPRS_BEARER,
+ SAT_SERVER_MODE_BEARER
+}sat_bearer_enum;
+
+typedef enum
+{
+ SAT_UDP_PROTOCOL = 0x01,
+ SAT_TCP_PROTOCOL,
+ SAT_RAW_PROTOCOL
+}sat_protocol_type_enum;
+
+typedef enum
+{
+ SAT_CLOSE_CHANNEL_FINISHED,
+ SAT_SEND_DATA_FINISHED,
+ SAT_SEND_DATA_TERMINATED,
+ SAT_RECEIVE_DATA_FINISHED,
+ SAT_RECEIVE_DATA_TERMINATED,
+ SAT_DISCONNECT_EVENT_DOWNLOAD
+} sat_notify_mmi_enum;
+
+typedef enum
+{
+ SAT_DL_BUSY,
+ SAT_DL_ERROR,
+ SAT_DL_NO_ERROR = 0xFF
+} sat_sms_dl_error_cause_enum;
+
+typedef enum
+{
+ SAT_RR_IDLE,
+ SAT_RR_NOT_IDLE
+}sat_me_status_enum;
+
+typedef enum
+{
+ SAT_NO_CHANNEL=0x00,
+ SAT_CH1=0x21,
+ SAT_CH2=0x22,
+ SAT_CH3=0x23,
+ SAT_CH4=0x24,
+ SAT_CH5=0x25,
+ SAT_CH6=0x26,
+ SAT_CH7=0x27
+}sat_channel_id_enum;
+
+typedef enum
+{
+ RSAT_DISPLAY_TEXT,
+ RSAT_GET_INKEY,
+ RSAT_GET_INPUT,
+ RSAT_MORE_TIME,
+ RSAT_PLAY_TONE,
+ RSAT_POLL_INTERVAL,
+ RSAT_REFRESH_I, //NAA initialization and FULL file change notification
+ RSAT_REFRESH_II, //File change notification
+ RSAT_REFRESH_III, //NAA initialization and file change notification
+ RSAT_REFRESH_IV, //NAA initialization
+ RSAT_REFRESH_V, //UICC Reset
+ RSAT_REFRESH_VI, //NAA Application Reset
+ RSAT_REFRESH_VII, //NAA Session Reset
+ RSAT_REFRESH_VIII, //Steering of roaming
+ RSAT_REFRESH_IX, //Steering of roaming for I-WLAN
+ RSAT_REFRESH_X, //eUICC Profile State Change
+ RSAT_REFRESH_XI, //Application Update
+ RSAT_SETUP_MENU,
+ RSAT_SELECT_ITEM,
+ RSAT_SEND_SMS,
+ RSAT_SEND_SS,
+ RSAT_SEND_USSD,
+ RSAT_SETUP_CALL,
+ RSAT_POLLING_OFF,
+ RSAT_LOCAL_INFO_I, //Location information (MCC,MNC,LAC,cell id,etc)
+ RSAT_LOCAL_INFO_II, //IMEI
+ RSAT_LOCAL_INFO_III, //NMR
+ RSAT_LOCAL_INFO_IV, //Date,time,time zone
+ RSAT_LOCAL_INFO_V, //Language setting
+ RSAT_LOCAL_INFO_VI, //Timing advance
+ RSAT_LOCAL_INFO_VII, //Access technology
+ RSAT_LOCAL_INFO_VIII, //ESN of terminal
+ RSAT_LOCAL_INFO_IX, //IMEISV
+ RSAT_LOCAL_INFO_X, //Search mode
+ RSAT_SETUP_EVENT_LIST,
+ RSAT_TIMER_MANAGEMENT,
+ RSAT_SETUP_IDLE_TEXT,
+ RSAT_RUN_AT_COMMAND,
+ RSAT_SEND_DTMF,
+ RSAT_LANG_NOTIFY,
+ RSAT_LAUNCH_BROWSER,
+ RSAT_OPEN_CHANNEL,
+ RSAT_CLOSE_CHANNEL,
+ RSAT_RECEIVE_DATA,
+ RSAT_SEND_DATA,
+ RSAT_GET_CHANNEL_STATUS,
+ RSAT_ACTIVATE, //__SATCL__
+ RSAT_CONTACTLESS_STATE_CHANGE,
+ RSAT_SIZE
+} rsat_type_enum;
+
+typedef enum
+{
+ SAT_CC_NULL,
+ /* SETUP CALL to others */
+ SAT_MMI_SETUP_CALL_TO_SEND_SS,
+ SAT_MMI_SETUP_CALL_TO_SEND_USSD,
+ SAT_STK_SETUP_CALL_TO_SEND_SS,
+ SAT_STK_SETUP_CALL_TO_SEND_USSD,
+ /* SEND SS to others */
+ SAT_MMI_SEND_SS_TO_SETUP_CALL,
+ SAT_MMI_SEND_SS_TO_SEND_USSD,
+ SAT_STK_SEND_SS_TO_SETUP_CALL,
+ SAT_STK_SEND_SS_TO_SEND_USSD,
+ /* SEND USSD to others */
+ SAT_MMI_SEND_USSD_TO_SETUP_CALL,
+ SAT_MMI_SEND_USSD_TO_SEND_SS,
+ SAT_STK_SEND_USSD_TO_SETUP_CALL,
+ SAT_STK_SEND_USSD_TO_SEND_SS
+} sat_call_ctrl_by_sim_state_enum;
+
+typedef enum
+{
+ SAT_CALL_DISCONNECT,
+ SAT_CALL_CONNECT
+}sat_call_status_enum;
+
+typedef enum
+{
+ SAT_MM_IDLE,
+ SAT_MM_CONNECTED
+}sat_mm_connect_status_enum;
+
+typedef enum
+{
+ SAT_EMM_IDLE,
+ SAT_EMM_CONNECTED
+}sat_emm_connect_status_enum;
+
+typedef enum
+{
+ SAT_PDP_DEACTIVATE,
+ SAT_PDP_ACTIVATE
+}sat_pdp_status_enum;
+
+typedef enum
+{
+ SAT_SMS_ACK_WAIT,
+ SAT_SMS_ACK_RECEIVED
+}sat_sms_pp_ack_status_enum;
+
+typedef enum
+{
+ SAT_FILE_CHANGE_NO_ERROR_CAUSE,
+ SAT_FILE_CHANGE_FILE_READ_FAIL,
+ SAT_FILE_CHANGE_ABORT_BY_NEW_REQUEST,
+ SAT_FILE_CHANGE_ABORT_BY_SIM_SWITCH
+} sat_file_change_error_cause_enum;
+
+typedef enum
+{
+ CMD_UNKNOWN=0x00,
+ CMD_REFRESH=0x01,
+ CMD_MORE_TIME=0x02,
+ CMD_POLL_INTERVAL=0x03,
+ CMD_POLLING_OFF=0x04,
+ CMD_SETUP_EVENT_LIST=0x05,
+ CMD_SETUP_CALL=0x10,
+ CMD_SEND_SS=0x11,
+ CMD_SEND_USSD=0x12,
+ CMD_SEND_SMS=0x13,
+ CMD_DTMF=0x14,
+ CMD_LAUNCH_BROWSER=0x15,
+ CMD_PLAY_TONE=0x20,
+ CMD_DSPL_TXT=0x21,
+ CMD_GET_INKEY=0x22,
+ CMD_GET_INPUT=0x23,
+ CMD_SELECT_ITEM=0x24,
+ CMD_SETUP_MENU=0x25,
+ CMD_PROVIDE_LOCAL_INFO=0x26,
+ CMD_TIMER_MANAGER=0x27,
+ CMD_IDLE_MODEL_TXT=0x28,
+ CMD_PERFORM_CARD_APDU=0x30,
+ CMD_POWER_ON_CARD=0x31,
+ CMD_POWER_OFF_CARD=0x32,
+ CMD_GET_READER_STATUS=0x33,
+ CMD_RUN_AT=0x34,
+ CMD_LANGUAGE_NOTIFY=0x35,
+ CMD_OPEN_CHAN=0x40,
+ CMD_CLOSE_CHAN=0x41,
+ CMD_RECEIVE_DATA=0x42,
+ CMD_SEND_DATA=0x43,
+ CMD_GET_CHAN_STATUS=0x44,
+ CMD_RFU=0x60,
+ CMD_ACTIVATE=0x70, //__SATCL__
+ CMD_CONTACTLESS_STATE_CHANGED=0x71,
+ CMD_END_PROACTIVE_SESSION=0x81,
+ CMD_DETAIL=0xFF
+}sat_proactive_cmd_enum;
+
+typedef enum
+{
+ RSAT_BY_TE, /* CMD and TR handled by AP/MMI */
+ RSAT_BY_SIM, /* CMD and TR handled by modem. But some cmd might need TE involve ex: STKCALL,STKSS,.. */
+//// RSAT_BY_L4C, /* MAUI_02868445 mtk01616_110212: No need to distinguish this type now */
+ RSAT_NULL
+} rsat_config_enum;
+
+typedef enum
+{
+ VSIM_MDVSIM_V1,
+ VSIM_MDVSIM_V2
+} vsim_ver_type_enum;
+
+/*__SAT__ end*/
+
+/* MAUI_03041489 : for moveing sim_profile to custom folder */
+
+#define SIM_MAX_DATA_LEN 256
+#define NUM_OF_BYTE_ECC 3
+#define MAX_DF_HEADER_LEN 22
+#define NUM_GID1 20
+#define NUM_GID2 20
+#define NUM_CNL 240 /* one record 6 byte * 40 records */
+#define LEN_OF_OPNAME 40
+#define LEN_OF_SOPNAME 10
+#ifdef __RILD_SIM_CACHE__
+#define LEN_OF_SPN 25
+#else
+#define LEN_OF_SPN 17
+#endif
+#define MAX_SUPPORT_NETPAR_DATA_SIZE 512
+#define MAX_SUPPORT_CSGL_DATA_SIZE 2048 /* __CSG_SUPPORT__ */
+#define MAX_TERMINAL_PROFILE_LEN 20
+#define USIM_SUPPORT_EST_LEN 2
+#define USIM_MAX_EST_READ_LEN 15
+#define VZPF_LEN 8
+#define VZPF_LEN_FOR_MFG_INFO 1
+#define MAX_VZPF_FILE_LEN 30
+
+#define usim_file_id_enum sim_file_id_enum
+
+#define NUM_OF_BYTE_LP 2
+#define MAX_LP_NUM 5
+#define SIM_AID_MAX_LEN 16
+/*__SAT__ start*/
+#define MAX_SIM_ADDR_LEN 41
+#define MAX_SIM_SUB_ADDR_BCD_LEN 41
+#define MAX_AT_RESPONESE_LEN 240
+#define MAX_SAT_EUNMR_OBJ_NUM 8
+#define NMR_OBJ_GUARD_PATTERN_LENGTH 4
+
+/* Support Extended Cell ID (to 9) / NR (to 11) */
+#define SAT_MAX_LOC_INFO_LEN (11)
+
+/*__SAT__ end*/
+#define MAX_IMPI_LEN 74 /* IETF RFC 2486: MUST Support NAI length of at least 72 octets */
+
+#define MAX_SIM_EVENT_ARG_LIST_SIZE 12
+
+#define MAX_SIM_MCC_MNC_LEN 3 //digits or hex bytes
+#define MAX_SIM_MSIN_LEN 10 //digits or hex bytes
+#define MAX_SIM_IMSI_LEN 9 //bytes in EF_IMSI
+
+/* the content of EF_EPSLOCI:
+ * Byte 1~12: GUTI
+ * Byte 13~17: Last Visited TAI
+ * Byte 18: EPS Update Status
+ */
+#define LEN_OF_EPSLOCI 18
+
+/* the content of EF_EPSNSC is a TLV structure,
+ * Byte 1: EPS NAS Security Context Tag
+ * Byte 2: Length of following data
+ * Byte 3: KSI Tag
+ * Byte 4: KSI Length
+ * Byte 5: KSI Value
+ * Byte 6: KASME Tag
+ * Byte 7: KASME Length
+ * Byte 8~39: KASME Value
+ * Byte 40: UL NAS Count Tag
+ * Byte 41: UL NAS Count Length
+ * Byte 42~45: UL NAS Count Value
+ * Byte 46: DL NAS Count Tag
+ * Byte 47: DL NAS Count Length
+ * Byte 48~51: DL NAS Count Value
+ * Byte 52: Selected NAS Algorithm Tag
+ * Byte 53: Selected NAS Algorithm Length
+ * Byte 54: Selected NAS Algorithm Value
+ */
+#define LEN_OF_EPSNSC 54
+
+
+#define LEN_OF_5GS3GPPLOCI 20
+#define LEN_OF_5GSN3GPPLOCI 20
+#define LEN_OF_5GS3GPPNSC 57
+#define LEN_OF_UAC_AIC 4
+#define LEN_OF_ROUTING_INDICATOR 2
+#define LEN_OF_5GAUTHKEYS 110
+#define LEN_OF_EF_IMSI MAX_SIM_IMSI_LEN //9 bytes
+
+#define SIM_TAG_EF_OBJECT (0xEF)
+
+typedef enum
+{
+ SIM_GLOBAL_MODE,
+ SIM_3GPP_ONLY_MODE,
+ SIM_3GPP2_ONLY_MODE,
+ SIM_UNKNOWN_RAT_MODE
+}sim_c_capability_enum;
+
+typedef enum
+{
+ SAT_RULE_GLOBAL,
+ SAT_RULE_STK,
+ SAT_RULE_UTK,
+ SAT_RULE_UNKNOWN
+}sat_cmd_dispatch_rule_enum;
+
+typedef enum
+{
+ SIM_SWITCH_IDLE = 0,
+ SIM_SWITCH_START,
+ SIM_SWITCH_BEFORE_RESET,
+ SIM_SWITCH_REINIT, // some sim context needs to be handled w/o sim reset
+ SIM_SWITCH_AFTER_RESET,
+ SIM_SWITCH_CACHE_READ,
+} sim_dss_state_enum;
+
+typedef enum
+{
+ SIM_CT3G_SWITCH_SRC_NONE,
+ SIM_CT3G_SWITCH_SRC_AP, /* Triggered by AP */
+ SIM_CT3G_SWITCH_SRC_GMSS /* Triggered by GMSS */
+} sim_ct3g_switch_src_enum;
+
+typedef enum {
+ SIM_CARD_OPERATOR_UNKNOWN,
+ // Add below here
+ SIM_CARD_OPERATOR_CT,
+ SIM_CARD_OPERATOR_CMCC,
+ SIM_CARD_OPERATOR_CU,
+ SIM_CARD_OPERATOR_VZW,
+ SIM_CARD_OPERATOR_SPRINT,
+ SIM_CARD_OPERATOR_DT,
+ // Add above here
+ SIM_CARD_OPERATOR_MAX
+} sim_operator_type_enum;
+
+typedef enum {
+ SIM_CARD_OPERATOR_CHECK_ICCID,
+ SIM_CARD_OPERATOR_CHECK_EHPLMN,
+ SIM_CARD_OPERATOR_CHECK_IMSI,
+ SIM_CARD_OPERATOR_CHECK_MAX
+} sim_operator_check_method_enum;
+
+typedef enum
+{
+ SIM_OP_UNKOWN = 0,//IMSI unkown
+ SIM_OP01 = 1,//MCCMNC is in CMCC list
+ SIM_OP_OTHERS = 2 //MCCMNC is not in CMCC list
+} sim_op01_enum;
+
+typedef enum
+{
+ SAT_REFRESH_START = 1,
+ SAT_REFRESH_END = 2,
+ SAT_REFRESH_FAIL = 3,
+ SAT_REFRESH_SIM_INIT_COMPLETE = 4
+} sat_refresh_notification_enum;
+
+#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)
+#define MAX_LEN_MCCMNC 6
+#define MAX_LEN_IIN 6
+#define MAX_LEN_GID1 16
+#define MAX_LEN_SPN 17
+#define LEN_SIMOFF_PREFIX 11
+#endif/*#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)*/
+
+#if defined(__TC10__) || defined(__IPC_ADAPTER__)
+
+typedef enum
+{
+ SAT_REFRESH_APP_INIT_NONE = 0x00,
+
+ SAT_REFRESH_APP_INIT_SIM = 0x01,
+ SAT_REFRESH_APP_INIT_UIM = 0x02,
+ SAT_REFRESH_APP_INIT_ISIM = 0x04, // Not in-used currently
+
+ SAT_REFRESH_APP_INIT_SIM_UIM = SAT_REFRESH_APP_INIT_SIM | SAT_REFRESH_APP_INIT_UIM,
+} sat_refresh_init_app_enum;
+
+typedef enum
+{
+ SAT_REFRESH_IND_ACTION_INVALID = 0,
+ SAT_REFRESH_VOTING_REQ = 1,
+
+ SAT_REFRESH_IND_ACTION_MAX
+} sat_refresh_indication_enum;
+
+typedef enum
+{
+ SAT_REFRESH_NOT_POSSIBLE = 0,
+ SAT_REFRESH_POSSIBLE = 1,
+
+ SAT_REFRESH_CNF_MAX,
+
+ SAT_REFRESH_CNF_INVALID = 0xFF
+} sat_refresh_confirm_rsp_enum;
+
+#endif /* __TC10__ || __IPC_ADAPTER__ */
+
+#define BERTLV_EF_FIRST_BLOCK_IND 0x80
+#define BERTLV_EF_NEXT_BLOCK_IND 0x00
+#define BERTLV_EF_RETRANS_BLOCK_IND 0x40
+#define BERTLV_EF_BLOCK_OPERATION_IND_MASK 0xC0 //b8 and b7 of APDU P2
+#define URSP_DATA_OBJ_TAG 0x80
+
+typedef enum
+{
+ SET_DATA_SET_COMPLETE_OBJECT,
+ SET_DATA_CREATE_TAG,
+ SET_DATA_DELETE_OBJECT,
+} bertlv_ef_set_data_mode_enum;
+
+#endif
+
diff --git a/mcu/interface/protocol/general/sim_ps_struct.h b/mcu/interface/protocol/general/sim_ps_struct.h
new file mode 100644
index 0000000..09f9708
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_ps_struct.h
@@ -0,0 +1,2579 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * Copyright Statement:
+ * --------------------
+ * This software is protected by Copyright and the information contained
+ * herein is confidential. The software may not be copied and the information
+ * contained herein may not be used or disclosed except with the written
+ * permission of MediaTek Inc. (C) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * sim_ps_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Structure provided by SIM task and inside-PS task uses only
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+#ifndef SIM_PS_STRUCT_H
+#define SIM_PS_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "sim_public_enum.h"
+#include "sim_ps_enum.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+#include "sim_ps_struct_public.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+
+#include "nvram_data_items.h"
+#include "vsim_nvram_def.h"
+
+/* inside PS */
+typedef struct
+{
+ /* This field gives the actual file id of EF */
+ sim_file_id_enum file_id;
+
+ /* This field gives the id of the parent of the EF */
+ sim_file_index_enum parent_file_idx;
+
+ /* This field gives the id of the grandparent of the EF */
+// sim_file_index_enum grand_parent_file_idx;
+
+ /* This field is used by USIM select by path function */
+// kal_uint8 full_path[6];
+}usim_ef_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_start_mode_enum mode;
+ kal_uint8 access_id;
+ kal_uint8 pin1[8];
+} sim_start_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_start_mode_enum mode;
+ uicc_app_type_enum app_type;
+ kal_uint8 access_id;
+ kal_uint8 pin1[8];
+} sim_app_start_req_struct;
+
+typedef struct {
+ kal_uint8 num_lp;
+ sim_lp_file_type_enum lp_file_type;
+ kal_uint8 lp[NUM_OF_BYTE_LP * MAX_LP_NUM];
+} sim_lp_struct;
+
+typedef struct {
+ kal_uint8 num_ecc;
+ sim_ecc_entry_struct ecc_entry[MAX_ECC_NUM_USIM];
+ kal_uint8 ecc_rec_len;
+} sim_ecc_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 result;
+ sim_chv_info_struct chv_info;
+ sim_lp_struct lp[2];
+ sim_ecc_struct ecc;
+ kal_uint8 iccid[10];
+ kal_uint8 access_id;
+ kal_bool is_valid_rat_mode; //__ENS_RAT_BALANCING__
+ kal_uint8 rat_mode; //RAT mode setting value in EF_RAT
+ kal_bool is_sim_recovery; // If full recovery is undergoing, notify SMU not to update ICCID in SIM_START_CNF
+ sim_additional_error_cause_enum additional_error_cause;
+} sim_start_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ uicc_app_type_enum app_type;
+ kal_uint16 result;
+ sim_chv_info_struct chv_info;
+ kal_uint8 access_id;
+ kal_uint8 channel_id;
+} sim_app_start_cnf_struct;
+
+typedef uim_sim_error_ind_struct sim_error_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ usim_cache_struct usim_cache[USIM_CACHE_MAX_FILE_NUM];
+} sim_cache_update_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_error_cause_enum cause;
+ uicc_app_type_enum app_type;
+ usim_logic_channel_enum channel;
+} sim_app_error_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result; /*[MAUI_02450359] mtk01612: use result as is_imsi_valid*/
+ kal_uint8 ef_imsi[9];
+ kal_bool is_valid_gid1;
+ kal_uint8 gid1[NUM_GID1]; /*[MAUI_03097146] mtk01612: use NUM_GID1, NUM_GID2 instead of hard code */
+ kal_bool is_valid_gid2;
+ kal_uint8 gid2[NUM_GID2];
+
+#ifdef __TC01__ /* for +ESIMCEP */
+ kal_uint8 number_of_gid1;
+ kal_uint8 number_of_gid2;
+#endif
+
+/* moved from mmi_ready_ind */
+ kal_uint16 num_plmnsel_data; /* zero means invalid! */
+ kal_uint8 *plmnsel_data; /* Stored in SMU, and SMU will free it when it's updated */
+ kal_uint16 num_uplmnwact_data; /* zero means invalid! */
+ kal_uint8 *uplmnwact_data; /* Stored in SMU, and SMU will free it when it's updated */
+ kal_uint16 num_oplmnwact_data; /* zero means invalid! */
+ kal_uint8 *oplmnwact_data; /* Stored in SMU, and SMU will free it when it's updated */
+ kal_bool is_valid_dck;
+ kal_uint8 dck[16];
+/* [MAUI_02129840] mtk80420: Medium Item 5, Remove the ef_acc, sopname, opname from mmi_security_ind */
+
+/*[[MAUI_02439033]] mtk01612: To sync plmn file handling. Send hplmn to SMU, even if SMU don't need it*/
+ kal_uint16 num_hplmnwact_data; /* zero means invalid! */
+ kal_uint8 *hplmnwact_data; /* Stored in SMU, and SMU will free it when it's updated */
+
+ kal_uint16 num_cnl_data;
+ kal_uint8 cnl[NUM_CNL];
+
+ kal_bool is_spn_valid;
+ kal_uint8 spn[LEN_OF_SPN];
+
+ kal_uint16 num_ehplmn_data; /* zero means invalid! */
+ kal_uint8 ehplmn_data[MAX_EHPLMN_EF_LEN];
+} sim_mmi_security_ind_struct;
+
+
+typedef struct {
+ kal_uint8 alpha_id_size;
+ kal_uint8 alpha_id[MAX_SIM_NAME_LEN];
+ kal_uint8 bcd_len;
+ kal_uint8 bcd_digit[41];
+} sim_addr_struct;
+
+typedef struct {
+ kal_uint8 alpha_id_size;
+ kal_uint8 alpha_id[21];
+ kal_uint8 ton_npi;
+ kal_uint8 digit_size;
+ kal_uint8 digit[4];//[41];
+ kal_uint8 index_level;
+ kal_bool network_specific;
+ kal_bool premium_rate;
+} sim_info_num_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 result;
+ sim_dn_enum dn_type;
+ sim_phase_enum phase;
+ kal_bool is_valid_puct;
+ kal_uint8 ef_puct[5];
+ kal_bool is_spn_valid;
+ kal_uint8 spn[LEN_OF_SPN];
+ kal_bool is_opname_valid;
+ kal_uint8 opname[LEN_OF_OPNAME];
+ kal_bool is_sopname_valid;
+ kal_uint8 sopname[10];
+ kal_uint8 no_msisdn; // MSISDN
+ sim_addr_struct msisdn[2];
+ kal_uint8 no_info_num; // Information Numbers
+ sim_info_num_struct *info_num; /* Free by SMU */
+ kal_bool is_valid_csp;
+ kal_uint8 csp[22]; // Custom Service Profile
+ /* Acting HPLMN */ /* mtk01488 */
+ kal_bool is_valid_ef_acting_hplmn;
+ kal_uint8 ef_acting_hplmn[3];
+ kal_bool is_usim;
+ kal_bool is_valid_ef_ehplmn; // 23.122 R7 feature
+ kal_uint8 num_of_ehplmn;
+ kal_uint8 ef_ehplmn[MAX_EHPLMN_EF_LEN];
+
+ kal_bool is_registration_mode;
+} sim_mmi_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ef_imsi[9];
+ kal_bool is_valid_ef_kc;
+ kal_uint8 ef_kc[9];
+ kal_uint8 ef_acc[2];
+ kal_bool is_valid_ef_loci;
+ kal_uint8 ef_loci[11];
+ kal_bool is_valid_ef_gkc;
+ kal_uint8 ef_gkc[9];
+ kal_bool is_valid_ef_gloci;
+ kal_uint8 ef_gloci[14];
+ /* Below is adding for 3G */
+ kal_uint8 ef_keys[33]; /* Always valid in USIM */
+ kal_uint8 ef_keysps[33]; /* Always valid in USIM */
+ kal_bool is_usim;
+ kal_bool is_service_27_support;
+ kal_bool is_service_38_support;
+ /* MTC nas configure */
+ kal_uint16 no_nasconfig_data; /** Zero means invalid. */
+ kal_uint8 *nasconfig_data; /** Defined in 31.102, ef_nasconfig. MM remember to free this ctrl buffer when finish using */
+ kal_bool is_rmode_changed;
+} sim_mm_ready_ind_struct;
+/* GAS: MOD_SIM -> MOD_RRM */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_valid_ms_op_mode; /* !!!Remove for MONZA!!! */
+ kal_uint8 ms_op_mode; /* !!!Remove for MONZA!!! */
+ kal_uint8 ef_imsi[9];
+ kal_bool is_valid_ef_bcch; /* !!!Remove for MONZA!!! */
+ kal_uint8 ef_bcch[16]; /* ONLY for SIM card */
+ kal_uint8 ef_acc[2];
+ kal_bool is_valid_ef_loci; /* !!!Remove for MONZA!!! */
+ kal_uint8 ef_loci[11];
+ /* Acting HPLMN */ /* mtk01488 */
+ kal_bool is_valid_ef_acting_hplmn;
+ kal_uint8 ef_acting_hplmn[3];
+ /* For MONZA only */
+ kal_bool is_usim;
+ kal_bool is_test_sim;
+ kal_bool is_valid_ef_netpar; /*mtk01612: [MAUI_02575860]*/
+ kal_uint16 size_ef_netpar; /*mtk01612: [MAUI_02575860]*/
+ kal_uint8 ef_netpar[MAX_SUPPORT_NETPAR_DATA_SIZE]; /*mtk01612: [MAUI_02575860]*/
+} sim_rr_ready_ind_struct;
+
+/** MOD_SIM -> MOD_PAM */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ /** True: SIM is replaced during power-OFF or by Hot-Plug.
+ * - Note: Hot-Plug MSG sequence: SIM_ERROR_IND(plug-out) -> SIM_ERROR_IND(plug-in) -> SIM_PAM_READY_IND.
+ */
+ kal_bool is_sim_replaced ;
+
+ kal_uint8 ef_acc[2] ; /** Defined in both 51.011 and 31.102. */
+ /* MTC nas configure */
+ kal_uint16 no_nasconfig_data ; /** Zero means invalid. */
+ kal_uint8 *nasconfig_data ; /** Defined in 31.102, ef_nasconfig. PAM remember to free this ctrl buffer when finish using */
+} sim_pam_ready_ind_struct ;
+
+typedef struct {
+ kal_bool is_valid_ef_acsgl;
+ kal_uint8 acsgl_data_rec_num; /* number of valid record in acsgl_data buffer */
+ kal_uint8 ef_acsgl_rec_size;
+ kal_uint8 *acsgl_data; /* Ctrl buffer with size MAX_SUPPORT_CSGL_DATA_SIZE. */
+ kal_bool is_valid_ef_ocsgl;
+ kal_uint8 ocsgl_data_rec_num; /* number of valid record in ocsgl_data buffer */
+ kal_uint8 ef_ocsgl_rec_size;
+ kal_uint8 *ocsgl_data; /* Ctrl buffer with size MAX_SUPPORT_CSGL_DATA_SIZE. */
+} sim_csg_white_list_struct;
+
+/* UAS: MOD_SIM -> MOD_USIME */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_usim;
+ kal_bool is_test_sim;
+ kal_bool is_gsm_access_allowed;
+ kal_uint8 ef_acc[2];
+ kal_uint8 ef_imsi[9];
+ kal_bool is_valid_ef_start_hfn;
+ kal_uint8 ef_start_hfn[6];
+ kal_bool is_valid_ef_threshold;
+ kal_uint8 ef_threshold[3];
+ kal_uint8 ef_loci[11];
+ kal_bool is_valid_ef_psloci; /* If USIM inserted, this is EF-PSLOCI; if SIM inserted, this is EF_LOCIGPRS */
+ kal_uint8 ef_psloci[14]; /* If USIM inserted, this is EF-PSLOCI; if SIM inserted, this is EF_LOCIGPRS */
+ kal_bool is_valid_ef_netpar; /*mtk01612: [MAUI_02575860]*/
+ kal_uint16 size_ef_netpar;
+ kal_uint8 ef_netpar[MAX_SUPPORT_NETPAR_DATA_SIZE];
+ sim_csg_white_list_struct csg_white_list;
+} usim_urr_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 size_ef_netpar;
+ kal_uint8 ef_netpar[MAX_SUPPORT_NETPAR_DATA_SIZE];
+} usim_update_netpar_req_struct; /*mtk01612: [MAUI_02575860]*/
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_cmd_result_enum result;
+ kal_uint16 status_word;
+} usim_update_netpar_cnf_struct; /*mtk01612: [MAUI_02575860]*/
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool cipher_ind; // 20050202 Benson add for display cipher indication
+ kal_bool is_uicc_activated; // VZ_REQ_HVOLTE_41443, indicate the VZW UICC is activated or not
+} sim_mmrr_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ef_imsi[9];
+ kal_uint8 ef_acc[2];
+ kal_bool is_valid_ef_epsloci;
+ kal_uint8 ef_epsloci[LEN_OF_EPSLOCI];
+ kal_bool is_usim;
+ kal_bool is_gsm_access_allowed;
+ kal_uint8 ef_epsnsc_record_len; //record_len=0 indicating the epsnsc data is invalid
+ kal_uint8 *ef_epsnsc_data; // Free in EMM
+ sim_csg_white_list_struct csg_white_list;
+ /* MTC nas configure */
+ kal_uint16 no_nasconfig_data; /** Zero means invalid. */
+ kal_uint8 *nasconfig_data; /** Defined in 31.102, ef_nasconfig. EMM remember to free this ctrl buffer when finish using */
+ /* operator PLMN */
+ kal_uint16 no_oplmn_data;
+ kal_uint8 *oplmn_data;
+ kal_bool is_rmode_changed;
+}sim_emm_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ /* Common part of GMSS/NWSEL */
+ kal_uint8 ef_imsi[9];
+ kal_bool is_usim;
+
+ /* NWSEL only */
+ kal_bool is_valid_ef_loci;
+ kal_uint8 ef_loci[11];
+ kal_bool is_valid_ef_gloci;
+ kal_uint8 ef_gloci[14];
+ kal_bool is_valid_ef_epsloci;
+ kal_uint8 ef_epsloci[LEN_OF_EPSLOCI];
+ kal_bool is_valid_ef_5gs3gpploci;
+ kal_uint8 ef_5gs3gpploci[LEN_OF_5GS3GPPLOCI];
+ kal_bool is_valid_ef_5gsn3gpploci;
+ kal_uint8 ef_5gsn3gpploci[LEN_OF_5GSN3GPPLOCI];
+ kal_uint8 ef_hplmn_time;
+ /* Forbidden PLMN */
+ kal_bool is_valid_ef_fplmn;
+ kal_uint16 num_of_fplmn;
+ kal_uint8 *ef_fplmn; /* NWSEL remember to free it after finished using when ef_fplmn it is not NULL */
+ /* PLMN selector*/
+ kal_uint16 no_plmnsel_data;
+ kal_uint8 *plmnsel_data; /* SMU remember to free it after finished using when plmnsel_data it is not NULL */
+ /* user PLMN */
+ kal_uint16 no_uplmn_data;
+ kal_uint8 *uplmn_data; /* SMU remember to free it after finished using when uplmn_data it is not NULL */
+ /* operator PLMN */
+ kal_uint16 no_oplmn_data;
+ kal_uint8 *oplmn_data; /* SMU remember to free it after finished using when oplmn_data it is not NULL */
+ /* HPLMN */
+ kal_uint16 no_hplmn_data;
+ kal_uint8 *hplmn_data; /* SMU remember to free it after finished using when hplmn_data it is not NULL */
+ /* Acting HPLMN */
+ kal_bool is_valid_ef_acting_hplmn;
+ kal_uint8 ef_acting_hplmn[3];
+ /* Equivalent Home PLMN */
+ kal_bool is_valid_ef_ehplmn;
+ kal_uint8 num_of_ehplmn;
+ kal_uint8 ef_ehplmn[MAX_EHPLMN_EF_LEN];
+ /* EHPLMN Presentation Indication*/
+ kal_bool is_valid_ef_ehplmnpi;
+ kal_uint8 ef_ehplmnpi;
+ /* Last RPLMN Selection Indication*/
+ kal_bool is_valid_ef_lrplmnsi;
+ kal_uint8 ef_lrplmnsi;
+ kal_uint8 mnc_length;
+ kal_bool is_valid_cdma_imsi_m;
+ kal_uint8 cdma_imsi_m[10];
+ /* MTC nas configure */
+ kal_uint16 no_nasconfig_data; /** Zero means invalid. */
+ kal_uint8 *nasconfig_data; /** Defined in 31.102, ef_nasconfig. NWSEL remember to free this ctrl buffer when finish using */
+ /* Control plane-based steering of UE in VPLMN */
+ kal_bool is_enabled_ctrl_plane_steering_in_vplmn;
+ /* Other */
+ kal_bool is_rmode_changed;
+ kal_uint8 trans_id;
+
+ /* GMSS only */
+ kal_uint16 no_mlpl_data;
+ kal_uint8 *mlpl_data; /* GMSS remember to free it after finished using when mlpl_data is not NULL */
+ kal_uint16 no_mspl_data;
+ kal_uint8 *mspl_data; /* GMSS remember to free it after finished using when mspl_data is not NULL */
+ kal_uint16 no_mmssmode_data;
+ kal_uint8 *mmssmode_data; /* GMSS remember to free it after finished using when mmssmode_data is not NULL */
+ kal_bool is_dual_mode_sim;
+ kal_bool is_uicc_activated; /* VZ_REQ_HVOLTE_41443, indicate the VZW UICC is activated or not */
+ // TMO requirement:
+ // If the SA public key is not loaded onto the SIM to perform SUCI calculation then
+ // the device should only be allowed to connect to the LTE/NSA network.
+ // TRUE: 1. SUCI is calculated by UICC
+ // 2. SUCI is calculated by ME, the protect scheme is not NULL SCHEME and there is public key
+ // FALSE: The others
+ kal_bool is_suci_protected;
+}sim_gmss_ready_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ef_imsi[9];
+ kal_uint8 ef_acc[2];
+ kal_bool is_usim;
+ /* MTC nas configure */
+ kal_uint16 no_nasconfig_data; /** Zero means invalid. */
+ kal_uint8 *nasconfig_data; /** Defined in 31.102, ef_nasconfig. VGMM remember to free this ctrl buffer when finish using */
+ kal_bool is_rmode_changed;
+ /* 5G new data */
+ kal_bool is_valid_ef_5gs3gpploci;
+ kal_uint8 ef_5gs3gpploci[LEN_OF_5GS3GPPLOCI];
+ kal_bool is_valid_ef_5gsn3gpploci;
+ kal_uint8 ef_5gsn3gpploci[LEN_OF_5GSN3GPPLOCI];
+ kal_bool is_valid_ef_uac_aic;
+ kal_uint8 ef_uac_aic[LEN_OF_UAC_AIC];
+ kal_bool is_valid_ef_5gauthkeys;
+ kal_uint8 ef_5gauthkeys[LEN_OF_5GAUTHKEYS];
+}sim_vgmm_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id;
+ sim_get_identity_type_enum get_id_type;
+ kal_uint16 param;
+ kal_uint16 add_input_len;
+ kal_uint8 add_input[256];
+} sim_get_identity_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_cmd_result_enum result;
+ kal_uint8 trans_id;
+ kal_uint16 rsp_len;
+ kal_uint8 rsp[256];
+} sim_get_identity_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint16 length;
+ kal_uint8 access_id;
+ kal_uint8 path[6];
+ kal_uint8 src_id;
+ kal_uint8 channel_id;
+ kal_uint8 sfi;
+} sim_read_req_struct, sim_app_read_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint16 length;
+ kal_uint8 data[258]; // 256 + 2 for driver usage in T=1
+ kal_uint16 result;
+ kal_uint16 status_word;
+ kal_uint8 access_id;
+ kal_uint8 src_id;
+} sim_read_cnf_struct, sim_app_read_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint16 length;
+ kal_uint8 data[260]; // 255 + 5 for command header space
+ kal_uint8 access_id;
+ kal_uint8 channel_id;
+ kal_uint8 path[6];
+ kal_uint8 src_id;
+ kal_uint8 sfi;
+} sim_write_req_struct, sim_app_write_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint16 length;
+ kal_uint16 result;
+ kal_uint16 status_word;
+ kal_uint8 access_id;
+ kal_uint8 src_id;
+} sim_write_cnf_struct, sim_app_write_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint8 data[127];
+ kal_uint8 data_len;
+ kal_uint8 access_id;
+ kal_uint8 path[6];
+} sim_increase_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint8 data[258]; // 256 +2 for driver usage in T=1
+ kal_uint16 result;
+ kal_uint16 status_word;
+ kal_uint16 length;
+ kal_uint8 access_id;
+} sim_increase_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_security_operation_enum op;
+ sim_chv_type_enum which_chv;
+ kal_uint8 old_value[8];
+ kal_uint8 new_value[8];
+ kal_uint8 access_id;
+ kal_uint8 channel_id;
+} sim_security_req_struct, sim_app_security_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_cmd_result_enum result;
+ kal_uint16 status_word;
+ sim_security_operation_enum op;
+ sim_chv_type_enum which_chv;
+ kal_uint8 access_id;
+ sim_chv_info_struct chv_info;
+ kal_uint8 channel_id;
+} sim_security_cnf_struct, sim_app_security_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ uicc_app_type_enum app_type;
+ kal_uint8 channel_id;
+ kal_uint8 mcc[4];
+ kal_uint8 mnc[4];
+ kal_uint8 trans_id; /* Used by DSBP_RECONFIG's users. Use 1~255 in order for each SIM task. */
+#ifdef __SIM_MULTI_PIN__
+ kal_uint8 pin_status_data[SIM_MAX_PIN_DO_SIZE];
+#endif
+} sim_app_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_event_enum event;
+ kal_uint8 argc;
+ kal_uint8 arg_list[MAX_SIM_EVENT_ARG_LIST_SIZE];
+} sim_event_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint8 src_id;
+ kal_uint16 file_idx;
+ kal_uint8 path[6];
+ kal_uint8 info_type;
+ kal_uint8 channel_id;
+ kal_uint16 length; /*[MAUI_01702417] mtk01612: WinMo_GEMINI : +crsm*/
+} sim_file_info_req_struct, sim_app_file_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint8 src_id;
+ kal_uint8 file_type;
+ kal_uint16 file_idx;
+ kal_uint8 info_type;
+ kal_uint16 length;
+ kal_uint16 result;
+ kal_uint16 status_word;
+ kal_uint16 file_size;
+ kal_uint8 num_of_rec;
+ kal_uint8 res_data[256];
+ kal_uint8 sfi;
+} sim_file_info_cnf_struct, sim_app_file_info_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id; //piggy-back
+ kal_uint16 file_idx; //refer to sim_file_index_enum
+ kal_uint8 path[6]; //full file path if no file index
+ kal_uint8 channel_id;
+ kal_uint8 sfi; //short file ID, refer to 3GPP 31.102
+ kal_uint16 tag_length; //1 <= T <= 3
+ kal_uint8 tag[3];
+} sim_bertlv_retrieve_data_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id; //piggy-back
+ kal_uint16 result; //refer to sim_cmd_result_enum
+ kal_uint16 file_idx; //piggy-back if file_idx is set in request
+ kal_uint16 status_word;
+ kal_uint16 length; //the length of the data in TLV object, i.e. Tag and Length field are excluded
+} sim_bertlv_retrieve_data_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id; //piggy-back
+ kal_uint16 file_idx; //refer to sim_file_index_enum
+ kal_uint8 path[6]; //full file path if no file index
+ kal_uint8 channel_id;
+ kal_uint8 sfi;
+ kal_uint8 mode; //set data, create tag, delete object refer to bertlv_ef_set_data_mode_enum
+ kal_uint16 tag_length; //1 <= T <= 3
+ kal_uint8 tag[3];
+ kal_uint16 length; //length all object data except tag and length field.
+} sim_bertlv_set_data_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 trans_id; //piggy-back
+ kal_uint16 result; //refer to sim_cmd_result_enum
+ kal_uint16 file_idx; //piggy-back if file_idx is set in request
+ kal_uint8 mode; //piggy-back
+ kal_uint16 status_word;
+} sim_bertlv_set_data_cnf_struct;
+
+/******************* MMDC START *******************/
+typedef struct {
+ sim_file_id_enum file_id;
+ kal_uint16 para;
+ kal_uint16 length;
+ kal_uint8 path[6];
+} sim_access_extmd_read_ind_struct;
+
+typedef struct {
+ sim_file_id_enum file_id;
+ kal_uint16 para;
+ kal_uint16 length;
+ kal_uint8 path[6];
+ kal_uint8 data[260];
+} sim_access_extmd_update_ind_struct;
+
+typedef struct {
+ sim_file_id_enum file_id;
+ kal_uint8 path[6];
+} sim_access_extmd_file_info_ind_struct;
+
+typedef struct {
+ kal_uint8 rand[16];
+ kal_bool is_auth_present;
+ kal_uint8 auth[16];
+} sim_access_extmd_auth_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_access_extmd_op_enum op;
+ union
+ {
+ sim_access_extmd_read_ind_struct read_ind;
+ sim_access_extmd_update_ind_struct update_ind;
+ sim_access_extmd_file_info_ind_struct file_info_ind;
+ sim_access_extmd_auth_ind_struct auth_ind;
+ }req_field;
+} sim_access_extmd_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_uint16 status_word;
+ kal_uint16 length;
+ kal_uint8 res_data[256];
+} sim_access_extmd_res_struct;
+
+typedef struct {
+ kal_bool insert;
+ sim_error_cause_enum cause;
+}sim_extmd_notify_card_status;
+
+typedef struct {
+ kal_uint8 card_type;
+}sim_extmd_notify_card_type;
+
+typedef struct {
+ sat_refresh_type_enum refresh_type;
+ kal_uint8 num_of_file;
+ kal_uint16 file_list[120];
+ kal_uint8 size_of_plmn;
+ kal_uint8 *plmn_list;
+}sim_extmd_notify_file_change;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_extmd_notify_enum type;
+ union
+ {
+ sim_extmd_notify_card_status card_status;
+ sim_extmd_notify_card_type card_type;
+ sim_extmd_notify_file_change file_change;
+ }notify;
+} sim_extmd_notify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+} sim_extmd_notify_cnf_struct;
+
+/******************* MMDC END *******************/
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint8 pattern[16];
+ kal_uint8 length;
+ kal_uint8 mode;
+} sim_seek_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint8 length;
+ kal_uint16 result;
+ kal_uint8 data[258]; // 256 + 2 for driver usage in T=1
+} sim_seek_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ sim_dn_enum dn_type;
+ kal_bool switch_on;
+} sim_dial_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ sim_cmd_result_enum result;
+ sim_dn_enum dn_type;
+ kal_bool switch_on;
+} sim_dial_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint8 channel_id;
+ kal_uint16 length; /*mtk01612: [MAUI_01899190] usim_on_duma*/
+} sim_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ sim_cmd_result_enum result;
+ kal_uint16 status_word;
+ kal_uint8 data[258]; // 256 + 2 for driver usage in T=1
+ kal_uint16 length;
+} sim_status_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 switch_mode;
+} sim_error_test_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint8 access_id;
+ kal_uint8 state; /* 1: read after update */
+ kal_uint8 src_id;
+} sim_read_plmn_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 result;
+ kal_uint16 status_word;
+ kal_uint16 file_size;
+ kal_uint8 file[MAX_SUPPORT_PLMN_DATA_SIZE]; /* depends on the maximum supported file size of plmn type files */
+ kal_uint8 access_id;
+ kal_uint8 state; /* 1: read after update */
+ kal_uint8 src_id;
+} sim_read_plmn_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 file_size;
+ kal_uint8 file[MAX_SUPPORT_PLMN_DATA_SIZE]; /* depends on the maximum supported file size of plmn type files */
+ kal_uint8 access_id;
+ kal_uint8 src_id;
+} sim_write_plmn_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 result;
+ kal_uint16 status_word;
+ kal_uint8 access_id;
+ kal_uint8 src_id;
+} sim_write_plmn_cnf_struct;
+
+
+/* [MAUI_03058282] mtk80420: move sim_authenticate_req/cnf to public struct */
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 next_type;
+ sim_chv_info_struct chv_info;
+} sim_l4c_verify_pin_result_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_sim_inserted;
+} sim_status_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_bool switch_on;
+} sim_acl_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ sim_cmd_result_enum result;
+ kal_bool switch_on;
+} sim_acl_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} l4c_sim_get_gsmcdma_dualsim_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool is_sim_inserted;
+ kal_bool is_df_gsm_existed;
+ kal_bool is_df_cdma_existed;
+} l4c_sim_get_gsmcdma_dualsim_info_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ gsmcdma_dualsim_mode_enum op;
+} l4c_sim_set_gsmcdma_dualsim_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ gsmcdma_dualsim_mode_enum op;
+ gsmcdma_dualsim_result_enum result;
+} l4c_sim_set_gsmcdma_dualsim_mode_cnf_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_MODE_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool switch_on;
+ kal_uint8 profile_id; /* 0-based index */
+ kal_uint8 app_type;
+} l4c_sim_set_vsim_mode_req_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_MODE_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+ sim_vsim_fcs_enum cause; /* failure cause */
+ kal_bool switch_on;
+ kal_uint8 profile_id; /* 0-based index */
+ uicc_card_type_enum vsim_type; /* SIM/USIM */
+} l4c_sim_set_vsim_mode_cnf_struct;
+
+/* MSG_ID_L4C_SIM_GET_VSIM_RSA_PUBKEY_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} l4c_sim_get_vsim_rsa_pubkey_req_struct;
+
+/* MSG_ID_L4C_SIM_GET_VSIM_RSA_PUBKEY_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+
+ kal_uint16 pubkey_len;
+ kal_uint8 pubkey[536]; /* MTK format: */
+ // pubk[0:7] : "PUBK_HDR" for recognition
+ // pubk[8:11] : length of modulus
+ // pubk[12:15] : length of public exponent
+ // pubk[16:271] : modulus
+ // pubk[272:527] : public exponent
+ // pubk[528:535] : "PUBK_TAL" for recognition
+
+} l4c_sim_get_vsim_rsa_pubkey_cnf_struct;
+
+/* MSG_ID_L4C_SIM_VSIM_KI_MODE_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool enabled;
+
+ kal_uint8 profile_id;
+} l4c_sim_vsim_ki_mode_req_struct;
+
+/* MSG_ID_L4C_SIM_VSIM_KI_MODE_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+} l4c_sim_vsim_ki_mode_cnf_struct;
+
+
+/* MSG_ID_L4C_SIM_SET_VSIM_KI_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+
+ kal_uint8 profile_id;
+ kal_uint16 key_len;
+ kal_uint8 key[256];
+ kal_bool encrypted;
+} l4c_sim_set_vsim_ki_req_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_KI_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+} l4c_sim_set_vsim_ki_cnf_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_FILE_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+
+ kal_uint8 profile_id;
+ kal_uint16 file_id;
+ kal_uint16 meta_len;
+ kal_uint16 data_len;
+ kal_uint8 meta[256];
+ kal_uint8 data[256];
+} l4c_sim_set_vsim_file_req_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_FILE_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+ sim_vsim_fcs_enum cause; /* failure cause */
+
+ kal_uint8 profile_id;
+ kal_uint16 file_id;
+ kal_uint16 meta_len;
+ kal_uint16 data_len;
+} l4c_sim_set_vsim_file_cnf_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_PROFILE_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+
+ kal_uint8 profile_id;
+ uicc_card_type_enum vsim_type; /* SIM/USIM */
+ kal_uint16 auth_len;
+ kal_uint8 auth[256];
+ kal_uint8 auth_algo_idx;
+} l4c_sim_set_vsim_profile_req_struct;
+
+/* MSG_ID_L4C_SIM_SET_VSIM_PROFILE_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+ sim_vsim_fcs_enum cause; /* failure cause */
+
+} l4c_sim_set_vsim_profile_cnf_struct;
+
+
+/*mtk01612: [MAUI_02014578] wise detect O2 prepay SIM*/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_o2_prepaid_sim;
+} sim_o2_prepaid_sim_ind_struct;
+
+#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool switch_on;
+ kal_uint8 profile_id; /* 0-based index */
+ kal_uint8 mode;
+ kal_uint8 len_mccmnc;
+ kal_uint8 mccmnc[MAX_LEN_MCCMNC];
+ kal_uint8 len_iin;
+ kal_uint8 iin[MAX_LEN_IIN];
+ kal_uint8 len_gid1;
+ kal_uint8 gid1[MAX_LEN_GID1];
+ kal_uint8 len_spn;
+ kal_uint8 spn[MAX_LEN_SPN];
+}l4c_sim_set_vsim_update_req_struct;
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+ sim_vsim_fcs_enum cause; /* failure cause */
+ kal_uint8 profile_id;
+ kal_bool switch_on;
+ kal_uint8 mode; /* 0-based index */
+ kal_uint16 file_id;
+ uicc_card_type_enum vsim_type; /* SIM/USIM */
+} l4c_sim_set_vsim_update_cnf_struct;
+#endif/*#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)*/
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+/* MAUI_03082391 */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 channel_id;
+ kal_uint16 req_len;
+#ifndef __SIM_ACCESS_INTEGRATION__
+ kal_uint8 req[APDU_REQ_MAX_LEN];
+#endif
+ kal_uint8 cmd_type; //0: CGLA, 1: CSIM, 2: ECGLA
+} sim_apdu_access_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint16 result;
+ kal_uint16 rsp_len;
+#ifndef __SIM_ACCESS_INTEGRATION__
+ kal_uint8 rsp[APDU_RSP_MAX_LEN];
+#endif
+ kal_uint8 cmd_type; //0: CGLA, 1: CSIM, 2: ECGLA
+} sim_apdu_access_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool is_last;
+ kal_uint16 status_word;
+ // Move buffer_block[] to peer_buf
+} sim_apdu_res_block_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_manage_channel_mode_enum op;
+ kal_uint8 req_len;
+ kal_uint8 req[SIM_AID_MAX_LEN];
+} sim_manage_channel_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 channel_id;
+ kal_uint16 result;
+ sim_manage_channel_mode_enum op;
+} sim_manage_channel_cnf_struct;
+
+
+/*mtk01612: [MAUI_03020152] sync polling timer*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_sync_timer;
+ kal_uint32 sync_time_period;
+} sim_sync_poll_timer_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool switch_on;
+}sim_recovery_enhancement_switch_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool support_additional_interface;
+ kal_uint8 additional_interface;
+}sim_terminal_capability_setting_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_imsi_valid; //KAL_TRUE for IMSI read successfully, KAL_FALSE for read IMSI fail
+ kal_uint8 imsi[9];
+ kal_uint8 mnc_length; // 0 for unkonwn.
+ kal_bool is_iccid_valid;
+ kal_uint8 iccid[10];
+} sim_read_imsi_iccid_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 option;
+} sim_read_dir_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 option;
+ sim_cmd_result_enum result;
+ kal_uint8 active_app;
+ kal_uint8 aid[SIM_MAX_AID_LEN];
+ kal_uint16 length; //(record size * record number)
+ kal_uint8 dir_content[1];
+} sim_read_dir_cnf_struct;
+
+/*mtk0188: SATe*/
+//#define MAX_SUPPORT_SATE_CHANNEL 3
+
+/* PH 03042005 Remote SAT */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cmd_id;
+ kal_uint16 proactive_cmd_len;
+ kal_uint8 proactive_cmd[260];
+} sat_proactive_cmd_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+ kal_uint8 src_id;
+#endif
+ kal_uint16 cmd_id;
+ kal_uint8 length;
+ kal_uint8 terminal_rsp[261];
+} sat_terminal_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_moretime_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_poll_interval_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 length;
+ kal_uint8 envelope[261];
+ kal_bool is_standard; /* KAL_FALSE: AT+STKENV, otherwise KAL_TRUE: AT+CUSATE */
+} sat_envelope_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result; /* sim_cmd_result_enum */
+ kal_uint16 length;
+ kal_uint8 envelope_rsp[256];
+ kal_uint16 status_word;
+ kal_bool is_standard; /* KAL_FALSE: AT+STKENV, otherwise KAL_TRUE: AT+CUSATE */
+} sat_envelope_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_refresh_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_polling_off_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_provide_local_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 event_list[5]; // extend for IMS event download
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_setup_event_list_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_timer_management_ind_struct;
+
+/* ----End Remote SAT---- */
+
+typedef struct {
+ kal_uint8 qos_length; /* QOS identifer bit*/
+ kal_uint8 unused1; /* Unused Bit*/
+ kal_uint8 delay_class;
+ kal_uint8 reliability_class;
+ kal_uint8 peak_throughput;
+ kal_uint8 unused2; /* Unused Bit*/
+ kal_uint8 precedence_class;
+ kal_uint8 unused3; /* Unused Bit*/
+ kal_uint8 mean_throughput;
+ kal_uint8 traffic_class;
+ kal_uint8 delivery_order;
+ kal_uint8 delivery_of_err_sdu;
+ kal_uint8 max_sdu_size;
+ kal_uint8 max_bitrate_up_lnk;
+ kal_uint8 max_bitrate_down_lnk;
+ kal_uint8 residual_bit_err_rate;
+ kal_uint8 sdu_err_ratio;
+ kal_uint8 transfer_delay;
+ kal_uint8 traffic_hndl_priority;
+ kal_uint8 guarntd_bit_rate_up_lnk;
+ kal_uint8 guarntd_bit_rate_down_lnk;
+} sat_gprs_qos_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+} sat_more_time_res_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 priority;
+ kal_uint8 clear_text_type;
+ kal_uint8 immediate_res;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_dspl_text_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 additional_info;
+} sat_dspl_text_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 type_of_input;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_get_inkey_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 is_yes_selected;
+} sat_get_inkey_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 type_of_input;
+ kal_uint8 is_input_revealed_to_user;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 len_of_min_input;
+ kal_uint8 len_of_max_input;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_get_input_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+} sat_get_input_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 is_softkey_preferred;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 num_of_item;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_setup_menu_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+} sat_setup_menu_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 is_softkey_preferred;
+ kal_uint8 type_of_presentation;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 is_item_id_available;
+ kal_uint8 item_id;
+ kal_uint8 num_of_item;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_select_item_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 item_id;
+} sat_select_item_res_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 tone_id;
+ kal_uint32 duration;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_play_tone_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+} sat_play_tone_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 condition;
+ kal_uint32 duration;
+ kal_uint8 type_of_modification;
+ kal_uint8 is_icon1_available;
+ sat_icon_struct icon_info1;
+ kal_uint8 is_icon2_available;
+ sat_icon_struct icon_info2;
+ kal_uint8 size_of_ccp;
+ kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+ kal_uint8 no_addr;
+ kal_uint8 *addr;
+ kal_uint8 size_of_subaddr;
+ kal_uint8 subaddr[MAX_SIM_ADDR_BCD_LEN];
+ kal_bool contain_ims_uri;
+ kal_uint8 media_type;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_setup_call_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+} sat_setup_call_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+#if defined(__TC01__)
+ kal_bool is_alpha_id_exist;
+#endif
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 is_sms_packed_required;
+ kal_uint8 size_of_addr;
+ kal_uint8 addr[MAX_SIM_ADDR_LEN];
+ kal_uint8 no_sms_tpdu;
+ kal_uint8 *sms_tpdu;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_send_sms_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+} sat_send_sms_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 type_of_modification;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_ss_string;
+ kal_uint8 *ss_string;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_send_ss_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 size_of_additional_info;
+ kal_uint8 additional_info[255];
+} sat_send_ss_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 type_of_modification;
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_ussd_string;
+ kal_uint8 *ussd_string;
+ kal_uint8 dcs_of_ussd_string;
+ kal_uint8 no_alpha_id; /* Length of undecoded alpha id */
+ kal_bool is_alpha_id_present;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_send_ussd_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 size_of_additional_info;
+ kal_uint8 additional_info[255];
+} sat_send_ussd_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+ kal_uint8 size_of_ccp1;
+ kal_uint8 ccp1[MAX_SAT_SIZE_OF_CCP];
+ kal_uint8 size_of_subaddr;
+ kal_uint8 subaddr[MAX_SIM_SUB_ADDR_BCD_LEN];
+ kal_uint8 size_of_ccp2;
+ kal_uint8 ccp2[MAX_SAT_SIZE_OF_CCP];
+ kal_bool is_sat_action;
+ kal_uint8 call_id; // used by IMC
+} sat_call_ctrl_by_sim_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 res;
+ kal_uint8 type;
+ kal_uint8 size_of_ccp1;
+ kal_uint8 ccp1[MAX_SAT_SIZE_OF_CCP];
+ kal_uint8 size_of_subaddr;
+ kal_uint8 subaddr[MAX_SIM_SUB_ADDR_BCD_LEN];
+ kal_uint8 is_bc_repeat_ind_avail;
+ kal_uint8 bc_repeat_ind;
+ kal_uint8 size_of_ccp2;
+ kal_uint8 ccp2[MAX_SAT_SIZE_OF_CCP];
+ kal_uint8 alpha_id_len;
+ kal_bool is_alpha_id_present;
+ kal_uint8 call_id; //used by IMC
+} sat_call_ctrl_by_sim_cnf_struct;
+
+typedef sat_call_ctrl_by_sim_req_struct sat_ss_ctrl_by_sim_req_struct;
+typedef sat_call_ctrl_by_sim_cnf_struct sat_ss_ctrl_by_sim_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint8 size_of_addr1;
+ kal_uint8 addr1[MAX_SIM_ADDR_LEN];
+ kal_uint8 size_of_addr2;
+ kal_uint8 addr2[MAX_SIM_ADDR_LEN];
+} sat_send_sms_ctrl_by_sim_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint8 res;
+ kal_uint8 size_of_addr1;
+ kal_uint8 addr1[MAX_SIM_ADDR_LEN];
+ kal_uint8 size_of_addr2;
+ kal_uint8 addr2[MAX_SIM_ADDR_LEN];
+} sat_send_sms_ctrl_by_sim_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint8 size_of_addr;
+ kal_uint8 addr[MAX_SIM_ADDR_LEN];
+} sat_sms_dl_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 access_id;
+ kal_uint8 is_successful;
+ kal_uint16 size_of_sim_ack_data;
+ kal_uint8 sim_ack_data[258];
+ kal_uint8 cause;
+} sat_sms_dl_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 size_of_cb_page_data;
+ kal_uint8 rat;
+ kal_uint8 current_page;
+ kal_uint8 total_page;
+ kal_uint8 cb_page_data[88];
+} sat_cb_dl_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_successful;
+ kal_uint8 rat;
+ kal_uint8 current_page;
+ kal_uint8 total_page;
+} sat_cb_dl_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+ sat_sms_dl_error_cause_enum cause;
+ kal_uint16 size_of_sim_ack_data;
+ kal_uint8 sim_ack_data[256];
+} sat_general_sms_pp_dl_rsp_struct;
+
+/* MSG_ID_SAT_NAS_SV_SOR_SECURE_PACKET_RSP */
+typedef sat_general_sms_pp_dl_rsp_struct sat_nas_sv_sor_secure_packet_rsp_struct;
+/* MSG_ID_SAT_VGMM_SECURE_PACKET_RSP */
+typedef sat_general_sms_pp_dl_rsp_struct sat_vgmm_secure_packet_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 item_id;
+ kal_uint8 is_help_info_requested;
+} sat_menu_select_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_successful;
+} sat_menu_select_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 sim_slot_id;
+ kal_bool is_full_changed;
+ kal_uint8 refresh_type; /* Add for SIM REFRESH type */
+ kal_uint8 num_of_file;
+ kal_uint16 file_list[120]; /* [MAUI_01716279] mtk02374 20090706 change to kal_uint16 due to file number is larger than 256*/
+ kal_uint8 size_of_plmn;
+ kal_uint8 *plmn_list; /*only used when refresh_type is TYPE_STEERING_OF_ROAMING and MOD_NWSEL SHOULD free this created ctrl buffer */
+} sat_file_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 sim_slot_id;
+ kal_uint8 is_successful;
+ sat_file_change_error_cause_enum error_cause;
+} sat_file_change_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_imei_sv;
+} sat_imei_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_imei_valid;
+ kal_uint8 imei[9];
+ kal_bool is_imei_sv;
+} sat_imei_info_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mm_status;
+ kal_uint8 location_info[SAT_MAX_LOC_INFO_LEN];
+ kal_uint8 rat; /* rat_enum, in l3_inc_enums_public.h */
+} sat_location_info_ind_struct;
+
+/* MSG_ID_SAT_NW_REJECT_IND from ugRAC and eRAC */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ sat_nw_rej_info_enum info;
+ union
+ {
+ kal_uint8 location_info[5]; /* MCC&MNC(3) + LAC/TAC(2). the location info length field of NW reject event shall be 5 Clause 8.19, TS 31.111 */
+ kal_uint8 route_area_id[6]; /* MCC&MNC(3) + LAC(2) + RAC(1). Clause 8.91, TS 31.111 */
+ kal_uint8 track_area_id[6]; /* MCC&MNC(3) + [EUTRAN]TAC(2) / [NGRAN]TAC(3). Clause 8.99, TS 31.111 */
+ }info_field;
+
+ kal_uint8 rat;
+ sat_nw_rej_type_enum rej_type; /* Clause 8.92, TS 31.111 */
+ kal_uint8 rej_cause; /* Clause 8.93, TS 31.111 */
+ kal_uint8 ext_rej_cause; /* Clause 8.136, TS 31.111 */
+} sat_nw_reject_ind_struct;
+
+/*
+ * mtk02374 20090513
+ * add for provide local info with nw search mode
+ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 nw_search_mode;
+} sat_nw_search_mode_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} sat_time_zone_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 time_zone;
+} sat_time_zone_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+} sat_current_time_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 time_info[6];
+} sat_current_time_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mmi_info_type;
+ kal_uint8 len_of_address;
+ kal_uint8* address;
+ kal_uint8 alpha_id_len;
+ kal_uint8 alpha_id[MAX_PS_NAME_SIZE];
+} sat_mmi_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} sat_me_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 me_status;
+ kal_uint8 timing_advance;
+} sat_me_status_cnf_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+} sat_nmr_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mm_status;
+ kal_uint8 nmr[16];
+ kal_uint8 size_of_bcch;
+ kal_uint8 bcch[40];
+} sat_nmr_cnf_struct;
+
+/* MSG_ID_SAT_MEME_NMR_REQ / MSG_ID_SAT_EAS_NMR_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ sat_nmr_qual_enum nmr_qualifier; /* 01~04: 3G NMR, 05~08: 4G NMR. clause 8.73 in TS 31.111. */
+} sat_meme_nmr_req_struct, sat_eas_nmr_req_struct;
+
+/* MSG_ID_SAT_MEME_NMR_CNF / MSG_ID_SAT_EAS_NMR_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ sat_nmr_qual_enum nmr_qualifier; /* 01~04: 3G NMR, 05~08: 4G NMR. clause 8.73 in TS 31.111. */
+ kal_bool result; /* False if standby AS receives the NMR_REQ */
+ kal_uint8 nmr_obj_num; /* NMR frequence number */
+ kal_uint8 nmr_length[MAX_SAT_EUNMR_OBJ_NUM]; /* The length in byte of the NMR objects (with Guard Pattern) for nmr_obj_num frequencies */
+ /* The actual length is nmr_length[] - NMR_OBJ_GUARD_PATTERN_LENGTH */
+} sat_meme_nmr_cnf_struct, sat_eas_nmr_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} sat_language_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 language[2];
+} sat_language_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_status;
+} sat_call_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 connection_info; /* 0- Idle, 1- Connected */
+} sat_eval_connection_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 connection_info; /* 0- Idle, 1- Connected */
+} sat_mm_connection_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sat_pdp_status_enum pdp_status;
+} sat_pdp_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 connection_status; /* 0 - disconnected, 1 - connected */
+ kal_uint8 apn_name[64];
+} sat_apn_connection_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 session_status; /* 0 - dropped, 1 - established */
+} sat_dm_session_status_ind_struct;
+
+
+/* __SATCR__ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 state; /* contactless_functionality state*/
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_contactless_state_changed_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+} sat_contactless_state_changed_res_struct;
+
+
+/* __SATCL__ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 target; // "target" in activate descriptor
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd;
+} sat_activate_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+} sat_activate_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_setup_idle_dspl_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+} sat_setup_idle_dspl_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_at_command;
+ kal_uint8 *at_command;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class b */
+} sat_run_at_command_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 size_of_at_response;
+ kal_uint8 at_response[MAX_AT_RESPONESE_LEN]; //mtk02514_081216
+} sat_run_at_command_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 no_dtmf;
+ kal_uint8 *dtmf;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_send_dtmf_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 additional_info;
+} sat_send_dtmf_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_language_specified;
+ kal_uint8 iso639_language[2];
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* PH 03042005 For Remote SAT */
+} sat_lang_notify_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+} sat_lang_notify_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 browser_mode;
+ kal_uint8 browser_identity;
+ kal_uint8 provision_file_id[10];
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* mtk01488: 20080930 For Remote SAT */
+} sat_launch_browser_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 additional_res; /* MAUI_02888481 */
+} sat_launch_browser_res_struct;
+
+typedef struct {
+ kal_uint8 addr_length; /* Address Length*/
+ kal_uint8 addr_bcd[MAX_SIM_ADDR_BCD_LEN];
+} sim_addr_bcd_struct;
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ti;
+ kal_bool is_mt_call;
+} sat_evdl_call_connect_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ti;
+ kal_bool is_far_end;
+ //kal_bool cause_p;
+ //kal_uint8 cause;
+ kal_uint8 cause_len;
+ kal_uint8 cause[30];
+} sat_evdl_call_disconnect_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mm_status;
+ kal_uint8 location_info[SAT_MAX_LOC_INFO_LEN];
+} sat_evdl_location_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} sat_evdl_user_activity_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} sat_evdl_idle_screen_available_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 iso639_language[2];
+} sat_evdl_language_selection_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 card_reader_status;
+} sat_evdl_card_reader_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 browser_termination_cause;
+} sat_evdl_browser_termination_req_struct;
+
+/* MSG_ID_SAT_EVDL_IMS_REG_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+ kal_uint8 num_of_impu;
+ kal_uint8 status_code_len;
+ kal_uint8 status_code[4];
+} sat_evdl_ims_reg_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 channel_status[2];
+ kal_uint8 channel_data_length;
+} sat_evdl_data_available_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 channel_status[2];
+} sat_evdl_channel_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 bearer;
+ sat_gprs_bearer_para_struct gprs_bearer;
+ sat_csd_bearer_para_struct csd_bearer;
+ kal_uint16 buffer_size;
+ kal_uint8 size_of_address;
+ kal_uint8 addr[MAX_SIM_ADDR_BCD_LEN];
+ kal_uint8 size_of_subaddr;
+ kal_uint8 subaddr[MAX_SIM_ADDR_BCD_LEN];
+ kal_uint32 duration1;
+ kal_uint32 duration2;
+ kal_uint16 no_username;
+ kal_uint8 username[16];
+ kal_uint8 dcs_of_username;
+ kal_uint16 no_passwd;
+ kal_uint8 passwd[16];
+ kal_uint8 dcs_of_passwd;
+ kal_uint8 protocol_type; /* '01' UDP '02' TCP */
+ kal_uint16 port_num;
+ kal_int16 no_local_addr;
+ kal_uint8 local_addr[16];
+ kal_int16 no_dest_addr;
+ kal_uint8 dest_addr[16];
+ kal_uint8 dns[4];
+ kal_uint8 apn[50];
+ kal_uint8 apn_length;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_open_channel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_status[2];
+ kal_uint8 bearer;
+ sat_gprs_bearer_para_struct bearer_para;
+ kal_uint16 buffer_size;
+} sat_open_gprs_channel_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_status[2];
+ kal_uint8 bearer;
+ sat_csd_bearer_para_struct bearer_para;
+ kal_uint16 buffer_size;
+} sat_open_csd_channel_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_status[2];
+ kal_uint8 bearer;
+ kal_uint16 buffer_size;
+} sat_open_server_mode_channel_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_id; // sat_channel_id_enum
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_close_channel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+} sat_close_channel_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_id; //sat_channel_id_enum
+ kal_uint8 ch_type;
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 data_size;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_send_data_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_type;
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_data_length;
+} sat_send_data_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_id; //sat_channel_id_enum
+ kal_uint8 ch_type;
+ kal_bool is_icon_available;
+ sat_icon_struct icon_info;
+ kal_uint8 ch_data_length;
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_recv_data_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_type;
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 ch_data_length;
+} sat_recv_data_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 ch_id; /*mtk02374 20091230 for WISE BIP*/
+
+ kal_uint16 cmd_id;
+ sat_procomm_struct proactive_cmd; /* mtk02374 20081224 RSAT Class e */
+} sat_ch_status_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_detail[5];
+ kal_uint8 res;
+ kal_uint8 cause;
+ kal_uint8 channel_status[2];
+} sat_ch_status_res_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} sim_imei_lock_verified_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ cusats_uicc_state_enum uicc_state;
+}sat_uicc_state_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 mode;
+} sat_profile_activate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool result;
+} sat_profile_activate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_profile_storage_enum st;
+ kal_bool reset;
+} sat_profile_write_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_profile_storage_enum st;
+ kal_bool result;
+} sat_profile_write_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 utk_enabled;
+} sat_utk_enabled_update_req_struct;
+
+/* MSG_ID_SAT_SET_CT_MODE_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ct_mode;
+} sat_set_ct_mode_req_struct;
+
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint16 status_word;
+} sat_terminal_rsp_res_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_refresh_possible;
+} sat_refresh_voting_res_struct;
+#endif
+
+#ifdef __TC10__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sat_refresh_notification_enum refresh_status;
+ sat_refresh_type_enum refresh_type;
+ sat_refresh_init_app_enum init_app_list;
+} sat_refresh_noti_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sat_refresh_type_enum refresh_type;
+} sat_refresh_voting_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sat_call_ctrl_type_noti_enum old_call_type;
+ sat_call_ctrl_type_noti_enum call_type;
+ sat_call_ctrl_result_noti_enum control_result;
+ kal_uint8 alpha_id_present;
+ kal_uint8 alpha_id_len;
+ kal_uint8 alpha_id[64];
+ kal_uint8 call_id;
+ kal_uint8 address1_len;
+ kal_uint8 address1[41];
+ kal_uint8 address2_len;
+ kal_uint8 address2[41];
+ kal_uint8 ss_string_len;
+ kal_uint8 ss_string[255];
+ kal_uint8 ussd_string_len;
+ kal_uint8 ussd_string[183];
+ kal_uint8 bc_repeat_ind;
+ kal_uint8 subaddr_len;
+ kal_uint8 subaddr[41];
+ kal_uint8 ccp1_len;
+ kal_uint8 ccp1[15];
+ kal_uint8 ccp2_len;
+ kal_uint8 ccp2[15];
+} sat_call_ctrl_result_noti_ind_struct;
+#endif /* __TC10__ */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rat;
+ kal_uint8 plmn_id[3]; /* plmn_id[0]:= (mcc2|mcc1); plmn_id[1]:=(mnc3|mcc3); plmn_id[2]:=(mnc2|mnc1); */
+} sat_plmn_info_ind_struct;
+
+/* MSG_ID_SAT_RAT_SELECT_IND */
+// Need to be sync-ed with rac_gmss_rat_select_ind_struct
+typedef struct {
+ LOCAL_PARA_HDR
+ gmss_rat_enum gmss_rat;
+ plmn_id_struct loc; /* Only MCC is valid */
+ gmss_selected_rat_status_enum status;
+ kal_bool is_ehrpd; /* Indicate if PS type is EHRPD if current RAT is HRPD */
+} sat_rat_select_ind_struct;
+
+/* shall be identical to gmss_nwsel_* */
+typedef struct {
+ LOCAL_PARA_HDR
+ susp_resu_action_enum action;
+ susp_resu_result_enum result;
+ susp_resu_source_enum target;
+} nwsel_sat_susp_resu_update_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ susp_resu_mode_enum mode;
+ susp_resu_action_enum action;
+ kal_uint8 susp_id;
+ susp_resu_source_enum source;
+} nwsel_sat_susp_resu_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 susp_id;
+ susp_resu_source_enum target;
+} nwsel_sat_suspend_status_ind_struct;
+
+typedef struct
+{
+ kal_bool vsim_ki_enabled; /* VSIM ki enable*/
+ kal_uint8 vsim_asym_key_idx; /* 0-based index, assymetric key index for Ki protection */
+ kal_uint8 sim_auth_algo; /* 0: COMP128v2v3, 1:XOR, only works when ki_enabled == KAL_FALSE*/
+ kal_uint8 usim_auth_algo; /* 0: MILENAGE, only works when ki_enabled == KAL_FALSE */
+ uicc_card_type_enum vsim_type; /* uicc_card_type_enum, 0: Not init, 1:SIM, 2:USIM for now */
+ kal_uint16 auth_res_len;
+ kal_uint8 auth_res[256];
+ kal_uint16 enc_ki_len;
+ kal_uint8 enc_ki[256]; /* Ki(16Bytes), enc_ki(256Bytes) */
+} vsim_profile_struct;
+
+/* MSG_ID_SIM_SET_REGISTRATION_MODE_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool registration_mode;
+} sim_set_registration_mode_req_struct;
+
+extern const usim_ef_info_struct usim_ef_info[UICC_TOTAL_FILES];
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 key_pool_size; //number of generated key (1,2,3...)
+} keygen_sim_ready_ind_struct;
+
+typedef struct
+{
+ kal_uint8 path[6];
+} c2k_file_path_struct;
+
+/* MSG_ID_SAT_MSISDN_INFO_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 msisdn_size; /* include TON */
+ kal_uint8 msisdn[MAX_CC_ADDR_BCD_LEN]; /* BCD format(include TON), example 15613331095, msisdn[0]= 0x91, msisdn[1] = 0x51, msisdn[2] = 0x16 ¡K msisdn[6] = 0xf5*/
+} sat_msisdn_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool is_roaming;
+} sim_roaming_state_ind_struct, gmss_sim_roaming_state_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat_mode; //AT+ERAT setting
+ rat_enum reported_rat; //actual rat mode the phone use
+} sat_set_rat_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+ kal_bool is_dual_mode_sim;
+} sat_set_rat_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_cdma;
+} nas_sv_sim_cs_stk_domain_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cdma_capability; //AT+ERAT setting
+} sat_l4bsim_set_rat_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 sat_rule;
+} sat_l4bsat_set_sat_rule_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mcc[4];
+ kal_uint8 mnc[4];
+ kal_bool is_valid_gid1;
+ kal_uint8 gid1[NUM_GID1];
+ kal_bool is_valid_gid2;
+ kal_uint8 gid2[NUM_GID2];
+ kal_bool is_valid_spn;
+ kal_uint8 spn[LEN_OF_SPN];
+ kal_uint8 iccid[21];
+ kal_uint8 trans_id; /* Used by DSBP_RECONFIG's users. Use 1~255 in order for each SIM task. */
+} sim_l4bsbp_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mcc[4];
+ kal_uint8 mnc[4];
+} sim_iwlan_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 iccid[10];
+} sim_iccid_ready_ind_struct;
+
+/* <sim_duplex_op>:
+ 0: Reset SIM parameters
+ 1: Set SIM parameters */
+typedef struct{
+ LOCAL_PARA_HDR
+ duplex_mode_change_action_enum sim_duplex_op;
+}sim_duplex_mode_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ //kal_uint8 lock_mode; // phased out
+ kal_uint8 sim_power_mode; // 0: plug out 1: plug in
+ kal_bool sim_handle_plug_in; // 0: don't handle plug in event, 1: handle plug in event
+} sim_op20_ap_simlock_req_struct, sim_ap_simpower_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+} sim_ap_simpower_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ duplex_mode_change_action_enum action;
+} sim_mm_configure_as_for_duplex_mode_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ duplex_mode_change_action_enum action;
+} sim_gmss_configure_as_for_duplex_mode_change_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ module_type orig_src_mod_id;
+ sap_type orig_sap_id;
+ msg_type orig_msg_id;
+ local_para_struct *orig_local_para_ptr;
+ void *redirect_info;
+} sim_msg_redirect_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 cmd_len;
+ kal_uint8 proactive_cmd[256];
+} sat_inject_proactive_cmd_ind_struct;
+
+/* This struct is for the object in application ready peer buffer
+ I. There is no EF object if the SIM module didn't try to access the EF.
+ II. If SIM module select the EF fail, the is_exist will be FALSE
+ III. If SIM module only select the EF without reading it, the data_len will be 0.
+ IV. If the EF data in the object, the data_len will NOT be 0. */
+typedef struct {
+ kal_uint8 tag;
+ kal_uint8 curr_rec_id; /* The current read record index in data */
+ kal_uint8 total_rec_num; /* The total record number of EF, transparent EF is 1 */
+ sim_file_index_enum file_idx;
+ kal_bool is_exist; /* The EF is exist or not */
+ sim_file_structure_enum file_type;
+ kal_uint16 rec_size; /* For tranparent EF, the rec_size is the same as file size */
+ kal_uint16 object_len; /* the toal size of object,
+ including of this structure length, data len and padding length */
+ kal_uint16 data_len; /* The data length was carried in data array */
+ kal_uint8 data[0];
+} sim_app_ready_ef_object_struct;
+#ifndef __SIM_ACCESS_INTEGRATION__
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 channel_id;
+ kal_uint16 req_len;
+ kal_uint8 src_id;
+ /* For error handling, MOD_SIM appends Le to C-APDU, Allocate 1 more byte in peer buffer for it*/
+} sim_extended_apdu_access_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 result;
+ kal_uint16 rsp_len;
+ kal_uint8 src_id;
+} sim_extended_apdu_access_cnf_struct;
+#endif
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mcc[MAX_SIM_MCC_MNC_LEN+1];
+ kal_uint8 mnc[MAX_SIM_MCC_MNC_LEN+1];
+ kal_uint8 msin[MAX_SIM_MSIN_LEN+1];
+} sim_fake_id_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_dual_mode;
+ uicc_app_type_enum app_type;
+ kal_uint8 mcc[4]; /* ASCII string */
+ kal_uint8 mnc[4]; /* ASCII string */
+ kal_uint8 gid1_length;
+ kal_uint8 gid1[NUM_GID1]; /* raw data from card */
+ kal_uint8 gid2_length;
+ kal_uint8 gid2[NUM_GID2]; /* raw data from card */
+ kal_bool is_valid_spn;
+ kal_uint8 spn[35]; /* raw data from card, GSM will be 17 bytes and C2K will be 35 bytes */
+ kal_uint8 pnn_fname_length;
+ kal_uint8 pnn_fname[50]; /* raw data from card, the PNN record#1 full name */
+ kal_uint8 imsi[17]; /* ASCII string */
+ kal_uint8 iccid[10]; /* raw data from card */
+} sim_ddm_ready_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_dual_mode;
+ uicc_app_type_enum app_type;
+ kal_uint8 mcc[4]; /* ASCII string */
+ kal_uint8 mnc[4]; /* ASCII string */
+ kal_uint8 gid1_length;
+ kal_uint8 gid1[NUM_GID1]; /* raw data from card */
+ kal_uint8 gid2_length;
+ kal_uint8 gid2[NUM_GID2]; /* raw data from card */
+ kal_bool is_valid_spn;
+ kal_uint8 spn[35]; /* raw data from card, GSM will be 17 bytes and C2K will be 35 bytes */
+ kal_uint8 pnn_fname_length;
+ kal_uint8 pnn_fname[50]; /* raw data from card, the PNN record#1 full name */
+ kal_uint8 imsi[17]; /* ASCII string */
+ kal_uint8 iccid[10]; /* raw data from card */
+ kal_uint8 no_msisdn; // MSISDN
+ sim_addr_struct msisdn[2];
+} sim_l5usim_ready_ind_struct;
+
+
+#ifdef __TC01__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cmd_type;
+ kal_bool result;
+} sat_ebip_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 *buffer;
+ kal_uint8 buffer_len;
+} simdrv_debug_buffer_ind_struct;
+
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_ecc_session;
+} l4c_sim_ecc_session_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ef_imsi[9];
+}sim_vgsm_ready_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 slot_id;
+ kal_uint8 atr[ATR_MAX_LEN];
+ kal_uint8 atr_len;
+ kal_bool is_valid_eid;
+ kal_uint8 eid[LEN_OF_EID];
+ kal_uint8 iccid[10];
+ kal_uint8 plug_state;
+}l4bsim_eslotsinfo_data_ind_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_nw_message;
+ sat_data_connection_status_enum data_connection_status;
+ sat_data_connection_type_enum data_connection_type;
+ kal_bool xsm_isvalid;
+ kal_uint8 xsm_cause;
+ kal_uint8 ti;
+ sat_pdp_pdn_pdu_type_enum pdp_type;
+} sat_evdl_data_connect_ind_struct;
+
+#endif
+
diff --git a/mcu/interface/protocol/general/sim_public_api.h b/mcu/interface/protocol/general/sim_public_api.h
new file mode 100644
index 0000000..59db428
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_public_api.h
@@ -0,0 +1,586 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * Copyright Statement:
+ * --------------------
+ * This software is protected by Copyright and the information contained
+ * herein is confidential. The software may not be copied and the information
+ * contained herein may not be used or disclosed except with the written
+ * permission of MediaTek Inc. (C) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * sim_public_api.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * API provided by SIM task and outside-PS task uses also
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef SIM_PUBLIC_API_H
+#define SIM_PUBLIC_API_H
+
+#include "kal_general_types.h"
+#include "sim_public_enum.h"
+#include "sim_ps_enum.h"
+#ifdef __SIM_MULTI_PIN__
+#include "ps_public_struct.h"
+#endif
+
+/*******************************************************************************/
+/* Merge sim_ps_api.h */
+#if defined (__GEMINI__)
+kal_bool is_usim_type(sim_interface_enum ps_id);
+#else
+kal_bool is_usim_type(void);
+#endif
+kal_bool is_usim_type_by_ps_id(protocol_id_enum ps_id);
+
+kal_uint8 sim_query_mnc_num(sim_interface_enum simInterface);
+
+#if defined (__GEMINI__)
+usim_acl_type_enum usim_query_acl_type(sim_interface_enum ps_id);
+#else
+usim_acl_type_enum usim_query_acl_type(void);
+#endif
+usim_acl_type_enum usim_query_acl_type_by_ps_id(protocol_id_enum ps_id);
+
+uicc_app_type_enum sim_application_id_query(sim_interface_enum simInterface, usim_logic_channel_enum channel);
+
+sim_dn_enum sim_dn_type_query(sim_interface_enum simInterface);
+
+#if defined (__GEMINI__)
+kal_bool is_vsim_on(kal_uint8 simInterface);
+#else
+kal_bool is_vsim_on(void);
+#endif
+kal_bool is_vsim_on_by_ps_id(protocol_id_enum ps_id);
+
+kal_uint8 sim_read_vsim_profileid(kal_uint8 simInterface);
+
+kal_uint8 sim_read_vsim_type(kal_uint8 simInterface, kal_uint8 profile_id);
+
+kal_uint8 sim_read_vsim_auth_algo(kal_uint8 simInterface, kal_uint8 profile_id);
+
+void sim_read_vsim_auth_res(kal_uint8 simInterface, kal_uint8 profile_id, kal_uint16 *auth_len, kal_uint8 *auth_res);
+
+vsim_ver_type_enum sim_read_vsim_ver(kal_uint8 simInterface);
+#ifdef __GEMINI__
+kal_uint8 *get_sim_context_g_sat_event_list(kal_uint8 simInterface);
+#else
+kal_uint8 *get_sim_context_g_sat_event_list(void);
+#endif
+
+void deactivate_fetch(sim_interface_enum simInterface);
+void activate_fetch(sim_interface_enum simInterface);
+
+extern void sim_get_full_path(sim_file_index_enum file_index, kal_uint8 *full_path);
+/*******************************************************************************/
+
+
+
+kal_bool is_sim1_test_sim(void);
+
+#if defined( __GEMINI__)
+kal_bool is_test_sim(kal_uint8 simInterface);
+#else
+kal_bool is_test_sim(void);
+#endif
+kal_bool is_test_sim_by_ps_id(protocol_id_enum ps_id);
+
+
+usim_logic_channel_enum l4c_sim_get_app_channel_id(kal_uint8 simInterface, kal_uint8 applicationid);
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+sim_ecall_mode_enum sim_ecall_mode_query(sim_interface_enum simInterface);
+kal_bool sim_set_ecall_test_mode(sim_interface_enum simInterface,sim_ecall_mode_enum mode);
+#endif
+#ifdef __NG_ECALL_SUPPORT__
+sim_ecall_mode_enum sim_ecall_mode_ims_query(sim_interface_enum simInterface);
+#endif
+#if defined( __GEMINI__)
+sim_type_query_enum sim_query_type(sim_interface_enum which_sim);
+#else
+sim_type_query_enum sim_query_type(void);
+#endif
+sim_type_query_enum sim_query_type_by_ps_id(protocol_id_enum ps_id);
+
+#if defined( __GEMINI__)
+sim_service_state_enum sim_service_table_query(sim_service_enum service_id, kal_uint8 ps_id);
+#else
+sim_service_state_enum sim_service_table_query(sim_service_enum service_id);
+#endif
+sim_service_state_enum sim_service_table_query_by_ps_id(sim_service_enum service_id, protocol_id_enum ps_id);
+
+#if defined(__GEMINI__)
+sim_card_status_enum check_sim_card_status(kal_uint8 simInterface);
+#else
+sim_card_status_enum check_sim_card_status(void);
+#endif
+
+#if defined(__ICUSB_SUPPORT__) && defined(__MTK_TARGET__)
+extern void sim_icusb_error_ind_call_back(kal_uint32 which_sim);
+#endif
+
+extern kal_bool is_sim_registered(kal_uint8 simInterface);
+
+extern kal_uint8 sim_get_cdma_info(kal_uint8 sim_indx);
+
+extern kal_bool sim_get_3GCT_card_info(kal_uint8 sim_indx);
+
+extern kal_bool is_op20_imei_lock(kal_uint8 sim_indx);
+
+extern kal_uint8 is_isim_exist(kal_uint8 sim_indx);
+
+#ifdef __SAT__
+kal_bool sat_set_profile_download_config(sat_profile_download_enum dl_setting, protocol_id_enum sim_ps_id);
+sat_profile_download_enum sat_get_profile_download_config(protocol_id_enum sim_ps_id);
+
+kal_bool sat_set_profile_activate_config(sat_profile_activate_enum act_setting, protocol_id_enum sim_ps_id);
+
+sat_profile_activate_enum sat_get_profile_activate_config(protocol_id_enum sim_ps_id);
+
+#endif
+
+extern void usim_get_ust(kal_uint8* ust, kal_uint8 *ust_len, kal_uint8 sim_ps_id);
+
+extern kal_uint8 sim_query_L1_SIM_insert_status(void);
+
+extern kal_uint8 get_uicc_type_from_channel_id(kal_uint8 simInterface, kal_uint8 channel_id);
+
+extern void l4c_usim_get_aid_info_by_channel(kal_uint8 simInterface, kal_uint8 applicationid, kal_uint8 *channel_id, kal_uint8* aid, kal_uint8 *aid_len, kal_uint8 *app_label, kal_uint8 *app_label_len);
+
+extern kal_bool usim_is_uicc_app_exist(kal_uint8 sim_indx, kal_uint8 app_id);
+
+/*******************************************************************************/
+
+/* Add new functions */
+
+/* Check whether SIM slot has card, including CT3G, UIM, recovery */
+/* Workaround for CT3G recovery */
+extern kal_bool sim_is_card_in_slot(kal_uint8 sim_ps_id);
+
+/*
+READ BINARY/RECORD from SIM file cache
+Currently only support:
+ Default channel
+ Valid file_idx
+ SFI not used
+*/
+kal_bool sim_read_file_cache(kal_uint8 sim_ps_id,
+ sim_file_index_enum file_idx,
+ kal_uint32 cmd, // smu_common_enums.h - (smu_sim_access_cmd_enum) READ_BINARY or READ_RECORD
+ kal_uint16 fileid,
+ kal_uint8 *pathid,
+ kal_uint8 pathid_length,
+ kal_uint8 p1,
+ kal_uint8 p2,
+ kal_uint8 p3,
+ kal_uint8 channel_id,
+ kal_uint8 sfi,
+ kal_uint8 *res_data);
+
+
+/* Pass ICCID stored in SIM context */
+void sim_get_iccid(kal_uint8 sim_ps_id, kal_uint8 *iccid);
+
+/*******************************************************************************/
+
+#if defined (__GEMINI__)
+kal_bool is_apvsim_on(kal_uint8 simInterface);
+#else
+kal_bool is_apvsim_on(void);
+#endif
+
+kal_bool sim_is_any_hotswap_poll_timer_start(void);
+
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_query_atr_info
+ * DESCRIPTION
+ * To query ATR info
+ * PARAMETERS
+ * length [OUT] ATR length
+ * atr [OUT] ATR value(Hex)
+ * ps_id [IN] which SIM
+ * RETURNS
+ * KAL_TRUE SIM exist
+ * KAL_FALSE SIM absent
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_query_atr_info(kal_uint8 *length, kal_uint8 *atr, protocol_id_enum ps_id);
+
+/*****************************************************************************
+* FUNCTION
+* sim_ps_data_off_exempt_query_by_ps_id
+* DESCRIPTION
+* Check if the service is 3GPP PS Data Off Exempt
+* PARAMETERS
+* exempt_id [IN] service to be queried
+* this_sim
+* RETURNS
+* Boolean
+* GLOBALS AFFECTED
+* None
+*****************************************************************************/
+sim_ps_data_off_exempt_state_enum sim_ps_data_off_exempt_query_by_ps_id(sim_ps_data_off_exempt_enum exempt_id, protocol_id_enum ps_id);
+
+extern kal_bool sim_get_if_immediate_auth_needed(kal_uint8 sim_ps_id);
+extern void sim_set_immediate_auth_flag(kal_uint8 sim_ps_id);
+
+/*****************************************************************************
+* FUNCTION
+* sim_check_curr_disable_by_ps
+* DESCRIPTION
+* To query the current ps sim state is disable or enable
+* PARAMETERS
+* sim_ps_id [IN] protocol id
+* RETURNS
+* Boolean Disable state
+* GLOBALS AFFECTED
+* None
+*****************************************************************************/
+extern kal_bool sim_check_curr_disable_by_ps(kal_uint8 sim_ps_id);
+
+/*****************************************************************************
+* FUNCTION
+* sim_check_curr_disable_card_exist_by_ps
+* DESCRIPTION
+* To query the current ps sim state is disable or enable
+* PARAMETERS
+* sim_ps_id [IN] protocol id
+* RETURNS
+* Boolean Disable state and the card in slot
+*****************************************************************************/
+extern kal_bool sim_check_curr_disable_card_exist_by_ps (kal_uint8 sim_ps_id);
+
+/*****************************************************************************
+* FUNCTION
+* sim_get_file_idx_from_path
+* DESCRIPTION
+* To get the sim file index from file path.
+* PARAMETERS
+* path [IN] the array carry the file id path
+* path_len [IN] the valid path length
+* app_type [IN] the file is belong to which application (ADF)
+* RETURNS
+* sim file index
+* GLOBALS AFFECTED
+* None
+*****************************************************************************/
+kal_uint32 sim_get_file_idx_from_path (const kal_uint8 *path, kal_uint16 path_len, uicc_app_type_enum app_type);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_file_meta_cache_by_ps
+ * DESCRIPTION
+ * This function is to get the meta info of FCP data in sim context cache
+ * PARAMETERS
+ * sim_ps_id [IN] which PS to be check
+ * file_idx [IN] which file to be check
+ * file_exist [OUT] the file exist or not
+ * file_type [OUT] the file type. TRANSPARENT or RECORD type
+ * file_size [OUT] the file size for TRANSPARNET file/ the record size for RECORD file
+ * total_rec_num [OUT] total number of records.
+ * RETURNS
+ * Boolean FALSE means the file to be checked is not in sim context cache.
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_get_file_meta_cache_by_ps(kal_uint8 sim_ps_id,
+ sim_file_index_enum file_idx,
+ kal_bool *file_exist,
+ sim_file_structure_enum *file_type,
+ kal_uint16 *file_size,
+ kal_uint16 *total_rec_num);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_cached_file_size_by_ps
+ * DESCRIPTION
+ * Query SIM cached data profile by file index
+ * PARAMETERS
+ * sim_ps_id [IN] which PS to be check
+ * file_idx [IN] which file to be check
+ * cached_rec_num [OUT] the number of record cached
+ * cached_rec_size [OUT] the cached record size
+ * RETURNS
+ * KAL_TRUE The file in cache
+ * KAL_FALSE The file not in cache
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_get_cached_file_size_by_ps (kal_uint8 sim_ps_id,
+ sim_file_index_enum file_idx,
+ kal_uint8 *cached_rec_num,
+ kal_uint16 *cached_rec_size);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_cached_file_data_by_ps
+ * DESCRIPTION
+ * Get the SIM cached data by file index
+ * PARAMETERS
+ * sim_ps_id [IN] which PS to be check
+ * file_idx [IN] which file to be check
+ * cmd [IN] read command, READ_RECORD or READ_BINARY
+ * rec_id [IN] the 1-based record id to be read.
+ * res_buffer_size [IN] the size of the respose buffer, res_data
+ * res_data [OUT] the response buffer
+ * RETURNS
+ * The length of data in res_data buffer
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_uint16 sim_get_cached_file_data_by_ps (kal_uint8 sim_ps_id,
+ sim_file_index_enum file_idx,
+ kal_uint8 rec_id,
+ kal_uint16 res_buffer_size,
+ kal_uint8 *res_data);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_query_operator_card
+ * DESCRIPTION
+ * Query the operator name based on ICCID/EHPLMN/IMSI in SIM context
+ * PARAMETERS
+ * ps_id [IN] which PS to be query
+ * RETURNS
+ * operator name
+ *****************************************************************************/
+sim_operator_type_enum sim_query_operator_card(protocol_id_enum ps_id);
+
+/*****************************************************************************
+ * FUNCTION
+ * is_extended_length_fields_support
+ * DESCRIPTION
+ * This function is to check if card supports extended length fields
+ * PARAMETERS
+ * ps_id [IN] which PS to be query
+ * RETURNS
+ * KAL_TRUE extended length fields supported
+ * KAL_FALSE extended length fields not supported
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool is_extended_length_fields_support(protocol_id_enum ps_id);
+
+#ifdef __FAKEID_SUPPORT__
+/*****************************************************************************
+ * FUNCTION
+ * sim_is_fake_imsi_by_ps_id
+ * DESCRIPTION
+ * This function is to check if the current protocol is using fake IMSI
+ * Caller should use this API after SIM ready
+ * PARAMETERS
+ * protocol_id_enum ps_id [?]
+ * RETURNS
+ * KAL_TRUE fake IMSI used
+ * KAL_FALSE fake IMSI not used
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+extern kal_bool sim_is_fake_imsi_by_ps_id(protocol_id_enum ps_id);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_fake_imsi
+ * DESCRIPTION
+ * This function is to get the fake IMSI set by the tester
+ * Caller should use this API after SIM ready
+ * Caller should allocate the MAX_SIM_IMSI_LEN memory for imsi_p
+ * PARAMETERS
+ * kal_uint8 sim_ps_id [IN]
+ * RETURNS
+ * imsi_p fake IMSI
+ * mnc_length_p MNC length of fake IMSI
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+extern void sim_get_fake_imsi(protocol_id_enum sim_ps_id, kal_uint8 *imsi_p, kal_uint8 *mnc_length_p);
+
+#endif
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_is_euicc
+ * DESCRIPTION
+ * To check the present card is eUICC.
+ * PARAMETERS
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * KAL_TRUE SIM is eUICC
+ * KAL_FALSE SIM is not eUICC
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_is_euicc(protocol_id_enum ps_id);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_is_empty_euicc
+ * DESCRIPTION
+ * To check the present card is empty eUICC.
+ * PARAMETERS
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * KAL_TRUE SIM is empty eUICC
+ * KAL_FALSE SIM is not empty eUICC
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_is_empty_euicc(protocol_id_enum ps_id);
+
+/*****************************************************************************
+ * FUNCTION
+ * sim_query_eid
+ * DESCRIPTION
+ * To query EID
+ * PARAMETERS
+ * eid [OUT] EID value(Hex)
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * KAL_TRUE SIM exist and EID retrieved
+ * KAL_FALSE SIM absent or EID not retrieved
+ * GLOBALS AFFECTED
+ * void
+ *****************************************************************************/
+kal_bool sim_query_eid(kal_uint8 *eid, protocol_id_enum ps_id);
+
+#ifdef __SIM_MULTI_PIN__
+/*****************************************************************************
+ * FUNCTION
+ * sim_get_app_pin_remaining_count_by_ps_id
+ * DESCRIPTION
+ *
+ * PARAMETERS
+ * RETURNS
+ * KAL_TRUE
+ * KAL_FALSE
+ *****************************************************************************/
+kal_bool sim_get_app_pin_remaining_count_by_ps_id(uicc_app_type_enum app_type, sim_chv_info_struct *chv_info, protocol_id_enum ps_id);
+#endif
+/*****************************************************************************
+* FUNCTION
+* sim_get_imsi_null_suci_by_ps
+* DESCRIPTION
+* Get the SUCI with Null Scheme by protocol stack.
+* PARAMETERS
+* sim_ps_id [IN] which PS to be check
+* res_len [IN/OUT] the size of suci_ptr buffer and the data length in suci_ptr for return
+* suci_ptr [OUT] array buffer to carry response data
+* RETURNS
+* Result of process the command
+*****************************************************************************/
+kal_bool sim_get_imsi_null_suci_by_ps (kal_uint8 sim_ps_id, kal_uint16 *res_len, kal_uint8 *suci_ptr);
+
+/*****************************************************************************
+* FUNCTION
+* usim_get_sfi_from_fcp
+* DESCRIPTION
+* Get the SFI (short file id) from FCP.
+* Support of SFI for a specific file is indicated if the FCP of the file contains a
+* TLV DO with tag '88'. If the length is 0 it indicates that the file does not support
+* referencing by SFI. If the TLV DO is not present in the FCP it indicates that the
+* 5 least significant bits of the FID are used as SFI.
+* PARAMETERS
+* fcp [IN] fcp data to be checked
+* fcp_len [IN] the length of whole fcp data
+* RETURNS
+* SFI. 0 means no SFI found
+*****************************************************************************/
+kal_uint8 usim_get_sfi_from_fcp (kal_uint8 *fcp, kal_uint16 fcp_len);
+
+#ifdef __TC10__
+extern void sim_get_last_commnad_APDU(kal_uint8 simInterface, kal_uint8 *command_header_p);
+extern sim_dss_state_enum sim_get_dss_state(protocol_id_enum ps_id); /*ALPS03779598*/
+/*****************************************************************************
+ * FUNCTION
+ * sim_check_hplmnwact_3g_only
+ * DESCRIPTION
+ * To query E-UTRAN bit available from EF_HPLMNwAcT.
+ * PARAMETERS
+ * ps_id [IN] Protocol ID
+ * RETURNS
+ * KAL_TRUE VzW 3G USIM not supported condition match, i.e. no E-UTRAN in HPLMNwAcT
+ *****************************************************************************/
+kal_bool sim_check_hplmnwact_3g_only(protocol_id_enum ps_id);
+extern kal_bool sim_query_vzpf(kal_uint8 *vzpf, protocol_id_enum ps_id);
+#endif
+
+extern kal_bool sim_query_gid1(kal_uint8 *gid1, protocol_id_enum ps_id);
+extern kal_bool sim_query_gid2(kal_uint8 *gid2, protocol_id_enum ps_id);
+
+
+extern kal_uint8 sim_query_voltage_info(protocol_id_enum ps_id);
+extern kal_uint8 sim_query_tray_info(protocol_id_enum ps_id);
+
+extern kal_bool sim_check_operator_card(sim_operator_type_enum operator_type, kal_uint8 sim_indx);
+extern kal_bool sim_check_operator_card_by_iccid(sim_operator_type_enum operator_type, kal_uint8 sim_indx);
+extern sim_op01_enum sim_query_op_mode(kal_uint8 ps_id);
+#ifdef __TC10_JPN_FACTORY__
+extern void sim_set_factory_mode(kal_bool is_factory);
+#endif
+#ifdef __SIM_TERMINAL_CAP__
+void sim_get_host_terminal_capabilities_by_ps_id(kal_uint16 tc_data_len, kal_uint8 *tc_data_ptr, protocol_id_enum ps_id);
+#endif
+#ifdef __SIM_PASS_THROUGH__
+/*****************************************************************************
+* FUNCTION
+* sim_get_esimpower_state_by_ps_id
+* DESCRIPTION
+* To query the current esimpower state ps sim
+* PARAMETERS
+* sim_ps_id [IN] protocol id
+* RETURNS
+* ESIMPOWER state
+*****************************************************************************/
+sim_esimpower_state_enum sim_get_esimpower_state_by_ps_id(protocol_id_enum ps_id);
+#endif
+#endif
diff --git a/mcu/interface/protocol/general/sim_public_enum.h b/mcu/interface/protocol/general/sim_public_enum.h
new file mode 100644
index 0000000..0736f23
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_public_enum.h
@@ -0,0 +1,817 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * Copyright Statement:
+ * --------------------
+ * This software is protected by Copyright and the information contained
+ * herein is confidential. The software may not be copied and the information
+ * contained herein may not be used or disclosed except with the written
+ * permission of MediaTek Inc. (C) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * sim_public_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Enum and Constant provided by SIM task and outside-PS task uses also
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+#ifndef SIM_PUBLIC_ENUM_H
+#define SIM_PUBLIC_ENUM_H
+
+#include "global_def.h"
+#include "sim_public_enum_public.h"
+#include "sim_exported_enum.h"
+
+/******************* MMDC START *******************/
+typedef enum
+{
+ SIM_ACCESS_EXTERNAL_READ_BINARY,
+ SIM_ACCESS_EXTERNAL_READ_RECORD,
+ SIM_ACCESS_EXTERNAL_UPDATE_BINARY,
+ SIM_ACCESS_EXTERNAL_UPDATE_RECORD,
+ SIM_ACCESS_EXTERNAL_FILE_INFO,
+ SIM_ACCESS_EXTERNAL_AUTHENTICATION
+}sim_access_extmd_op_enum;
+
+typedef enum
+{
+ SIM_NOTIFY_INITIALIZATION,
+ SIM_RESPONSE_ACCESS,
+ SIM_NOTIFY_CARD_STATUS,
+ SIM_NOTIFY_CARD_TYPE,
+ SIM_NOTIFY_FILE_CHANGE
+}sim_extmd_notify_enum;
+
+/******************* MMDC END *******************/
+typedef enum
+{
+ SERVICE_CHV_DISABLE_FUNCTION=1,
+ SERVICE_ADN,
+ SERVICE_FDN,
+ SERVICE_SMS,
+ SERVICE_AOC,
+ SERVICE_CCP,
+ SERVICE_PLMNSEL,
+ SERVICE_RFU1,
+ SERVICE_MSISDN,
+ SERVICE_EXT1,
+ SERVICE_EXT2,
+ SERVICE_SMSP,
+ SERVICE_LND,
+ SERVICE_CBMI,
+ SERVICE_GID1,
+ SERVICE_GID2,
+ SERVICE_SPN,
+ SERVICE_SDN,
+ SERVICE_EXT3,
+ SERVICE_RFU2,
+ SERVICE_VGCS,
+ SERVICE_VBS,
+ SERVICE_EMLPP,
+ SERVICE_AAEM,
+ SERVICE_DATA_DOWNLOAD_SMS_CB,
+ SERVICE_DATA_DOWNLOAD_SMS_PP,
+ SERVICE_MENU_SELECTION,
+ SERVICE_CALL_CONTROL,
+ SERVICE_PROACTIVE_SIM,
+ SERVICE_CBMIR,
+ SERVICE_BDN,
+ SERVICE_EXT4,
+ SERVICE_DCK,
+ SERVICE_CNL,
+ SERVICE_SMSR,
+ SERVICE_NW_IND_ALERT,
+ SERVICE_MO_SMS,
+ SERVICE_GPRS,
+ SERVICE_IMAGE,
+ SERVICE_SOLSA,
+ SERVICE_USSD,
+ SERVICE_RUN_AT_CMD,
+ SERVICE_PLMNWACT,
+ SERVICE_OPLMNWACT,
+ SERVICE_HPLMNWACT,
+ SERVICE_CPBCCH,
+ SERVICE_INVSCAN,
+ SERVICE_ECCP,
+ SERVICE_MEXE,
+ SERVICE_RFU,
+ SERVICE_PLMN_NAME,
+ SERVICE_OPLMN_LIST,
+ SERVICE_MAILBOX_DIAL_NUM,
+ SERVICE_MSG_WAIT_IND,
+ SERVICE_CALL_FWD_IND,
+ SERVICE_SP_DSPL_INFO,
+ SERVICE_MMS,
+ SERVICE_EXT8,
+ SERVICE_MMS_UCP,
+ SERVICE_EMPTY, /* 60 */
+ SERVICE_CSP,
+ SERVICE_SST,
+ SERVICE_MAILBOX_NUM,
+ SERVICE_OPNAME_SHORTFORM,
+ SERVICE_INFO_NUM,
+ SERVICE_END,
+ SERVICE_U_LOCAL_PHB, // 1
+ SERVICE_U_FDN,
+ SERVICE_U_EXT2,
+ SERVICE_U_SDN,
+ SERVICE_U_EXT3,
+ SERVICE_U_BDN,
+ SERVICE_U_EXT4,
+ SERVICE_U_OCI_OCT,
+ SERVICE_U_ICI_ICT,
+ SERVICE_U_SMS, // 10
+ SERVICE_U_SMSR,
+ SERVICE_U_SMSP,
+ SERVICE_U_AOC,
+ SERVICE_U_CCP,
+ SERVICE_U_CBMI,
+ SERVICE_U_CBMIR,
+ SERVICE_U_GID1,
+ SERVICE_U_GID2,
+ SERVICE_U_SPN,
+ SERVICE_U_PLMNWACT, // 20
+ SERVICE_U_MSISDN,
+ SERVICE_U_IMG,
+ SERVICE_U_SOLSA,
+ SERVICE_U_EMLPP,
+ SERVICE_U_AAEM,
+ SERVICE_U_RFU,
+ SERVICE_U_GSM_ACCESS,
+ SERVICE_U_DATA_DOWNLOAD_SMS_PP,
+ SERVICE_U_DATA_DOWNLOAD_SMS_CB,
+ SERVICE_U_CALL_CONTROL, // 30
+ SERVICE_U_SMS_CONTROL,
+ SERVICE_U_RUN_AT_CMD,
+ SERVICE_U_RFU_1,
+ SERVICE_U_EST,
+ SERVICE_U_ACL,
+ SERVICE_U_DCK,
+ SERVICE_U_CO_NWLIST,
+ SERVICE_U_GSM_SECURITY_CTX,
+ SERVICE_U_CPBCCH,
+ SERVICE_U_INVSCAN, // 40
+ SERVICE_U_MEXE,
+ SERVICE_U_OPLMNWACT,
+ SERVICE_U_HPLMNWACT,
+ SERVICE_U_EXT5,
+ SERVICE_U_PLMN_NAME,
+ SERVICE_U_OPLMN_LIST,
+ SERVICE_U_MAILBOX_DIAL_NUM,
+ SERVICE_U_MSG_WAIT_IND,
+ SERVICE_U_CALL_FWD_IND,
+ SERVICE_U_RFU_2, // 50
+ SERVICE_U_SP_DSPL_INFO,
+ SERVICE_U_MMS,
+ SERVICE_U_EXT8,
+ SERVICE_U_GPRS_CALL_CONTROL,
+ SERVICE_U_MMS_UCP,
+ SERVICE_U_NIA,
+ SERVICE_U_VGCS, //__R7_EHPLMN__ start
+ SERVICE_U_VBS,
+ SERVICE_U_PSEUDO,
+ SERVICE_U_UPLMNWLAN, // 60
+ SERVICE_U_OPLMNWLAN,
+ SERVICE_U_UWSIDL,
+ SERVICE_U_OWSIDL,
+ SERVICE_U_VGCS_SECURITY,
+ SERVICE_U_VBS_SECURITY,
+ SERVICE_U_WRI,
+ SERVICE_U_MULTIMEDIA_MSG_STORAGE,
+ SERVICE_U_GBA,
+ SERVICE_U_MBMS_SECURITY,
+ SERVICE_U_DATA_DOWNLOAD_USSD, // 70
+ SERVICE_U_EHPLMN, //__R7_EHPLMN__ end
+ SERVICE_U_ADDITIONAL_TERMINAL_PROFILE,
+ SERVICE_U_EHPLMNPI,
+ SERVICE_U_LRPLMNSI,
+ SERVICE_U_OMA_BCAST, //R8 __CSG_SUPPORT__ start
+ SERVICE_U_GBA_LOCAL_KEY,
+ SERVICE_U_TERMINAL_AP,
+ SERVICE_U_SPNI,
+ SERVICE_U_PNNI,
+ SERVICE_U_CPIP, // 80
+ SERVICE_U_HWSIDL,
+ SERVICE_U_WEHPLMNPI,
+ SERVICE_U_WHPI,
+ SERVICE_U_WLRPLMN,
+ SERVICE_U_EPS_MM_INFO,
+ SERVICE_U_ACSGL, //R8 __CSG_SUPPORT__ end
+ SERVICE_U_CC_EPS_PDN, //Call control on EPS PDN connection by USIM
+ SERVICE_U_HPLMNDA,
+ SERVICE_U_ECALL_DATA, //__ECALL_SUPPORT__
+ SERVICE_U_OCSGL, // 90
+ SERVICE_U_SM_OVER_IP,
+ SERVICE_U_CSG_DISPLAY,
+ SERVICE_U_COMM_CTRL_IMS,
+ SERVICE_U_EXT_TERMINAL_APP,
+ SERVICE_U_UICC_ACCESS_IMS,
+ SERVICE_U_NAS_CONFIG,
+ SERVICE_U_PWS_CONFIG,
+ SERVICE_U_RFU_98,
+ SERVICE_U_URI_SUPPORT_BY_UICC,
+ SERVICE_U_EXT_EARFCN_SUPPORT, // 100
+ SERVICE_U_PROSE,
+ SERVICE_U_USAT_APPLICATION_PAIRING,
+ SERVICE_U_MEDIA_TYPE,
+ SERVICE_U_IMS_CALL_DISCONN_CAUSE,
+ SERVICE_U_URI_MO_SMS_CTRL,
+ SERVICE_U_EPDG_CONF_INFO_SUPPORT,
+ SERVICE_U_EPDG_CONF_INFO_CONF,
+ SERVICE_U_ACDC,
+ SERVICE_U_MCPTT,
+ SERVICE_U_EPDG_CONF_INFO_EMER_SERVICE_SUPPORT, // 110
+ SERVICE_U_EPDG_CONF_INFO_EMER_SERVICE_CONF,
+ SERVICE_U_ECALL_DATA_IMS,
+ SERVICE_U_URI_SMS_PP_DL,
+ SERVICE_U_FROM_PREFERRED,
+ SERVICE_U_IMS_CONF_DATA,
+ SERVICE_U_TV_CONF,
+ SERVICE_U_3GPP_PS_DATA_OFF,
+ SERVICE_U_3GPP_PS_DATA_OFF_SERVICE_LIST,
+ SERVICE_U_V2X,
+ SERVICE_U_XCAP_CONFIG_DATA, // 120
+ SERVICE_U_EARFCN_LIST_FOR_MTC_NBIOT, // R15
+ SERVICE_U_5GS_MM_INFO,
+ SERVICE_U_5G_SECURITY_PARA,
+ SERVICE_U_SUB_ID_PRIVACY,
+ SERVICE_U_SUCI_CAL_BY_USIM,
+ SERVICE_U_UAC_ACCESS_ID,
+ SERVICE_U_CTRL_PLANE_STEERING_IN_VPLMN,
+ SERVICE_U_CALL_CONTROL_ON_PDU_SESSION,
+ SERVICE_U_5GS_OPL, // 129
+ SERVICE_U_SUPI_TYPE_NSI, //130 Support for SUPI of type network specific identifier
+ SERVICE_U_PS_DATAOFF_HOME_ROAM_LIST, //131 3GPP PS Data Off separate Home and Roaming lists
+ SERVICE_U_URSP, //132 Support for URSP by USIM
+ SERVICE_U_5G_SEC_EXTENDED, //133 5G Security Parameters extended
+ SERVICE_U_MUD_MID_CONFIG, //134 MuD and MiD configuration data
+ SERVICE_U_END,
+
+ SERVICE_I_PCSCF, /* ISIM IST 1st Byte */
+ SERVICE_I_GBA,
+ SERVICE_I_HTTP_DIGEST,
+ SERVICE_I_GBA_LOCAL_KEY_EST,
+ SERVICE_I_PCSCF_DISCOVERY_IMS_LOCAL_BREAK_OUT,
+ SERVICE_I_SMS_STORAGE,
+ SERVICE_I_SMS_REPORT,
+ SERVICE_I_SMS_OVER_IP,
+
+ SERVICE_I_IMS_CC_BY_ISIM, /* IST 2nd Byte */
+ SERVICE_I_UICC_ACCESS_IMS,
+ SERVICE_I_URI_SUPPORT,
+ SERVICE_I_MEDIA_TYPE_SUPPORT,
+ SERVICE_I_IMS_CALL_DISCONNECT_CAUSE,
+ SERVICE_I_URI_SMS_CTRL,
+ SERVICE_I_MCPTT,
+ SERVICE_I_URI_SMSPP,
+
+ SERVICE_I_FROM_PREFERRED, /* IST 3rd Byte */
+ SERVICE_I_IMS_CONFIG_DATA,
+ SERVICE_I_XCAP_CONFIG_DATA,
+ SERVICE_I_END
+
+}sim_service_enum;
+
+typedef enum
+{
+ SERVICE_NOT_SUPPORT,
+ SERVICE_SUPPORT,
+ SERVICE_ALLOCATE,
+ SERVICE_UNDEFINED
+}sim_service_state_enum;
+
+typedef enum
+{
+ SIM_NOT_READY, /* initial state */
+ SIM_CARD_NOT_INSERTED, /* No SIM found after initialization */
+ NORMAL_SIM_PRESENCE, /* Normal SIM found after initialization */
+ TEST_SIM_PRESENCE, /* Test SIM found after initialization */
+ SIM_ERROR_SIM_PRESENCE /* mtk80420: SIM hot swap */
+}sim_card_status_enum;
+
+typedef enum
+{
+ TYPE_NAA_INIT_AND_FULL_FILE_CHANGE,
+ TYPE_FILE_CHANGE,
+ TYPE_NAA_INIT_AND_FILE_CHANGE,
+ TYPE_NAA_INIT,
+ TYPE_SIM_RESET,
+ TYPE_NAA_APPLICATION_RESET,
+ TYPE_NAA_SESSION_RESET,
+ TYPE_STEERING_OF_ROAMING,
+ TYPE_STEERING_OF_ROAMING_FOR_IWLAN,
+ TYPE_EUICC_PROFILE_STATE_CHANGE,
+ TYPE_APP_UPDATE,
+ TYPE_NON_SAT_REFRESH = 0xFE, //[MAUI_01321308] mtk01612: for G+C
+ TYPE_REFRESH_INVALID = 0xFF
+}sat_refresh_type_enum;
+
+typedef enum
+{
+ SIM_INFO_ATR,
+ SIM_INFO_CDMA,
+ SIM_INFO_VOLTAGE,
+ SIM_INFO_LAST_APDU,
+ SIM_INFO_MAX
+}sim_query_info_enum;
+
+typedef enum
+{
+ SIM_ECALL_NONE,
+ SIM_ECALL_ONLY,
+ SIM_ECALL_AND_NORMAL,
+ SIM_ECALL_TEST_DISABLE //for ecall test simulation
+}sim_ecall_mode_enum;
+
+typedef enum
+{
+ GSMCDMA_DUALSIM_DISCONNECT,
+ GSMCDMA_DUALSIM_CONNECT
+}gsmcdma_dualsim_mode_enum;
+
+typedef enum
+{
+ DUALSIM_CMD_SUCCESS,
+ DUALSIM_CMD_FAIL_RESET_ABNORMAL,
+ DUALSIM_CMD_FAIL_CHVINFO_ABNORMAL,
+ DUALSIM_CMD_FAIL_DISCONNECT_NOT_ALLOWED,
+ DUALSIM_CMD_FAIL_CONNECT_NOT_ALLOWED,
+ DUAKSIM_CMD_FAIL_UNDEFINED_OPERATION,
+ DUALSIM_CMD_FAIL_PUK_STATE
+}gsmcdma_dualsim_result_enum;
+
+typedef enum
+{
+ VERIFY,
+ DISABLE,
+ ENABLE,
+ CHANGE,
+ UNBLOCK,
+ SUPER_VERIFY, //link_SML
+ RESTORE_LOCK, //link_SML
+}sim_security_operation_enum; /*[MAUI_03058435] mtk01612: move sim_security_operation_enum into this file due to HAL rule*/
+
+typedef enum
+{
+ TYPE_ONLY_DIGIT, // mtk01488: digit only and sms default alphabet
+ TYPE_SMS_DEFAULT_SET, // mtk01488: alphabet set and SMS default alphabet
+ TYPE_UCS2, // mtk01488: alphabet set and UCS2 alphabet
+ TYPE_YES_NO,
+ TYPE_ONLY_DIGIT_UCS2 // mtk01488: digit only and UCS2 alphabet
+}sat_input_type_enum;
+
+typedef enum
+{
+ SAT_CMD_PERFORMED_SUCCESSFULLY = 0,
+ SAT_CMD_PERFORMED_WITH_PARTIAL_COMPREHENSION = 0X01,
+ SAT_CMD_PERFORMED_WITH_MISSING_INFO = 0X02,
+ SAT_REFRESH_PERFORMED_WITH_ADDITIONAL_EF_READ = 0X03,
+ SAT_CMD_PERFORMED_BUT_ICON_COULD_NOT_DSPL = 0X04,
+ SAT_CMD_PERFORMED_BUT_MODIFIED_CC_BY_SIM = 0X05,
+ SAT_CMD_PERFORMED_LIMITED_SERVICE = 0X06,
+ SAT_CMD_PERFORMED_WITH_MODIFIED = 0X07,
+ SAT_REFRESH_PERFORM_BUT_NAA_NOT_ACTIVE = 0X08,
+ SAT_PROACTIVE_CMD_TERMINATED_BY_USER = 0X10,
+ SAT_BACKWARD_MOVE_IN_PROACTIVE_SESSION_BY_USER = 0X11,
+ SAT_NO_RESPONSE_FROM_USER = 0X12,
+ SAT_HELP_INFO_REQUEST_BY_USER = 0X13,
+ SAT_USSD_SS_TRANSACTION_TERMINATION_BY_USER = 0X14,
+ SAT_ME_CURRENTLY_UNABLE_TO_PROCESS_CMD = 0X20,
+ SAT_NET_CURRENTLY_UNABLE_TO_PROCESS_CMD = 0X21,
+ SAT_USER_DID_NOT_ACCEPT_THE_PROACTIVE_CMD = 0X22,
+ SAT_USER_CLEAR_DOWN_CALL_BEFORE_CONNECTION_RELEASE = 0X23,
+ SAT_ACTION_IN_CONTRACTION_WITH_CURRENT_TIMER_STATE = 0X24,
+ SAT_INTERACTION_WITH_CALL_CTRL_BY_SIM_TEMPORARY_ERROR = 0X25,
+ SAT_LAUNCH_BROWER_GENERIC_ERROR_CODE = 0X26,
+ SAT_CMD_BEYOND_ME_CAP = 0X30,
+ SAT_CMD_TYPE_NOT_UNDERSTAND_BY_ME = 0X31,
+ SAT_CMD_DATA_NOT_UNDERSTAND_BY_ME = 0X32,
+ SAT_CMD_NUMBER_NOT_KNOWN_BY_ME = 0X33,
+ SAT_SS_RETURN_ERROR = 0X34,
+ SAT_SMS_RP_ERROR = 0X35,
+ SAT_ERROR_REQUIRED_VALUE_MISSING = 0X36,
+ SAT_USSD_RETURN_ERROR = 0X37,
+ SAT_MULTICARD_CMD_ERROR = 0X38,
+ SAT_INTERACTION_WITH_CALL_CTRL_BY_SIM_PERMANENT_ERROR = 0X39,
+ SAT_BEARER_INDEPENDENT_PROTOCOL_ERROR = 0X3A,
+
+ SAT_INVALID_TR_CAUSE = 0xFF
+}sat_terminal_res_enum;
+
+typedef enum
+{
+ SAT_NO_SPECIFIC_CAUSE,
+ SAT_SCREEN_BUSY,
+ SAT_ME_CURRENTLY_BUSY_ON_CALL,
+ SAT_ME_CURRENTLY_BUSY_ON_SS,
+ SAT_NO_SERVICE,
+ SAT_ACCESS_CTRL_CLASS_BAR,
+ SAT_RR_NOT_BRANTED,
+ SAT_NOT_IN_SPEECH_MODE,
+ SAT_ME_CURRENTLY_BUSY_ON_USSD,
+ SAT_ME_CURRENTLY_BUSY_ON_DTMF
+}sat_additional_info_for_res_enum;
+
+typedef enum
+{
+ SAT_LAUNCH_BROWSER_IF_NOT_ALREADY_LAUNCHED = 0x00,
+ SAT_USE_EXISTING_BROWSER = 0x02,
+ SAT_CLOSE_EXISTING_BROWSER_AND_LAUNCH_NEW = 0x03
+}sat_launch_browser_mode_enum;
+
+typedef enum
+{
+ SAT_LAUNCH_BROWSER_NO_SPECIFIC_CAUSE,
+ SAT_LAUNCH_BROWSER_BEARER_UNAVALIABLE,
+ SAT_LAUNCH_BROWSER_BROWSER_UNAVALIABLE,
+ SAT_LAUNCH_BROWSER_ME_UNABLE_TO_READ_PROVISION_DATA
+}sat_launch_browser_additional_info_for_res_enum;
+
+typedef enum
+{
+ SAT_BROWSER_USER_TERMINATION,
+ SAT_BROWSER_ERROR_TERMINATION
+}sat_browser_termination_mode_enum;
+
+/* proactive SIM command struct */
+typedef enum
+{
+ SETUP_CALL_IF_NO_ANOTHER_CALL,
+ SETUP_CALL_WITH_REDIAL_IF_NO_ANOTHER_CALL,
+ SETUP_CALL_PUT_ANOTHER_HOLD,
+ SETUP_CALL_WITH_REDIAL_PUT_ANOTHER_HOLD,
+ SETUP_CALL_DISCON_ANOTHER,
+ SETUP_CALL_WITH_REDIAL_DISCON_ANOTHER
+}sat_setup_call_condition_enum;
+
+typedef enum
+{
+ SAT_CALL_MEDIA_VOICE,
+ SAT_CALL_MEDIA_VIDEO
+} sat_call_media_type_enum;
+
+typedef enum
+{
+ SAT_OPERATION_CHANGED_BY_SIM,
+// SAT_NUM_CHANGED_BY_SIM,
+ SAT_NUM_CHANGED_CALL_TO_CALL,
+ SAT_NUM_CHANGED_CALL_TO_SS,
+ SAT_NUM_CHANGED_CALL_TO_USSD,
+ SAT_NUM_CHANGED_SS_TO_CALL,
+ SAT_NUM_CHANGED_SS_TO_SS,
+ SAT_NUM_CHANGED_SS_TO_USSD,
+ SAT_NUM_CHANGED_USSD_TO_CALL,
+ SAT_NUM_CHANGED_USSD_TO_SS,
+ SAT_NUM_CHANGED_USSD_TO_USSD,
+ SAT_NUM_CHANGED_SMS,
+// SAT_ALPHA_ID_IND,
+ SAT_CALL_NOT_ALLOWED,
+ SAT_SS_NOT_ALLOWED,
+ SAT_USSD_NOT_ALLOWED,
+ SAT_SMS_NOT_ALLOWED,
+ SIM_MEM_PROBLEM,
+ SIM_SECRET_CODE_REJ,
+ SIM_TECH_PROBLEM,
+ SAT_ALLOWED_NO_CHANGE
+}sat_mmi_info_type_enum;
+
+typedef enum
+{
+ SAT_TONE_DIAL=0x01,
+ SAT_TONE_CALLED_SUBSCRIBER_BUSY=0x02,
+ SAT_TONE_CONGESTION=0x03,
+ SAT_TONE_RADIO_PATH_ACK=0x04,
+ SAT_TONE_RADIO_NO_PATH=0x05,
+ SAT_TONE_ERROR=0x06,
+ SAT_TONE_CALL_WAITING=0x07,
+ SAT_TONE_RING=0x08,
+ SAT_TONE_GENERAL_BEEP=0x10,
+ SAT_TONE_POS_ACK=0x11,
+ SAT_TONE_NEG_ACK=0x12
+}sat_tone_id_enum;
+
+typedef enum
+{
+
+ SIM_RESET_SMART_DETECTION,
+ SIM_RESET_USIM_PREFER,
+ SIM_RESET_SIM_PREFER
+} sim_reset_method_enum;
+
+typedef enum
+{
+ SAT_NW_REJ_LOCATION_INFO,
+ SAT_NW_REJ_ROUTE_AREA_ID,
+ SAT_NW_REJ_TRACK_AREA_ID
+} sat_nw_rej_info_enum;
+
+/* Update/Attach Type, clause 8.92 in TS 31.111 */
+typedef enum
+{
+ SAT_NW_REJ_TYPE_NORMAL_LU, /* 0x00: "Normal Location Update" for LOCATION UPDATING REQUEST */
+ SAT_NW_REJ_TYPE_PERIODIC_LU, /* 0x01: "Periodic Updating" for LOCATION UPDATING REQUEST */
+ SAT_NW_REJ_TYPE_IMSI_ATTACH, /* 0x02: "IMSI Attach" for LOCATION UPDATING REQUEST */
+ SAT_NW_REJ_TYPE_GPRS_ATTACH, /* 0x03: "GPRS Attach" for GPRS ATTACH REQUEST */
+ SAT_NW_REJ_TYPE_COMBINED_ATTACH, /* 0x04: "Combined GPRS/IMSI Attach" for GPRS ATTACH REQUEST */
+
+ SAT_NW_REJ_TYPE_RAU, /* 0x05: "RA Updating" for ROUTING AREA UPDATE REQUEST */
+ SAT_NW_REJ_TYPE_COMBINED_RA_LAU, /* 0x06: "Combined RA/LA Updating" for ROUTING AREA UPDATE REQUEST */
+ SAT_NW_REJ_TYPE_COMBINED_RA_LAU_WITH_IMSI, /* 0x07: "Combined RA/LA Updating with IMSI Attach" for ROUTING AREA UPDATE REQUEST */
+ SAT_NW_REJ_TYPE_PERIODIC_RAU, /* 0x08: "Periodic Updating" for ROUTING AREA UPDATE REQUEST */
+
+ SAT_NW_REJ_TYPE_EPS_ATTACH, /* 0x09: "EPS Attach" for EMM ATTACH REQUEST */
+ SAT_NW_REJ_TYPE_COMBINED_EPS_IMSI_ATTACH, /* 0x0A: "Combined EPS/IMSI Attach" for EMM ATTACH REQUEST */
+ SAT_NW_REJ_TYPE_TAU, /* 0x0B: "TA updating" for EMM TRACKING AREA UPDATE REQUEST */
+ SAT_NW_REJ_TYPE_COMBINED_TA_LAU, /* 0x0C: "Combined TA/LA updating" for EMM TRACKING AREA UPDATE REQUEST */
+ SAT_NW_REJ_TYPE_COMBINED_TA_LAU_WITH_IMSI, /* 0x0D: "Combined TA/LA updating with IMSI attach" for EMM TRACKING AREA UPDATE REQUEST */
+ SAT_NW_REJ_TYPE_PERIODIC_TAU, /* 0x0E: "Periodic updating" for EMM TRACKING AREA UPDATE REQUEST */
+
+ SAT_NW_REJ_TYPE_INIT_REG, /* 0x0F: "Initial Registration" for 5GMM REGISTRATION REQUEST */
+ SAT_NW_REJ_TYPE_MOBILITY_REG_UPDATE, /* 0x10: "Mobility Registration Updating" for 5GMM REGISTRATION REQUEST */
+ SAT_NW_REJ_TYPE_PERIODIC_REG_UPDATE, /* 0x11: "Periodic Registration Updating" for 5GMM REGISTRATION REQUEST */
+} sat_nw_rej_type_enum;
+
+/* UTRAN/E-UTRAN Measurement Qualifier, clause 8.73 in TS 31.111 */
+typedef enum
+{
+ SAT_NMR_UTRAN_INTRA_FRQ = 0x01, /* 0x01: UTRAN Intra-frequency measurements */
+ SAT_NMR_UTRAN_INTER_FRQ = 0x02, /* 0x02: UTRAN Inter-frequency measurements */
+ SAT_NMR_UTRAN_INTRAT_GSM = 0x03, /* 0x03: UTRAN Inter-RAT (GERAN) measurements */
+ SAT_NMR_UTRAN_INTRAT_EUTRAN = 0x04, /* 0x04: UTRAN Intra-RAT (E-UTRAN) measurements */
+ SAT_NMR_EUTRAN_INTRA_FRQ = 0x05, /* 0x05: E-UTRAN Intra-frequency measurements */
+ SAT_NMR_EUTRAN_INTER_FRQ = 0x06, /* 0x06: E-UTRAN Inter-frequency measurements */
+ SAT_NMR_EUTRAN_INTRAT_GSM = 0x07, /* 0x07: E-UTRAN Inter-RAT (GERAN) measurements */
+ SAT_NMR_EUTRAN_INTRAT_UTRAN = 0x08, /* 0x08: E-UTRAN Inter-RAT (UTRAN) measurements */
+ SAT_NMR_EUTRAN_INTRAT_NRRAN = 0x09, /* 0x09: E-UTRAN Inter-RAT (NRRAN) measurements */
+} sat_nmr_qual_enum;
+
+
+typedef enum
+{
+ SAT_PROFILE_DL_MT_DEFAULT,
+ SAT_PROFILE_DL_MT_TE,
+ SAT_PROFILE_DL_HALT,
+ SAT_PROFILE_DL_DISABLE = 0xFF
+}sat_profile_download_enum;
+
+typedef enum
+{
+ SAT_PROFILE_ACT_QUERY,
+ SAT_PROFILE_ACT_ENABLE_TE_FACILITY,
+ SAT_PROFILE_ACT_MT_DEFAULT,
+ SAT_PROFILE_ACT_MT_TE,
+
+ // Proprietary state to remember the profile download setting
+ SAT_PROFILE_ACT_DL_ME_DEFAULT = 0xD0,
+ SAT_PROFILE_ACT_WAIT_ENABLE_TE,
+ SAT_PROFILE_ACT_HALT,
+ SAT_PROFILE_ACT_DISABLE = 0xFF
+}sat_profile_activate_enum;
+
+typedef enum
+{
+ SAT_NORMAL_SEND, /* send location info to SIM when field value updated */
+ SAT_FORCE_NOT_SEND, /* from xMM not to send location info to SIM, RAC should not send to GMSS at all */
+ SAT_FORCE_SEND, /* from xMM force send location info to SIM */
+} sat_loc_send_type_enum;
+
+typedef enum
+{
+ EXEMPT_USSI,
+ EXEMPT_MMTEL_VOICE,
+ EXEMPT_MMTEL_VIDEO,
+ EXEMPT_XCAP_CONFIG,
+ EXEMPT_SMSOIP,
+ EXEMPT_BIP,
+ EXEMPT_DEVICE_MANAGEMENT_OVER_PS,
+ /* R15 new exempt services */
+ EXEMPT_USSI_ROAMING = 8,
+ EXEMPT_MMTEL_VOICE_ROAMING,
+ EXEMPT_MMTEL_VIDEO_ROAMING,
+ EXEMPT_XCAP_CONFIG_ROAMING,
+ EXEMPT_SMSOIP_ROAMING,
+ EXEMPT_BIP_ROAMING,
+ EXEMPT_DEVICE_MANAGEMENT_OVER_PS_ROAMING,
+ EXEMPT_END
+} sim_ps_data_off_exempt_enum;
+
+typedef enum
+{
+ EXEMPT_NOT_SUPPORT,
+ EXEMPT_SUPPORT,
+ EXEMPT_UNAVAILABLE,
+ EXEMPT_UNDEFINED
+} sim_ps_data_off_exempt_state_enum;
+
+typedef enum
+{
+ SIM_IMMEDIATE_AUTH_AVAILABLE, /* no authenticate ongoing */
+ SIM_IMMEDIATE_AUTH_SET, /* authenticate_req is sent from MOD_EVAL through msg_send_to_head() */
+ SIM_IMMEDIATE_AUTH_PROCESSING /* authenticate is under processing, can not handle another one */
+} sim_auth_flag_state_enum;
+
+#ifdef __TC10__
+typedef enum
+{
+ NO_CALL_CTRL = 0x00,
+ ALLOWED_WITHOUT_MODIFICATION,
+ NOT_ALLOWED,
+ ALLOWED_WITH_MODIFICATION
+}sat_call_ctrl_result_noti_enum;
+
+typedef enum
+{
+ SAT_VOICE_CALL = 0x00,
+ SAT_SMS_MO,
+ SAT_SS,
+ SAT_USSD,
+ SAT_PDP_CONTEXT,
+ SAT_NULL
+}sat_call_ctrl_type_noti_enum;
+#endif
+
+typedef enum
+{
+ GET_SUCI,
+ GET_IDENTITY_INVALID
+} sim_get_identity_type_enum;
+
+typedef enum
+{
+ SIM_IMSI_SUPI = 0,
+ SIM_NAI_SUPI = 1,
+ SIM_SUPI_INVALID
+} sim_supi_type_enum;
+
+#ifdef __SIM_PASS_THROUGH__
+typedef enum
+{
+ SIM_POWER_PLUG_OUT = 0,
+ SIM_POWER_PLUG_IN = 1,
+ SIM_POWER_PASS_THROUGH = 2,
+ SIM_POWER_DISABLED = 10,
+ SIM_POWER_ENABLED = 11,
+ SIM_POWER_MAX
+} sim_esimpower_state_enum;
+#endif
+#ifdef __SIM_ACCESS_INTEGRATION__
+typedef enum
+{
+ SIM_CMD_CGLA = 0,
+ SIM_CMD_CSIM = 1,
+ SIM_CMD_ECGLA = 2,
+ SIM_CMD_EXCGLA = 3,
+ SIM_CMD_INVALID = 0xFF
+} sim_generic_access_cmd_enum;
+#endif
+
+typedef enum
+{
+ /* type 0 ~ 3 are to disable multiple SIM */
+ SIM_CARD_TYPE_0 = 0, /* 1st slot enabled, can be regular SIM or removable eSIM, other slots disabled */
+ SIM_CARD_TYPE_1, /* 2nd slot enabled, disable other slots */
+ SIM_CARD_TYPE_2, /* 1st slot enabled, valid for removable eSIM, other slots disabled */
+ SIM_CARD_TYPE_3, /* 1st slot enabled, validfor regular SIM, other slots disabled */
+ /* type 4 ~ 6 are to enable multiple SIM */
+ SIM_CARD_TYPE_4, /* 1st slot is removable eSIM, enable other slots */
+ SIM_CARD_TYPE_5, /* 1st slot is regular SIM, enable other slots */
+ SIM_CARD_TYPE_6, /* 1st slot can be regular SIM or removable eSIM, enable other slots */
+ SIM_CARD_TYPE_15 = 15 /* enable SIM slots as per modem supported configuration, same to type 6 */
+} sim_restrict_card_type_enum;
+
+typedef enum
+{
+ SAT_DATA_CONNECT_STATUS_SUCCESS = 0,
+ SAT_DATA_CONNECT_STATUS_REJECT = 1,
+ SAT_DATA_CONNECT_STATUS_DROPPED_OR_DEACTIVATED = 2,
+ SAT_DATA_CONNECT_STATUS_INVALID = 0xFF
+} sat_data_connection_status_enum;
+
+typedef enum
+{
+ SAT_DATA_CONNECT_TYPE_PDP = 0,
+ SAT_DATA_CONNECT_TYPE_PDN = 1,
+ SAT_DATA_CONNECT_TYPE_PDU = 2,
+ SAT_DATA_CONNECT_TYPE_INVALID = 0xFF
+} sat_data_connection_type_enum;
+
+typedef enum
+{
+ SAT_PDP_PDN_PDU_TYPE_IPV4 = 0,
+ SAT_PDP_PDN_PDU_TYPE_IPV6 = 1,
+ SAT_PDP_PDN_PDU_TYPE_IPV4V6 = 3,
+ SAT_PDP_PDN_TYPE_PPP = 4,
+ SAT_PDU_TYPE_UNSTRUCTURED = 4,
+ SAT_PDP_PDN_TYPE_NON_IP = 5,
+ SAT_PDU_TYPE_ETHERNET = 5,
+ SAT_PDP_PDN_PDU_TYPE_INVALID = 0xFF
+} sat_pdp_pdn_pdu_type_enum;
+
+#define SUCI_SCHEME_NULL 0
+
+/*mtk01612: [MAUI_02023545] BT_SIM_Profile for MAUI and DUMA*/
+//#define APDU_REQ_MAX_LEN 261 /* 256 bytes for data + 5 bytes header information: CLA,INS,P1,P2,P3 */
+//#define APDU_RSP_MAX_LEN 258 /* 256 bytes for data + 2 bytes status word SW1 and SW2 */
+//#define ATR_MAX_LEN 40
+#define MAX_SAT_SIZE_OF_CCP (15+0) /* for L4A autogen to use macro directly */
+
+#define MAX_SUPPORT_RECORD_SIZE 255 /*at present, each record cannot be greater than 254 or 255 bytes in linear fixed/cyclic file */
+#define MAX_SUPPORT_RECORD_NUM 255 /*at present, no more than 254 or 255 records in linear fixed/cyclic file */
+#define CMD_HEADER_LEN 5 /* CLA,INS,P1,P2,P3 */
+/* MAUI_02953154 */
+
+#define usim_file_index_enum sim_file_index_enum
+
+/* MAUI_03041489 : for moveing sim_profile to custom folder */
+#ifdef __SAT_ADDITIONAL_LOCK__
+#define SAT_ADDITIONAL_TER_PROFILE 9
+#endif
+
+#if defined(__REL7__) || defined(__SATCL__) || defined(__SATCM__) || defined(__SATCR__) || defined(__SATCZ__) || defined(__SATCAA__)
+#define MAX_SIM_PROFILE_LEN 36
+#else
+#define MAX_SIM_PROFILE_LEN 18
+#endif
+
+/*If you changed MAX_SST_LEN value, must patch [MAUI_03169422] to avoid TST exception for mini log feature*/
+#define MAX_SST_LEN 17 //R4 max is 15 + 2 for cphs
+
+#define MAX_ECC_NUM_USIM 16
+
+/*If you changed USIM_SUPPORT_UST_LEN value, must patch [MAUI_03169422] to avoid TST exception for mini log feature*/
+// for R7 __R7_EHPLMN__ extend to 74
+// for R8 __CSG_SUPPORT__ extend to 86
+// for __ECALL_SUPPORT__ extend to 89
+// for R14 PS DATA OFF extend to 120
+// for R15 extend to 130
+#define USIM_SUPPORT_UST_LEN 17
+
+#define ISIM_SUPPORT_IST_LEN 4
+
+#define SUPPORT_SIM_TOTAL (MAX_SIM_NUM)
+
+#define SIM_CACHE_ADM_HEAP_SIZE 10240
+
+#define MAX_LONG_CASE4_RSP_LEN 512
+
+#define SIM_OP_MAX_MCC_MNC_LEN 6
+#define SIM_OP_MAX_ICCID_IIN_LEN 4 /* Maximum Issuer ID number is 7 characters, 2 chars in 1 bytes */
+
+#define SIM_OP_ICCID_TABLE_END {0xFF, 0xFF, 0xFF, 0xFF}
+#define SIM_OP_EHPLMN_TABLE_END "FFFFFF"
+#define SIM_OP_IMSI_TABLE_END "FFFFFF"
+
+#define SIM_SUCI_HN_PK_DO_TAG 0xA0
+
+#define STK_SMS_BUFFER_LEN (256 * 2 + 32)
+
+#define LEN_OF_EID 16
+#ifdef __SIM_MULTI_PIN__
+#define SIM_MAX_PIN_DO_SIZE 255
+#endif
+#endif
diff --git a/mcu/interface/protocol/general/sim_public_struct.h b/mcu/interface/protocol/general/sim_public_struct.h
new file mode 100644
index 0000000..30aa030
--- /dev/null
+++ b/mcu/interface/protocol/general/sim_public_struct.h
@@ -0,0 +1,460 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * Copyright Statement:
+ * --------------------
+ * This software is protected by Copyright and the information contained
+ * herein is confidential. The software may not be copied and the information
+ * contained herein may not be used or disclosed except with the written
+ * permission of MediaTek Inc. (C) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * sim_public_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * SIM related message structure (outside PS)
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef SIM_PUBLIC_STRUCT_H
+#define SIM_PUBLIC_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "sim_public_enum.h"
+#include "ps_public_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ef_imsi[9];
+} sim_ready_ind_struct;
+
+/* MAUI_01949579 mtk02374 20090903 for CTA GEMINI new bootup*/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} sim_reset_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool is_sim_inserted;
+ kal_bool is_sim_exist; // For C2K fatcory mode detect SIM insert or not
+ // Because for C2K project, UIM only or CSIM only or 3G CT card is_sim_inserted will be KAL_FALSE
+ kal_bool is_ct3g_sim_inserted;
+} sim_reset_cnf_struct;
+
+/*mtk01612: [MAUI_02023545] BT_SIM_Profile for MAUI and DUMA*/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} bt_sim_connect_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 result;
+ kal_uint8 current_transport_protocol_type;
+ kal_uint8 supported_transport_protocol_type_capability;
+ kal_uint16 atr_len;
+ kal_uint8 atr[ATR_MAX_LEN];
+ kal_uint8 src_id;
+} bt_sim_connect_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 transport_protocol_type;
+ kal_uint8 src_id;
+} bt_sim_reset_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 result;
+ kal_uint8 current_transport_protocol_type;
+ kal_uint16 atr_len;
+ kal_uint8 atr[ATR_MAX_LEN];
+ kal_uint8 src_id;
+ kal_uint8 supported_transport_protocol_type_capability;
+} bt_sim_reset_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 transport_protocol_type;
+ kal_uint16 apdu_req_len;
+ kal_uint8 apdu_req[APDU_REQ_MAX_LEN];
+ kal_uint8 src_id;
+} bt_sim_apdu_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 result;
+ kal_uint16 apdu_rsp_len;
+ kal_uint8 apdu_rsp[APDU_RSP_MAX_LEN];
+ kal_uint8 src_id;
+} bt_sim_apdu_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} bt_sim_disconnect_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 result;
+ kal_uint8 src_id;
+} bt_sim_disconnect_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} bt_sim_power_off_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 result;
+ kal_uint8 src_id;
+} bt_sim_power_off_cnf_struct;
+
+typedef bt_sim_reset_req_struct bt_sim_power_on_req_struct;
+typedef bt_sim_reset_cnf_struct bt_sim_power_on_cnf_struct;
+
+/* MAUI_02953154 */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para; /* Low byte(P1) is record index. High byte(P2) indicate search mode but now it's RFU, only support search forward from index P1 */
+ kal_uint8 access_id;
+ kal_uint8 path[6];
+ kal_uint8 src_id;
+ kal_uint8 pattern_len; /* pattern data size is MAX_SUPPORT_RECORD_SIZE at most */
+ kal_uint8 data[MAX_SUPPORT_RECORD_SIZE+6]; /* max pattern data size + 6 bytes space for command header */
+ kal_uint8 sfi;
+} sim_search_record_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 file_idx;
+ kal_uint16 para;
+ kal_uint8 access_id;
+ kal_uint8 src_id;
+ kal_uint16 result;
+ kal_uint16 status_word;
+ kal_uint8 record_num; /* number of pattern matched records. MAX_SUPPORT_RECORD_NUM at most */
+ kal_uint8 record[258]; /* max APDU response data size 256 + 2 bytes preserved for SIM dirver */
+} sim_search_record_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rand[16];
+ kal_bool is_auth_present;
+ kal_uint8 auth[16];
+ kal_uint8 src_id; /*[MAUI_02602650] mtk01612: AT+EAUTH authentication through AT cmd*/
+ kal_uint8 trans_id; /*[ALPS02825711] NAS shall only use the CNF with the same trans_id of REQ.*/
+ uicc_auth_mode_enum mode;
+ kal_uint8 channel_id;
+ kal_uint8 command_len;
+ kal_uint8 command_data[256];
+} sim_authenticate_req_struct, sim_app_authenticate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_cmd_result_enum result;
+ kal_uint16 status_word;
+ kal_uint8 kc[8];
+ kal_uint8 sres[4];
+ kal_uint8 ck[16];
+ kal_uint8 ik[16];
+ kal_uint8 res[16];
+ kal_uint8 res_len;
+ kal_uint8 auts[16];
+ kal_uint8 auts_len;
+ kal_uint8 auth_res[256]; /*[MAUI_02602650] mtk01612: AT+EAUTH authentication through AT cmd. This should be the same as USIM_MAX_AUTHENTICATE_RSP_LEN */
+ kal_uint16 auth_res_len; /*[MAUI_02602650] mtk01612: AT+EAUTH authentication through AT cmd.*/
+ kal_uint8 src_id; /*[MAUI_02602650] mtk01612: AT+EAUTH authentication through AT cmd.*/
+ kal_uint8 trans_id; /*[ALPS02825711] NAS shall only use the CNF with the same trans_id of REQ.*/
+} sim_authenticate_cnf_struct, sim_app_authenticate_cnf_struct;
+
+typedef struct{
+ kal_uint8 length;
+ kal_uint8 atr[ATR_MAX_LEN];
+}sim_atr_struct;
+
+typedef struct{
+ kal_bool is_sim_inserted;
+ kal_bool is_df_gsm_existed;
+ kal_bool is_df_cdma_existed;
+ kal_bool is_csim_app_existed;
+ kal_bool is_usim_app_existed;
+ kal_bool is_isim_app_existed;
+ kal_bool try_usim_success;
+ kal_bool try_sim_success;
+ kal_uint8 csim_aid_len;
+ kal_uint8 csim_aid[16];
+ kal_uint8 usim_aid_len;
+ kal_uint8 usim_aid[16];
+ kal_uint8 isim_aid_len;
+ kal_uint8 isim_aid[16];
+}sim_cdma_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint16 card_type;
+ usim_logic_channel_enum USIMchan;
+ usim_logic_channel_enum ISIMchan;
+ kal_uint8 atr_length;
+ kal_uint8 atr[ATR_MAX_LEN];
+ kal_uint8 remote_sim_protocol_task;
+ kal_uint8 sim_slot_id;
+ kal_bool is_imsi_valid;
+ kal_uint8 imsi[9];
+ kal_bool sim_start_req;
+ kal_bool is_ad_valid;
+ kal_uint8 ad[4];
+ kal_bool is_iccid_valid;
+ kal_uint8 iccid[10];
+ kal_uint8 iccid_fcp_len;
+ kal_uint8 iccid_fcp[50];
+ kal_bool is_pl_valid;
+ kal_uint8 pl_len;
+ kal_uint8 pl[10];
+ kal_uint8 pl_fcp_len;
+ kal_uint8 pl_fcp[50];
+ kal_uint8 dir_record_size; // size of 1 record
+ kal_uint8 dir_record_num;
+ kal_uint8 dir_content[255];
+ sim_chv_info_struct chv_info;
+ kal_uint8 imsi_m_fcp_len;
+ kal_uint8 imsi_m_fcp[50];
+ // Is there valid PIN DO in the application USIM?
+ kal_bool is_usim_valid_pin_do;
+ // To info the task UIM if the STARTUP_READ_FINISH_IND and APP INIT have to be sent in the task UIM or not
+ // KAL_TRUE: UIM DOESN'T NEED to send STARTUP_READ_FINISH_IND
+ // KAL_FALE: Default value. the task UIM keep the original logic
+ kal_bool is_start_finish_ind_noneeded;
+}sim_status_ind_struct;
+
+/* <modem_status>:
+ 0: only MD1 active
+ 1: MD1's RF is closed, but MD1's SIM task is still working only for MD3 SIM remote access and MD3 active
+ 2: both MD1 and MD3 active, but there is at least USIM application existed on the MD1's card
+ <remote_sim_protocol_task>:
+ 0: MD3 access local card
+ 1: MD3 access MD1's SIM task1
+ 2: MD3 access MD1's SIM task2 */
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 modem_status;
+ kal_uint8 remote_sim_protocol_task;
+}sim_mdstatus_update_req_struct;
+
+typedef union {
+ sim_atr_struct atr;
+ sim_cdma_struct cdma;
+ kal_uint8 sim_reset_volt; /* 1 = 5V, 2 = 3V. 3 = 1.8V */
+ kal_uint8 command_header[CMD_HEADER_LEN]; /* 5 bytes header information: CLA,INS,P1,P2,P3 */
+} sim_query_info_field;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_query_info_enum info_id;
+} sim_query_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+ sim_query_info_enum info_id;
+ sim_query_info_field info_data;
+} sim_query_info_cnf_struct;
+
+/* Skyroam Start */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool is_apvsim_on;
+ kal_bool is_apvsim_ready;
+} sim_set_apvsim_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+} sim_set_apvsim_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 atr_status;
+ kal_uint32 atr_length;
+ kal_uint8 atr[ATR_MAX_LEN];
+} sim_rsa_atr_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+} sim_rsa_atr_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} sim_rsa_reset_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint32 apdu_len;
+ kal_uint8 apdu[APDU_REQ_MAX_LEN];
+} sim_rsa_apdu_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ //kal_uint8 apdu_status;
+ kal_uint32 rsp_len;
+ kal_uint8 rsp[APDU_RSP_MAX_LEN];
+} sim_rsa_apdu_rsp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+} sim_rsa_apdu_rsp_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} sim_rsa_hot_plug_out_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+} sim_rsa_hot_plug_out_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} sim_rsa_hot_plug_in_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ sim_cmd_result_enum result;
+} sim_rsa_hot_plug_in_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+} sim_rsa_power_down_ind_struct;
+/* Skyroam End */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 config_bin_name[30];
+} sim_ut_set_config_bin_req_struct;
+
+typedef struct
+{
+ kal_bool repeat_mode;
+ kal_uint16 prefix_len;
+ kal_uint8 c_apdu_prefix[256];
+ kal_bool is_sw0000;
+} sim_ut_monitor_apdu_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 num_prefix;
+ sim_ut_monitor_apdu_struct monitor_capdu[5];
+} sim_ut_config_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 which_prefix;
+ kal_uint16 apdu_len;
+ kal_uint8 apdu[APDU_REQ_MAX_LEN];
+} sim_ut_capdu_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 rsp_len;
+ kal_uint8 rsp[256];
+ kal_uint16 status_word;
+} sim_ut_rapdu_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 src_id; /* source module to send this request */
+ kal_uint8 mode; /* 0 - query, 1 - set */
+ kal_uint8 control; /* 0 - disable multiple SIM, 1 - enable multiple SIM */
+ sim_restrict_card_type_enum card_type;
+} sim_restrict_card_type_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 src_id; /* same to the value in request message */
+ kal_uint8 mode; /* 0 - query, 1 - set */
+ kal_uint8 control; /* 0 - disable multiple SIM, 1 - enable multiple SIM */
+ sim_restrict_card_type_enum card_type;
+ kal_bool result;
+} sim_restrict_card_type_cnf_struct;
+
+#endif
+
diff --git a/mcu/interface/protocol/general/sm2l4c_struct.h b/mcu/interface/protocol/general/sm2l4c_struct.h
new file mode 100644
index 0000000..ee21292
--- /dev/null
+++ b/mcu/interface/protocol/general/sm2l4c_struct.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:
+ * ---------
+ * SM2L4C_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of SM and L4C.
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * 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 _SM2L4C_STRUCT_H
+#define _SM2L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "irat_common_struct.h"
+#include "kal_public_defs.h"
+
+#endif // ~ _SM2L4C_STRUCT_H
+
+
diff --git a/mcu/interface/protocol/general/sml_public_def.h b/mcu/interface/protocol/general/sml_public_def.h
new file mode 100644
index 0000000..6119acd
--- /dev/null
+++ b/mcu/interface/protocol/general/sml_public_def.h
@@ -0,0 +1,623 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * sml_public_def.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Enum and Constant provided by SIM-ME Lock
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef SML_PUBLIC_DEF_H
+#define SML_PUBLIC_DEF_H
+
+#include "kal_public_defs.h"
+#include "sml_nvram_ver.h"
+
+/*--- SML related Macro Defined ---*/
+
+/* for MS_SECURITY */
+#define NVRAM_EDITOR_NUM_OF_BYTE_KEY 8
+#define NVRAM_EDITOR_NUM_OF_BYTE_NP 3
+#define NVRAM_EDITOR_NUM_OF_BYTE_NSP 5
+#define NVRAM_EDITOR_NUM_NSP 3
+#define NVRAM_EDITOR_NUM_GID 20
+#define NVRAM_EDITOR_NUM_OF_BYTE_IMSI 9
+#define NVRAM_EDITOR_NUM_PIN1 8
+#define NVRAM_EDITOR_NUM_OF_BYTE_ICCID 10
+#define NVRAM_SECRET_KEY_SIZE 8
+#define NVRAM_CUSTOM_KEY_SEED_SIZE 32
+
+/*
+ * the basic unit of categories
+ */
+#define SML_SIZE_OF_CAT_N 3 /* MCC/MNC */
+#define SML_SIZE_OF_CAT_NS 4 /* MCC/MNC + HLR */
+#define SML_SIZE_OF_CAT_SP 4 /* MCC/MNC + GID1 */
+#define SML_SIZE_OF_CAT_C 5 /* MCC/MNC + GID1 + GID2 */
+#define SML_SIZE_OF_CAT_SIM 8 /* IMSI */
+/* Define the maximum suppot categories */
+#define SML_MAX_SUPPORT_CAT_N 10
+#define SML_MAX_SUPPORT_CAT_NS 2
+#define SML_MAX_SUPPORT_CAT_SP 2
+#define SML_MAX_SUPPORT_CAT_C 2
+#define SML_MAX_SUPPORT_CAT_SIM 2
+/* Define the total size of each category */
+#define SML_CFG_CAT_N_SIZE (SML_MAX_SUPPORT_CAT_N * SML_SIZE_OF_CAT_N)
+#define SML_CFG_CAT_NS_SIZE (SML_MAX_SUPPORT_CAT_NS * SML_SIZE_OF_CAT_NS)
+#define SML_CFG_CAT_SP_SIZE (SML_MAX_SUPPORT_CAT_SP * SML_SIZE_OF_CAT_SP)
+#define SML_CFG_CAT_C_SIZE (SML_MAX_SUPPORT_CAT_C * SML_SIZE_OF_CAT_C)
+#define SML_CFG_CAT_SIM_SIZE (SML_MAX_SUPPORT_CAT_SIM * SML_SIZE_OF_CAT_SIM)
+/* Define the support category size */
+#define SML_SUPPORT_CAT_SIZE 7 /* SML_CAT_SIZE in sml_cat_enum */
+
+#define NVRAM_SML_S_MAX_SUPPORT_SALT_LEN 32
+#define NVRAM_SML_S_MAX_SUPPORT_INTER_CNT_LEN 4
+#define NVRAM_SML_S_MAX_SUPPORT_HCK_LEN 64
+
+#define SML_GBLOB_IMEI_SIZE 15
+#define SML_GBLOB_TOTAL_IMEI_SIZE SML_GBLOB_IMEI_SIZE * 4 //Support Max 4 SIM
+#define SML_GBLOB_SUB_RULE_SIZE 2
+#define SML_GBLOB_TLV_DATA_SIZE 256
+#define SML_GBLOB_SIZE_OF_MRC 4
+#define SML_GBLOB_SIZE_OF_DEV_INTCNT 4
+#define SML_GBLOB_SIZE_OF_DEV_SALT 32
+#define SML_GBLOB_SIZE_OF_DEV_HCK 64
+#define SML_GBLOB_SIZE_OF_SIGNATURE 256
+#define SML_GBLOB_SIZE_OF_PACKAGE_KEY 1024
+
+/* RJIL Subsidy Lock BLOB */
+#define SML_SL_BLOB_IMEI_SIZE 15
+#define SML_SL_BLOB_TIME_STAMP_SIZE 8
+#define SML_SL_BLOB_LENGTH_SIZE 2
+#define SML_SL_BLOB_CONFIG_SUPPORT_CAT_SIZE 3
+#define SML_SL_BLOB_ITERATION_COUNT_SIZE 4
+#define SML_SL_BLOB_SALT_SIZE 16
+#define SML_SL_BLOB_HCK_SIZE 32
+#define SML_SL_BLOB_SIZE_OF_SIGNATURE 256
+#define SML_SL_PUBLIC_KEY_MOD_SIZE 256
+#define SML_SL_PUBLIC_KEY_EXP_SIZE 3
+
+/* Invalid SML context obj length */
+#define SML_SL_INVALID_CONTEXT_OBJ_LENGTH 0xFFFF
+#define SML_SL_NVRAM_ACCESS_ID_NONE 0
+#define SML_SL_NVRAM_ACCESS_ID_UPDATE_SLB 0xFA
+#define SML_SL_NVRAM_ACCESS_ID_UPDATE_LOCK_OP 0xFB
+#define SML_SL_MAX_SUPPORT_KEY_LEN 16
+
+/*
+ * the basic unit of categories
+ */
+#define SML_SL_BLOB_SIZE_OF_CAT_N 6 /* MCC/MNC */
+#define SML_SL_BLOB_SIZE_OF_CAT_NS 8 /* MCC/MNC + HLR */
+#define SML_SL_BLOB_SIZE_OF_CAT_SP 7 /* MCC/MNC + GID1 */
+
+/* Define the maximum suppot categories */
+#define SML_SL_BLOB_MAX_SUPPORT_CAT_N 30
+#define SML_SL_BLOB_MAX_SUPPORT_CAT_NS 10
+#define SML_SL_BLOB_MAX_SUPPORT_CAT_SP 10
+
+/* Define the total size of each category */
+#define SML_SL_BLOB_CAT_N_SIZE (SML_SL_BLOB_MAX_SUPPORT_CAT_N * SML_SL_BLOB_SIZE_OF_CAT_N)
+#define SML_SL_BLOB_CAT_NS_SIZE (SML_SL_BLOB_MAX_SUPPORT_CAT_NS * SML_SL_BLOB_SIZE_OF_CAT_NS)
+#define SML_SL_BLOB_CAT_SP_SIZE (SML_SL_BLOB_MAX_SUPPORT_CAT_SP * SML_SL_BLOB_SIZE_OF_CAT_SP)
+
+#define SML_SL_MAX_BLOB_SIZE NVRAM_EF_SUBSIDY_LOCK_SIZE
+
+#define DSML_MAX_BL_LEN 128 /* should larger then max category data */
+
+/*
+ * Key management behavior
+ *
+ * the maximum control key length in bcd, i.e., double in digits
+ * this value shall not be smaller than MAX_SIM_PASSWD_LEN-1, which is the maximum length of PIN
+ */
+#ifdef __EXTEND_SML_KEY_LEN__
+#define SML_MAX_SUPPORT_KEY_LEN 16
+#else
+#define SML_MAX_SUPPORT_KEY_LEN 8 /* in byte */
+#endif
+
+#define CAT_KEY_MAX_SUPPORT_LEN NVRAM_SML_S_MAX_SUPPORT_HCK_LEN
+
+/* NVRAM_SML_MAX_SUPPORT_KEY_LEN is the largest value of SML_MAX_SUPPORT_KEY_LEN
+ used by NVRAM LID NVRAM_EF_SML_LID to prevent from NVRAM content size change
+ when __EXTEND_SML_KEY_LEN__ is switched.
+ Pleaes remember to align this value to the maximal SML_MAX_SUPPORT_KEY_LEN
+ */
+#define NVRAM_SML_MAX_SUPPORT_KEY_LEN 16
+
+/*
+ * Linked Category Support
+ */
+#define SML_SIZE_OF_LINK_NS_SP 5 /* MCC/MNC + HLR+ GID1 */
+#define SML_SIZE_OF_LINK_SIM_C 10 /* IMSI + GID1 + GID2 */
+/* Define the maximum support num of categories */
+#define SML_MAX_SUPPORT_LINK_NS_SP 2
+#define SML_MAX_SUPPORT_LINK_SIM_C 2
+/* define the total size of link category */
+#define SML_CFG_CAT_NS_SP_SIZE (SML_SIZE_OF_LINK_NS_SP * SML_MAX_SUPPORT_LINK_NS_SP)
+#define SML_CFG_CAT_SIM_C_SIZE (SML_SIZE_OF_LINK_SIM_C * SML_MAX_SUPPORT_LINK_SIM_C)
+
+/*
+ * Range Support
+ */
+#define SML_CAT_NS_RANGE_SIZE 2 /* ex: 00FF 0~255 for HLR */
+
+/*
+ * Automatically Lock
+ */
+#define SML_AUTOLOCK_NUM_N_CATEGORY SML_MAX_SUPPORT_CAT_N
+#define SML_AUTOLOCK_NUM_NS_CATEGORY SML_MAX_SUPPORT_CAT_NS
+#define SML_AUTOLOCK_NUM_SP_CATEGORY SML_MAX_SUPPORT_CAT_SP
+#define SML_AUTOLOCK_NUM_C_CATEGORY SML_MAX_SUPPORT_CAT_C
+#define SML_AUTOLOCK_NUM_SIM_CATEGORY SML_MAX_SUPPORT_CAT_SIM
+
+/*
+ * Maximum Retry Count
+ */
+#define SML_MAX_RETRY_COUNT 5
+#define SML_RETRY_TIMEOUT 3 /* in sec */
+#define SML_RETRY_COUNT_N_CAT SML_MAX_RETRY_COUNT
+#define SML_RETRY_COUNT_NS_CAT SML_MAX_RETRY_COUNT
+#define SML_RETRY_COUNT_SP_CAT SML_MAX_RETRY_COUNT
+#define SML_RETRY_COUNT_C_CAT SML_MAX_RETRY_COUNT
+#define SML_RETRY_COUNT_SIM_CAT SML_MAX_RETRY_COUNT
+
+// Penalty timer timeout
+#define SML_PENALTY_TIMER_TIMEOUT 60 /* Define in Seconds. Set default 60 */
+
+// Penalty timer bitmask
+#define SML_ENABLE_PENALTY_TIMER_BIMASK 0x10
+
+#if !defined(L1_SIM) || defined(__UE_SIMULATOR__) || defined(__DUMMY_L1_ON_TARGET_4G5G__)
+#include "cust_chl_interface.h"
+
+#define SML_TMO_MAX_SHARED_KEY_LENGTH MAX_CUST_CHL_SYM_KEY_LEN
+#define SML_TMO_MAX_ENCRYPTED_KEY_LENGTH MAX_CUST_CHL_ASYM_KEY_LEN
+#define SML_ATT_MAX_SHARED_KEY_LENGTH MAX_CUST_CHL_SYM_KEY_LEN
+#define SML_ATT_MAX_ENCRYPTED_KEY_LENGTH MAX_CUST_CHL_ASYM_KEY_LEN
+
+#endif /* L1_SIM */
+
+/* The following size are referend from TMO SIM lock blob format */
+#define SML_TMO_SIZE_OF_API_VERSION 4
+#define SML_TMO_SIZE_OF_VERSION 4
+#define SML_TMO_SIZE_OF_LENGTH 2
+#define SML_TMO_SIZE_OF_MCC_MNC 4
+#define SML_TMO_SIZE_OF_GID 2
+#define SML_TMO_SIZE_OF_MCC_MNC_GID 6
+#define SML_TMO_SIZE_OF_RESERVED 2
+#define SML_TMO_SIZE_OF_START_TIME 8
+#define SML_TMO_SIZE_OF_END_TIME 4
+#define SML_TMO_SIZE_OF_VERIFICATION_CODE 256
+
+#define SML_TMO_SIZE_OF_MAC 32
+#define SML_TMO_SIZE_OF_SIGNATURE 256
+
+#define SML_TMO_MAX_SLB_SIZE NVRAM_EF_SIM_LOCK_SIZE
+
+/* TMO SIM lock blob format 1.5 */
+#define SML_TMO_MAX_PLMN_NUMBER 10
+#define SML_TMO_MAX_GID_NUMBER 10
+#define SML_TMO_SIZE_OF_NUM_PLMN 2
+#define SML_TMO_SIZE_OF_PLMN_LIST SML_TMO_SIZE_OF_MCC_MNC * SML_TMO_MAX_PLMN_NUMBER
+#define SML_TMO_SIZE_OF_NUM_GID 2
+#define SML_TMO_SIZE_OF_GID_LIST SML_TMO_SIZE_OF_GID * SML_TMO_MAX_GID_NUMBER
+#define SML_TMO_SIZE_OF_IMEI 16
+#define SML_TMO_SIZE_OF_UNLOCK_TIME 4
+
+/* Invalid SML context obj length */
+#define SML_TMO_INVALID_CONTEXT_OBJ_LENGTH 0xFFFF
+#define SML_TMO_NVRAM_ACCESS_ID_UPDATE_VERIFICATION_CODE 0xFD
+#define SML_TMO_NVRAM_ACCESS_ID_UPDATE_SLB 0xFC
+#define SML_TMO_NVRAM_ACCESS_ID_RESET_SLB 0xFB
+#define SML_TMO_NVRAM_ACCESS_ID_UNLOCK_EXPIRE 0xFA
+#define SML_TMO_TIMEOUT_PERIODIC_CHECK (KAL_TICKS_1_SEC*10)//(12*60*KAL_TICKS_1_MIN) /* 12 hours */
+#define SML_RSU_TIMER_INDEX_PERIODIC_CHECK 0x01
+
+/* the SML flags */
+#define SML_FLAG_CAT_N 0x01
+#define SML_FLAG_CAT_NS 0x02
+#define SML_FLAG_CAT_SP 0x04
+#define SML_FLAG_CAT_C 0x08
+#define SML_FLAG_CAT_SIM 0x10
+
+typedef struct {
+ kal_uint8 change_flag;
+ kal_uint8 num; /* num of valid sets */
+} sml_sl_blob_meta_struct;
+
+typedef struct {
+ kal_uint8 iteration_count[SML_SL_BLOB_ITERATION_COUNT_SIZE]; /* 4 */
+ kal_uint8 salt[SML_SL_BLOB_SALT_SIZE]; /* 16 */
+ kal_uint8 hck[SML_SL_BLOB_HCK_SIZE]; /* 32 */
+} sml_sl_blob_key_struct;
+
+/* The following size are referend from ATT SIM lock blob format */
+#define SML_ATT_SIZE_OF_API_VERSION 4
+#define SML_ATT_SIZE_OF_VERSION 4
+#define SML_ATT_SIZE_OF_LENGTH 2
+#define SML_ATT_SIZE_OF_MCC_MNC 4
+#define SML_ATT_SIZE_OF_GID 2
+#define SML_ATT_SIZE_OF_MCC_MNC_GID 6
+#define SML_ATT_SIZE_OF_RESERVED 2
+#define SML_ATT_SIZE_OF_START_TIME 8
+#define SML_ATT_SIZE_OF_END_TIME 4
+#define SML_ATT_SIZE_OF_VERIFICATION_CODE 256
+#define SML_ATT_SIZE_OF_MAC 32
+#define SML_ATT_SIZE_OF_SIGNATURE 256
+#define SML_ATT_MAX_SLB_SIZE NVRAM_EF_L4_ATT_SIM_LOCK_SIZE
+
+/* ATT SIM lock blob format 1.5 */
+#define SML_ATT_MAX_PLMN_NUMBER 10
+#define SML_ATT_MAX_GID_NUMBER 10
+#define SML_ATT_SIZE_OF_NUM_PLMN 2
+#define SML_ATT_SIZE_OF_PLMN_LIST SML_ATT_SIZE_OF_MCC_MNC * SML_ATT_MAX_PLMN_NUMBER
+#define SML_ATT_SIZE_OF_NUM_GID 2
+#define SML_ATT_SIZE_OF_GID_LIST SML_ATT_SIZE_OF_GID * SML_ATT_MAX_GID_NUMBER
+#define SML_ATT_SIZE_OF_IMEI 16
+#define SML_ATT_SIZE_OF_UNLOCK_TIME 4
+
+/* Invalid SML context obj length */
+#define SML_ATT_INVALID_CONTEXT_OBJ_LENGTH 0xFFFF
+#define SML_ATT_NVRAM_ACCESS_ID_UPDATE_VERIFICATION_CODE 0xED
+#define SML_ATT_NVRAM_ACCESS_ID_UPDATE_SLB 0xEC
+#define SML_ATT_NVRAM_ACCESS_ID_RESET_SLB 0xEB
+#define SML_ATT_NVRAM_ACCESS_ID_UNLOCK_EXPIRE 0xEA
+#define SML_ATT_TIMEOUT_PERIODIC_CHECK (KAL_TICKS_1_SEC*10)//(12*60*KAL_TICKS_1_MIN) /* 12 hours */
+
+typedef struct {
+ kal_uint8 version[SML_ATT_SIZE_OF_VERSION]; /* 4 */
+ kal_uint8 protection_scheme; /* 1 */
+ kal_uint8 state; /* 1 */
+ kal_uint8 length[SML_ATT_SIZE_OF_LENGTH]; /* 2 */
+ kal_uint8 num_of_plmn[SML_ATT_SIZE_OF_NUM_PLMN]; /* 2 */
+ kal_uint8 plmn_list[SML_ATT_SIZE_OF_PLMN_LIST]; /* N = 4 x plmn count */
+ kal_uint8 num_of_gid[SML_ATT_SIZE_OF_NUM_GID]; /* 2 */
+ kal_uint8 gid_list[SML_ATT_SIZE_OF_GID_LIST]; /* M = 2 x gid count */
+ kal_uint8 reserved[SML_ATT_SIZE_OF_RESERVED]; /* 2 */
+ kal_uint8 start_time[SML_ATT_SIZE_OF_START_TIME]; /* 8 */
+ kal_uint8 end_time[SML_ATT_SIZE_OF_END_TIME]; /* 4 */
+ kal_uint8 imei[SML_ATT_SIZE_OF_IMEI]; /* 16 */
+ kal_uint8 verification_code[SML_ATT_SIZE_OF_VERIFICATION_CODE]; /* 256 */
+ kal_uint8 unlock_time[SML_ATT_SIZE_OF_UNLOCK_TIME]; /* 4 */
+} sml_att_context_struct; /* 42 + N + M + 256 + 4*/
+typedef sml_att_context_struct nvram_sml_att_context_struct;
+
+typedef struct {
+ kal_uint8 major_version;
+ kal_uint8 minor_version;
+ kal_uint8 protection_algorithm;
+ kal_uint8 lock_operation;
+ kal_uint8 imei[SML_SL_BLOB_IMEI_SIZE]; /* 15 */
+ kal_uint8 time_stamp[SML_SL_BLOB_TIME_STAMP_SIZE]; /* 8 */
+ kal_uint8 length[SML_SL_BLOB_LENGTH_SIZE]; /* 2 */
+ sml_sl_blob_meta_struct cat[SML_SL_BLOB_CONFIG_SUPPORT_CAT_SIZE]; /* (3 * 2) */
+ sml_sl_blob_key_struct key[SML_SL_BLOB_CONFIG_SUPPORT_CAT_SIZE]; /* (3 * 52) */
+ kal_uint8 code_cat_n[SML_SL_BLOB_CAT_N_SIZE]; /* (30 * 6) */
+ kal_uint8 code_cat_ns[SML_SL_BLOB_CAT_NS_SIZE]; /* (10 * 8) */
+ kal_uint8 code_cat_sp[SML_SL_BLOB_CAT_SP_SIZE]; /* (10 * 7) */
+ kal_uint8 signature[SML_SL_BLOB_SIZE_OF_SIGNATURE]; /* 256 */
+} sml_sl_blob_context_struct;
+typedef sml_sl_blob_context_struct nvram_sml_sl_blob_context_struct;
+
+typedef struct {
+ kal_uint8 public_key_mod[SML_SL_PUBLIC_KEY_MOD_SIZE]; /* 256 */
+ kal_uint8 public_key_exp[SML_SL_PUBLIC_KEY_EXP_SIZE]; /* 3 */
+} sml_sl_odm_data_struct;
+typedef sml_sl_odm_data_struct nvram_sml_sl_odm_data_struct;
+
+typedef enum
+{
+ SML_INPUT_FORMAT_CATKEY_UNKNOWN,
+ SML_INPUT_FORMAT_CATKEY_BCD,
+ SML_INPUT_FORMAT_CATKEY_ASCII,
+} sml_input_format_of_catkey_for_algo_enum;
+
+
+typedef struct {
+ kal_uint8 max_retry_count[SML_SUPPORT_CAT_SIZE];
+} sml_max_retry_count_struct;
+typedef sml_max_retry_count_struct nvram_sml_max_retry_count_struct;
+
+typedef struct {
+ kal_uint8 major_version;
+ kal_uint8 minor_version;
+ kal_uint8 device_lock_state;
+ kal_uint8 imei[SML_GBLOB_TOTAL_IMEI_SIZE]; /* 15 * 4 */
+ kal_uint8 sml_lock_type;
+ kal_uint8 sml_lock_sub_type[SML_GBLOB_SUB_RULE_SIZE];
+#if GBLOB_LID_VER >= 3
+ kal_uint8 cust_code; /* sml_lock_cust_code_enum */
+ kal_uint8 cust_rule; /* sml_lock_cust_rule_enum */
+#endif
+ kal_uint8 tlv_data[SML_GBLOB_TLV_DATA_SIZE]; /* 256 */
+ kal_uint8 dev_protection_algo;
+ kal_uint8 dev_max_retry_cnt[SML_GBLOB_SIZE_OF_MRC]; /* 4 */
+ kal_uint8 dev_remain_retry_cnt[SML_GBLOB_SIZE_OF_MRC]; /* 4 */
+ kal_uint8 device_interation_cnt[SML_GBLOB_SIZE_OF_DEV_INTCNT]; /* 4 */
+ kal_uint8 device_salt[SML_GBLOB_SIZE_OF_DEV_SALT]; /* 32 */
+ kal_uint8 device_hck[SML_GBLOB_SIZE_OF_DEV_HCK]; /* 64 */
+ kal_uint8 sig_protection_algo;
+ kal_uint8 signature[SML_GBLOB_SIZE_OF_SIGNATURE]; /* 256 */
+} sml_gblob_s_context_struct;
+typedef sml_gblob_s_context_struct nvram_sml_gblob_s_context_struct;
+
+typedef struct {
+ kal_uint8 key[SML_GBLOB_SIZE_OF_PACKAGE_KEY]; /* 1024 */
+} sml_gblob_key_s_context_struct;
+typedef sml_gblob_key_s_context_struct nvram_sml_gblob_key_s_context_struct;
+
+/* For converting R1 SML structure to R2 */
+typedef struct {
+ kal_uint8 state; /* sml_state_enum */
+ kal_uint8 retry_count; /* SML_RETRY_COUNT_X_CAT */
+ kal_uint8 autolock_count; /* SML_AUTOLOCK_NUM_X_CAT */
+ kal_uint8 num; /* num of valid sets */
+} sml_category_meta_r1_struct;
+
+typedef struct {
+ kal_uint8 state; /* Default Value or NULL */
+ kal_uint8 key[8]; //actual data length is SML_MAX_SUPPORT_KEY_LEN
+} sml_control_key_r1_struct;
+
+typedef struct {
+ kal_uint32 magic_head; /* 4 */
+ sml_category_meta_r1_struct cat[SML_SUPPORT_CAT_SIZE]; /* (4 * 7) */
+ sml_control_key_r1_struct key[SML_SUPPORT_CAT_SIZE]; /* (9 * 7) */
+ kal_uint8 code_cat_n[SML_CFG_CAT_N_SIZE]; /* (30 * 3)*/
+ kal_uint8 code_cat_ns[SML_CFG_CAT_NS_SIZE]; /* (30 * 4)*/
+ kal_uint8 code_cat_sp[SML_CFG_CAT_SP_SIZE]; /* (30 * 4)*/
+ kal_uint8 code_cat_c[SML_CFG_CAT_C_SIZE]; /* (30 * 5)*/
+ kal_uint8 code_cat_sim[SML_CFG_CAT_SIM_SIZE]; /* (30 * 8)*/
+ kal_uint8 code_cat_ns_sp[SML_CFG_CAT_NS_SP_SIZE]; /* (5 * 10)*/
+ kal_uint8 code_cat_sim_c[SML_CFG_CAT_SIM_C_SIZE]; /* (10 * 10)*/
+ kal_uint8 range_cat_ns[SML_CAT_NS_RANGE_SIZE]; /* 2 */
+ kal_uint32 magic_tail; /* 4 */
+} sml_r1_context_struct; /* 971 */
+
+typedef struct {
+ kal_uint8 version[SML_TMO_SIZE_OF_VERSION]; /* 4 */
+ kal_uint8 protection_scheme; /* 1 */
+ kal_uint8 state; /* 1 */
+ kal_uint8 length[SML_TMO_SIZE_OF_LENGTH]; /* 2 */
+ kal_uint8 num_of_plmn[SML_TMO_SIZE_OF_NUM_PLMN]; /* 2 */
+ kal_uint8 plmn_list[SML_TMO_SIZE_OF_PLMN_LIST]; /* N = 4 x plmn count */
+ kal_uint8 num_of_gid[SML_TMO_SIZE_OF_NUM_GID]; /* 2 */
+ kal_uint8 gid_list[SML_TMO_SIZE_OF_GID_LIST]; /* M = 2 x gid count */
+ kal_uint8 reserved[SML_TMO_SIZE_OF_RESERVED]; /* 2 */
+ kal_uint8 start_time[SML_TMO_SIZE_OF_START_TIME]; /* 8 */
+ kal_uint8 end_time[SML_TMO_SIZE_OF_END_TIME]; /* 4 */
+ kal_uint8 imei[SML_TMO_SIZE_OF_IMEI]; /* 16 */
+ kal_uint8 verification_code[SML_TMO_SIZE_OF_VERIFICATION_CODE]; /* 256 */
+ kal_uint8 unlock_time[SML_TMO_SIZE_OF_UNLOCK_TIME]; /* 4 */
+} sml_tmo_context_struct; /* 42 + N + M + 256 + 4*/
+typedef sml_tmo_context_struct nvram_sml_tmo_context_struct;
+
+#if defined(NVRAM_AUTO_GEN)
+extern const nvram_sml_tmo_context_struct NVRAM_EF_SML_TMO_DEFAULT;
+extern const nvram_sml_att_context_struct NVRAM_EF_L4_SML_ATT_DEFAULT;
+#endif
+
+
+typedef struct {
+ kal_uint32 nonce_length;
+ kal_uint8 nonce[256];
+} sml_uulk_nonce_struct;
+typedef sml_uulk_nonce_struct nvram_ef_sml_nonce_struct;
+
+typedef struct {
+ kal_uint8 unlock_code;
+} sml_uulk_unlock_code_struct;
+typedef sml_uulk_unlock_code_struct nvram_ef_sml_unlock_code_struct;
+
+typedef struct {
+ kal_uint32 signature_length;
+ kal_uint8 signature[256];
+} sml_uulk_signature_struct;
+typedef sml_uulk_signature_struct nvram_ef_sml_signature_struct;
+
+
+/* The maximum size of Response Message according VZW RSU SPEC is
+ major version :1 byte
+ minor version :1 byte
+ protection alg :1 byte
+ network lock op :1 byte
+ imei :15 bytes
+ timestamp :8 bytes
+ length :2 bytes (size of following fields, including Signature)
+ category lock data :? bytes
+ signature :256 bytes
+
+ possible maximum length is (1+1+1+1+15+8+2+65535)
+*/
+#define MAX_VZW_RSU_RSP_SIZE 1024
+
+typedef enum {
+ SML_VZW_RSU_UNLOCK_TIMER_SUCCESS = 0,
+ SML_VZW_RSU_UNLOCK_TIMER_FAIL = 1,
+ SML_VZW_RSU_UNLOCK_TIMER_EXPIRED = 3, //defined by VZW RSU SPEC
+} sml_vzw_rsu_unlock_timer_resp_enum;
+
+typedef enum {
+ SML_ES_ID_VZW_RSU,
+ SML_ES_ID_TMO_PERIODIC_CHECK, //shall be equal to SML_TMO_TIMER_INDEX_PERIODIC_CHECK
+ SML_ES_ID_PENALTY_TIMER,
+ SML_ES_ID_MAX_NUM
+} sml_es_id_enum;
+
+typedef enum {
+ SMU_VZW_RSU_STOP_DELAY_TIMER,
+ SMU_VZW_RSU_START_DELAY_TIMER
+} smu_vzw_rsu_delay_timer_op_enum;
+
+typedef enum {
+ SML_VZW_DISALLOW_TEMP_UNLOCK_CAUSE_NONE,
+ SML_VZW_DISALLOW_TEMP_UNLOCK_HAS_EXPIRED,
+ SML_VZW_DISALLOW_TEMP_UNLOCK_HAS_STARTED,
+} sml_vzw_rsu_disallow_temp_unlock_cause_enum;
+
+
+#ifdef __CARRIER_RESTRICTION__
+
+/* Carrier Restriction */
+/* Basic unit of categories */
+#define SMU_CARRIER_MATCH_SIZE_OF_CAT_N 3 /* MCC/MNC */
+#define SMU_CARRIER_MATCH_SIZE_OF_CAT_SPN 23 /* MCC/MNC + SPN(20) */
+#define SMU_CARRIER_MATCH_SIZE_OF_CAT_IMSI_PREFIX 4 /* MCC/MNC + HLR */
+#define SMU_CARRIER_MATCH_SIZE_OF_CAT_GID1 4 /* MCC/MNC + GID1 */
+#define SMU_CARRIER_MATCH_SIZE_OF_CAT_GID2 4 /* MCC/MNC + GID2 */
+
+/* Define the maximum supported categories */
+#define SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_N 5
+#define SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_SPN 5
+#define SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_IMSI_PREFIX 5
+#define SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_GID1 5
+#define SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_GID2 5
+
+/* Define the total size of each category */
+#define SMU_CARRIER_MATCH_CFG_CAT_N_SIZE (SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_N * SMU_CARRIER_MATCH_SIZE_OF_CAT_N)
+#define SMU_CARRIER_MATCH_CFG_CAT_SPN_SIZE (SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_SPN * SMU_CARRIER_MATCH_SIZE_OF_CAT_SPN)
+#define SMU_CARRIER_MATCH_CFG_CAT_IMSI_PREFIX_SIZE (SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_IMSI_PREFIX * SMU_CARRIER_MATCH_SIZE_OF_CAT_IMSI_PREFIX)
+#define SMU_CARRIER_MATCH_CFG_CAT_GID1_SIZE (SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_GID1 * SMU_CARRIER_MATCH_SIZE_OF_CAT_GID1)
+#define SMU_CARRIER_MATCH_CFG_CAT_GID2_SIZE (SMU_CARRIER_MATCH_MAX_SUPPORT_CAT_GID2 * SMU_CARRIER_MATCH_SIZE_OF_CAT_GID2)
+
+/* Define the support category size */
+#define SMU_CARRIER_MATCH_SUPPORT_CAT_SIZE 5 /* SMU_CARRIER_MATCH_CAT_SIZE in sml_carrier_match_cat_enum */
+
+typedef enum {
+ SMU_CARRIER_MATCH_CAT_N,
+ SMU_CARRIER_MATCH_CAT_SPN,
+ SMU_CARRIER_MATCH_CAT_IMSI_PREFIX,
+ SMU_CARRIER_MATCH_CAT_GID1,
+ SMU_CARRIER_MATCH_CAT_GID2,
+ SMU_CARRIER_MATCH_CAT_SIZE
+} smu_carrier_match_cat_enum;
+
+/* General lock structure */
+typedef struct {
+ kal_uint8 num; /* num of valid sets */
+} smu_carrier_match_category_meta_struct;
+
+/* General control key structure */
+typedef struct {
+ kal_uint8 state;
+ kal_uint8 algo;
+ kal_uint32 max_retry_count;
+ kal_uint32 retry_count;
+ kal_uint8 salt[NVRAM_SML_S_MAX_SUPPORT_SALT_LEN];
+ kal_uint8 iter_cnt[NVRAM_SML_S_MAX_SUPPORT_INTER_CNT_LEN];
+ kal_uint8 key[NVRAM_SML_S_MAX_SUPPORT_HCK_LEN];
+} smu_carrier_match_control_key_struct;
+
+typedef enum {
+ SMU_CARRIER_RESTRICTION_ENABLED,
+ SMU_CARRIER_RESTRICTION_DISABLED
+} smu_carrier_restriction_state_enum;
+
+typedef enum {
+ SMU_CARRIER_RESTRICTION_MULTI_SIM_POLICY_NONE,
+ SMU_CARRIER_RESTRICTION_ONE_VALID_SIM_MUST_BE_PRESENT
+} smu_carrier_restriction_multi_sim_policy_enum;
+
+typedef struct {
+ smu_carrier_match_category_meta_struct cat[SMU_CARRIER_MATCH_SUPPORT_CAT_SIZE]; /* (5 * 1) */
+ kal_uint8 code_cat_n[SMU_CARRIER_MATCH_CFG_CAT_N_SIZE]; /* (5 * 3) */
+ kal_uint8 code_cat_spn[SMU_CARRIER_MATCH_CFG_CAT_SPN_SIZE]; /* (5 * 23)*/
+ kal_uint8 code_cat_imsi_prefix[SMU_CARRIER_MATCH_CFG_CAT_IMSI_PREFIX_SIZE]; /* (5 * 4)*/
+ kal_uint8 code_cat_gid1[SMU_CARRIER_MATCH_CFG_CAT_GID1_SIZE]; /* (5 * 4)*/
+ kal_uint8 code_cat_gid2[SMU_CARRIER_MATCH_CFG_CAT_GID2_SIZE]; /* (5 * 4)*/
+}smu_carrier_restriction_list_struct;
+
+typedef struct {
+ kal_uint32 magic_head;
+ smu_carrier_match_control_key_struct key;
+ smu_carrier_restriction_list_struct black_list;
+ smu_carrier_restriction_list_struct white_list;
+ kal_uint8 allow_all;
+ smu_carrier_restriction_state_enum carrier_rest_state;
+ kal_uint8 allowed_carriers_prioritized;
+ kal_uint8 multi_sim_policy;
+ kal_uint32 magic_tail;
+} smu_carrier_match_context_struct;
+typedef smu_carrier_match_context_struct nvram_smu_carrier_match_context_struct;
+
+typedef enum
+{
+ CRRST_INPUT_FORMAT_CATKEY_UNKNOWN,
+ CRRST_INPUT_FORMAT_CATKEY_BCD,
+ CRRST_INPUT_FORMAT_CATKEY_ASCII,
+} crrst_input_format_of_catkey_for_algo_enum;
+
+/* carrier restriction: magic numbers of file header and tail */
+#define SML_CARRIER_RESTRICTION_MAGIC_HEAD_VALUE (sizeof(smu_carrier_match_context_struct))
+#define SML_CARRIER_RESTRICTION_MAGIC_TAIL_VALUE 0x26598088
+
+#endif /* __CARRIER_RESTRICTION__ */
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+#define MAX_NW_BLACK_LIST 50
+
+#define SML_MS_SIM_BLACK_LIST_SIZE (MAX_NW_BLACK_LIST*3)
+
+typedef struct {
+ kal_uint8 num_of_black_list;
+ kal_uint8 black_list[SML_MS_SIM_BLACK_LIST_SIZE];
+}smu_ms_sim_black_list_context_struct;
+typedef smu_ms_sim_black_list_context_struct nvram_smu_ms_sim_black_list_context_struct;
+#endif
+#endif /* SML_PUBLIC_DEF_H */
diff --git a/mcu/interface/protocol/general/smsal2soc_struct.h b/mcu/interface/protocol/general/smsal2soc_struct.h
new file mode 100644
index 0000000..b64400b
--- /dev/null
+++ b/mcu/interface/protocol/general/smsal2soc_struct.h
@@ -0,0 +1,143 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * SMSAL2SOC_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of SMSAL and SOC.
+ *
+ * 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.
+*
+********************************************************************************/
+
+#ifndef _SMSAL2SOC_STRUCT_H
+#define _SMSAL2SOC_STRUCT_H
+
+#include "mnsms_struct.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ sms_addr_struct sc_addr; /* service centre address*/
+ sms_addr_struct oa_addr; /* original address*/
+
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ kal_uint8 dcs;
+
+ /* for single sms, seg/total_seg=1 */
+ kal_uint8 seg;
+ kal_uint16 concat_ref;
+ kal_uint8 total_seg;
+
+} smsal_soc_data_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_int32 port;
+ kal_uint16 mod_id;
+ kal_bool is_reg;
+ kal_uint8 access_id;
+
+} smsal_soc_reg_port_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_bool result;
+ kal_bool is_reg;
+ kal_uint16 cause;
+ kal_uint8 access_id;
+
+} smsal_soc_reg_port_cnf_struct;
+
+#endif /* _SMSAL2SOC_STRUCT_H */
+
+
diff --git a/mcu/interface/protocol/general/smsal_peer_struct.h b/mcu/interface/protocol/general/smsal_peer_struct.h
new file mode 100644
index 0000000..3bb640a
--- /dev/null
+++ b/mcu/interface/protocol/general/smsal_peer_struct.h
@@ -0,0 +1,267 @@
+/*****************************************************************************
+* 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_struct.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_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _SMSAL_PEER_STRUCT_H
+#define _SMSAL_PEER_STRUCT_H
+
+#include "kal_general_types.h"
+
+typedef struct {
+ kal_uint8 fill_bits2; /* always set to zero*/
+ kal_uint8 udh_p; /* indicates the presence of
+ user data header*/
+ kal_uint8 fill_bits1; /* always set to zero*/
+ kal_uint8 msg_type; /* deliver report type*/
+ kal_uint8 fail_cause;
+ kal_uint8 params_p; /* depicts presence of
+ optional parameters*/
+ kal_uint8 pid; /* to be bit-wise encoded*/
+ kal_uint8 dcs; /* to be bit-wise encoded*/
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data;
+ kal_uint8 user_data_size;
+ kal_uint8 *user_data; /* can include user data header*/
+} smsal_deliver_report_nack_peer_struct;
+
+typedef struct {
+ kal_uint8 fill_bits2; /* always set to zero*/
+ kal_uint8 udh_p; /* indicates the presence of
+ user data header*/
+ kal_uint8 fill_bits1; /* always set to zero*/
+ kal_uint8 msg_type; /* deliver report type*/
+ kal_uint8 params_p; /* depicts presence of
+ optional parameters*/
+ kal_uint8 pid; /* to be bit-wise encoded*/
+ kal_uint8 dcs; /* to be bit-wise encoded*/
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data;
+ kal_uint8 user_data_size;
+ kal_uint8 *user_data; /* can include user data header*/
+} smsal_deliver_report_ack_peer_struct;
+
+typedef struct {
+ kal_uint8 reply_flag; /* whether reply is sought*/
+ kal_uint8 udh_p; /* indicates presence of
+ user data header*/
+ kal_uint8 status_rep_flag; /* whether status reports
+ are sought*/
+ kal_uint8 vp_flag; /* indicates presence of
+ validity period*/
+ kal_uint8 rej_dup_flag;
+ kal_uint8 msg_type; /* sms submit*/
+ kal_uint8 msg_ref; /* to be read from SIM*/
+ kal_uint8 no_dest_addr;
+ kal_uint8 dest_addr_size;
+ kal_uint8 *dest_addr; /* assumed to be
+ byte-packed*/
+ kal_uint8 pid; /* to be bit-wise encoded*/
+ kal_uint8 dcs; /* to be bit-wise encoded*/
+ kal_uint8 no_validity_period;
+ kal_uint8 validity_period_size;
+ kal_uint8 *validity_period; /* to be
+ bit/byte-wise
+ encoded, cannot
+ be even represnted
+ using CHOICE*/
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data;
+ kal_uint8 user_data_size;
+ kal_uint8 *user_data; /* can have user data header also*/
+} smsal_submit_peer_struct;
+
+typedef struct {
+ kal_uint8 reply_flag; /* whether reply is sought*/
+ kal_uint8 udh_p; /* indicates presence of
+ user data header*/
+ kal_uint8 status_rep_flag; /* whether status reports
+ are sought*/
+ kal_uint8 fill_bits; /* to be ignored*/
+ kal_uint8 mms; /* more message to send*/
+ kal_uint8 msg_type; /* sms deliver*/
+ kal_uint8 no_orig_addr;
+ kal_uint8 orig_addr_size;
+ kal_uint8 *orig_addr; /* assumed to be
+ byte-packed*/
+ kal_uint8 pid; /* to be bit-wise decoded*/
+ kal_uint8 dcs; /* to be bit-wise decoded*/
+ kal_uint8 scts[7];
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data;
+ kal_uint8 user_data_size;
+ kal_uint8 *user_data; /* can have user data header also*/
+} smsal_deliver_peer_struct;
+
+typedef struct {
+ kal_uint8 fill_bits2; /* to be ignored*/
+ kal_uint8 udh_p; /* indicates presence of
+ user data header*/
+ kal_uint8 fill_bits1; /* to be ignored*/
+ kal_uint8 msg_type; /* sms submit report*/
+ kal_uint8 fail_cause;
+ kal_uint8 params_p; /* depicts presence of
+ optional params*/
+ kal_uint8 scts[7];
+ kal_uint8 pid; /* to be bit-wise decoded*/
+ kal_uint8 dcs; /* to be bit-wise decoded*/
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data;
+ kal_uint8 user_data_size;
+ kal_uint8 *user_data; /* can have user data header also*/
+} smsal_submit_report_nack_peer_struct;
+
+typedef struct {
+ kal_uint8 fill_bits2; /* to be ignored*/
+ kal_uint8 udh_p; /* indicates presence of
+ user data header*/
+ kal_uint8 fill_bits1; /* to be ignored*/
+ kal_uint8 msg_type; /* sms submit report*/
+ kal_uint8 params_p; /* depicts presence of
+ optional parameters*/
+ kal_uint8 scts[7];
+ kal_uint8 pid; /* to be bit-wise decoded*/
+ kal_uint8 dcs; /* to be bit-wise decoded*/
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data;
+ kal_uint8 user_data_size;
+ kal_uint8 *user_data; /* can have user data header also*/
+} smsal_submit_report_ack_peer_struct;
+
+typedef struct {
+ kal_uint8 fill_bits1; /* to be ignored*/
+ kal_uint8 udh_p; /* indicates presence of
+ user data header*/
+ kal_uint8 status_rep_type; /* sms command or sms
+ submit*/
+ kal_uint8 fill_bits2; /* to be ignored*/
+ kal_uint8 mms;
+ kal_uint8 msg_type; /* sms status report*/
+ kal_uint8 msg_ref;
+ kal_uint8 no_rcpnt_addr;
+ kal_uint8 rcpnt_addr_size;
+ kal_uint8 *rcpnt_addr;
+ kal_uint8 scts[7];
+ kal_uint8 dis_time[7];
+ kal_uint8 status; /* actual status of submit*/
+ kal_uint8 params_p; /* depicts presence of
+ optional parameters*/
+ kal_uint8 pid; /* to be bit-wise decoded*/
+ kal_uint8 dcs; /* to be bit-wise decoded*/
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data;
+ kal_uint8 user_data_size;
+ kal_uint8 *user_data; /* can have user data header also*/
+} smsal_status_report_peer_struct;
+
+typedef struct {
+ kal_uint8 fill_bits1; /* to be ignored*/
+ kal_uint8 udh_p; /* indicates presence of user data header*/
+ kal_uint8 status_rep_req;
+ kal_uint8 fill_bits3; /* to be ignored*/
+ kal_uint8 msg_type; /* sms command*/
+ kal_uint8 msg_ref; /* TP-MR*/
+ kal_uint8 pid; /* TP-PID*/
+ kal_uint8 cmd_type; /* TP-CT*/
+ kal_uint8 msg_num; /* TP-MN*/
+ kal_uint8 no_dest_addr;
+ kal_uint8 dest_addr_size;
+ kal_uint8 *dest_addr; /* TP-DA*/
+ kal_uint8 cmd_data_len; /* TP-CDL*/
+ kal_uint8 no_cmd_data;
+ kal_uint8 cmd_data_size;
+ kal_uint8 *cmd_data; /* TP-CD*/
+} smsal_command_peer_struct;
+#endif
+
+
diff --git a/mcu/interface/protocol/general/smslib.h b/mcu/interface/protocol/general/smslib.h
new file mode 100644
index 0000000..d53ec0a
--- /dev/null
+++ b/mcu/interface/protocol/general/smslib.h
@@ -0,0 +1,95 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * smslib.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file contains all the necessary xxxx.h
+ *
+ * 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!
+ *
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _SMSLIB_H
+#define _SMSLIB_H
+
+#include "smslib_enum.h"
+#include "smslib_def.h"
+#include "smslib_decode.h"
+#include "smslib_encode.h"
+#include "smslib_others.h"
+
+extern smslib_status_enum smslib_decode_pdu(kal_uint8 *, kal_uint8, smslib_general_struct *);
+extern smslib_status_enum smslib_get_msg_content(kal_uint8, smslib_general_struct *, l4_addr_bcd_struct *);
+extern smslib_status_enum smslib_dealloc_sms_struct(smslib_general_struct *ptr_g);
+
+#endif
diff --git a/mcu/interface/protocol/general/smslib_def.h b/mcu/interface/protocol/general/smslib_def.h
new file mode 100644
index 0000000..56d5ddc
--- /dev/null
+++ b/mcu/interface/protocol/general/smslib_def.h
@@ -0,0 +1,540 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * smslib_def.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file contains definition
+ *
+ * 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 _SMSLIB_DEF_H
+#define _SMSLIB_DEF_H
+
+#if defined(__SMS_STORAGE_BY_MMI__)
+
+
+#include "smslib_enum.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+
+#define SMSLIB_MTI_BITS (0x03)
+#define SMSLIB_MAX_CC_ADDR_LEN (41) // = MAX_CC_ADDR_LEN
+#define SMSLIB_ADDR_LEN (11)
+#define SMSLIB_ONE_MSG_OCTET (140)
+#define SMSLIB_ONE_REPORT_MSG_OCTET (143)
+#define SMSLIB_MAX_MSG_LEN (160)
+#define SMSLIB_MAX_REPORT_MSG_LEN (163)
+#define SMSLIB_INVALID_PORT_NUM (-1)
+#define SMSLIB_TP_ADDR2_L4_ADDR_LEN(x) (((x+1)/2)+1)
+#define SMSLIB_CUSTOM_WILD_CHAR '?'
+
+/*------------------------------
+ * Length of SIM EF
+ *------------------------------*/
+#define SMSLIB_SMS_STATUS_LEN (2) /* length of a EFsmss */
+#define SMSLIB_SMS_LEN (176) /* length of a SIM EFsms record */
+#define SMSLIB_SMS_ME_LEN (184) /* length of a ME EFsms record +7 byte SCT +1 pad */
+#define SMSLIB_SMSP_LEN (28) /* length of a EFsmsp record */
+#ifdef __CPHS__
+#define SMSLIB_MWF_LEN (1)
+#endif
+#define SMSLIB_EXT_LEN (13) /* length of a SIM EFext1/6 record */
+#define SMSLIB_MAILBOX_NUM_LEN (14)
+
+#ifdef __REL6__
+ #ifdef __SMS_R6_ENHANCED_VOICE_MAIL__
+#define SMSLIB_MAX_MW_SOURCE (4)
+ #else
+#define SMSLIB_MAX_MW_SOURCE (3)
+ #endif
+#else
+#define SMSLIB_MAX_MW_SOURCE (3)
+#endif
+
+/*--------------------------------------------
+ * Length of SMS peer message header (part)
+ *--------------------------------------------*/
+/* fo(1), pid(1), dcs(1), scts(7), udl(1), oa_len(1), oa_type(1) */
+#define SMSLIB_PART_OF_DELIVER_HEADER_LEN (13)
+
+/* fo(1), mr(1), pid(1), dcs(1), udl(1), da_len(1), da_type(1) */
+#define SMSLIB_PART_OF_SUBMIT_HEADER_LEN (7)
+
+/* fo(1), mr(1), ra_len(1), ra_type(1), scts(7), dt(7) */
+#define SMSLIB_PART_OF_REPORT_HEADER_LEN (19) //ToCheck
+
+
+/*------------------------------------
+ * Information Element Identifier
+ *------------------------------------*/
+#define SMSLIB_CONC8_MSG_IEI (0x00)
+#define SMSLIB_CONC16_MSG_IEI (0x08)
+#define SMSLIB_SPECIAL_MSG_IND_IEI (0x01)
+#define SMSLIB_ENHANCED_VM_INFO_IEI (0x23)
+
+
+#if defined (__CPHS__) /* NEW */
+/*-------------------------------------
+ * For CPHS Voice Mail Indication
+ *-------------------------------------*/
+#define SMSLIB_CPHS_VM_ADDR_TYPE (0xd0)
+#define SMSLIB_CPHS_VM_SET_BITS (0x01)
+#define SMSLIB_CPHS_VM_IND_BITS (0x0e)
+#define SMSLIB_CPHS_VM_LINE_BITS (0x80)
+#endif
+
+/* SIM SMSP */
+#define SMSLIB_SMSP_DA_BITS (0xfe)
+#define SMSLIB_SMSP_SCA_BITS (0xfd)
+#define SMSLIB_SMSP_PID_BITS (0xfb)
+#define SMSLIB_SMSP_DCS_BITS (0xf7)
+#define SMSLIB_SMSP_VP_BITS (0xef)
+
+/* EMS */
+#define SMSLIB_EMS_TEXT_FORMAT_IEI (0x0a) /* Text Formating */
+#define SMSLIB_EMS_PREDEF_SND_IEI (0x0b) /* Predefined Sound */
+#define SMSLIB_EMS_USER_DEF_SND_IEI (0x0c) /* User Defined Sound */
+#define SMSLIB_EMS_PREDEF_ANM_IEI (0x0d) /* Predefined Animation */
+#define SMSLIB_EMS_LARGE_ANM_IEI (0x0e) /* Large Animation */
+#define SMSLIB_EMS_SMALL_ANM_IEI (0x0f) /* Small Animation */
+#define SMSLIB_EMS_LARGE_PIC_IEI (0x10) /* Large Picture */
+#define SMSLIB_EMS_SMALL_PIC_IEI (0x11) /* Small Picture */
+#define SMSLIB_EMS_VAR_PIC_IEI (0x12) /* Variable Picture */
+
+/* MISC */
+#define SMSLIB_APP_PORT8_IEI (0x04) /* application port - 8 bit */
+#define SMSLIB_APP_PORT16_IEI (0x05) /* application port - 16 bit */
+#define SMSLIB_NL_SINGLE_IEI (0x24) /* National Language single shift */
+#define SMSLIB_NL_LOCKING_IEI (0x25) /* National Language looking shift */
+
+
+/*------------------------------
+ * Status byte in SMS
+ * RFU shall be set to zero !!
+ * 12/27/2002 Kevin
+ *------------------------------*/
+#define SMSLIB_UNUSED_MSG (0x00)
+
+/* MT: Receive from network */
+#define SMSLIB_UNREAD_MSG (0x03)
+#define SMSLIB_READ_MSG (0x01)
+
+/* MO: Sent to network */
+#define SMSLIB_UNSENT_MSG (0x07)
+#define SMSLIB_SENT_NO_SRR (0x05)
+#define SMSLIB_SENT_SRR_NOT_RECV (0x0d)
+#define SMSLIB_SENT_SRR_RECV_NOT_STO (0x15)
+#define SMSLIB_SENT_SRR_RECV_STO (0x1d)
+
+#define SMSLIB_DRAFT_MSG (0x27)
+
+#ifdef __SMS_MSP_UP_TO_4__
+#define SMSLIB_MAX_MSP_NUM 4 //(max support msp)
+#ifdef __REL6__
+#define SMSLIB_MAX_MBDN_NUM 10 // 20 is too much, reduce to 10
+#else
+#define SMSLIB_MAX_MBDN_NUM 10 // 16 is too much, reduce to 10
+#endif
+#else //__SMS_MSP_UP_TO_4__
+#define SMSLIB_MAX_MSP_NUM 2 //(max support msp)
+#ifdef __REL6__
+#define SMSLIB_MAX_MBDN_NUM 10 //(5 * SMSAL_MAX_MSP_NUM, max support mbdn)
+#else
+#define SMSLIB_MAX_MBDN_NUM 8 //(4 * SMSAL_MAX_MSP_NUM, max support mbdn)
+#endif
+#endif //__SMS_MSP_UP_TO_4__
+
+
+typedef struct
+{
+ kal_uint8 reply_flag; /* whether reply is sought*/
+ kal_uint8 udh_p; /* indicates presence of
+ user data header*/
+ kal_uint8 status_rep_flag; /* whether status reports
+ are sought*/
+ kal_uint8 fill_bits; /* to be ignored*/
+ kal_uint8 mms; /* more message to send*/
+ kal_uint8 msg_type; /* sms deliver*/
+ kal_uint8 no_orig_addr;
+ kal_uint8 orig_addr_size; /* the max size of *orig_addr in octet*/
+ kal_uint8 *orig_addr; /* assumed to be
+ byte-packed*/
+ kal_uint8 pid; /* to be bit-wise decoded*/
+ kal_uint8 dcs; /* to be bit-wise decoded*/
+ kal_uint8 scts[7];
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data; /* 7-bit to octet */
+ kal_uint8 user_data_size; /* the max size of *user_data in octet*/
+ kal_uint8 *user_data; /* can have user data header also*/
+} smslib_deliver_peer_struct;
+
+typedef struct
+{
+ kal_uint8 reply_flag; /* whether reply is sought*/
+ kal_uint8 udh_p; /* indicates presence of
+ user data header*/
+ kal_uint8 status_rep_flag; /* whether status reports
+ are sought*/
+ kal_uint8 vp_flag; /* indicates presence of
+ validity period*/
+ kal_uint8 rej_dup_flag;
+ kal_uint8 msg_type; /* sms submit*/
+ kal_uint8 msg_ref; /* to be read from SIM*/
+ kal_uint8 no_dest_addr;
+ kal_uint8 dest_addr_size; /* the max size of *dest_addr in octet*/
+ kal_uint8 *dest_addr; /* assumed to be
+ byte-packed*/
+ kal_uint8 pid; /* to be bit-wise encoded*/
+ kal_uint8 dcs; /* to be bit-wise encoded*/
+ kal_uint8 no_validity_period;
+ kal_uint8 validity_period_size;
+ kal_uint8 *validity_period; /* to be
+ bit/byte-wise
+ encoded, cannot
+ be even represnted
+ using CHOICE*/
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data; /* 7-bit to octet */
+ kal_uint8 user_data_size; /* the max size of *user_data in octet*/
+ kal_uint8 *user_data; /* can have user data header also*/
+} smslib_submit_peer_struct;
+
+typedef struct
+{
+ kal_uint8 fill_bits1; /* to be ignored*/
+ kal_uint8 udh_p; /* indicates presence of
+ user data header*/
+ kal_uint8 status_rep_type; /* sms command or sms
+ submit*/
+ kal_uint8 fill_bits2; /* to be ignored*/
+ kal_uint8 mms;
+ kal_uint8 msg_type; /* sms status report*/
+ kal_uint8 msg_ref;
+ kal_uint8 no_rcpnt_addr;
+ kal_uint8 rcpnt_addr_size; /* the max size of *rcpnt_addr in octet*/
+ kal_uint8 *rcpnt_addr;
+ kal_uint8 scts[7];
+ kal_uint8 dis_time[7];
+ kal_uint8 status; /* actual status of submit*/
+ kal_uint8 params_p; /* depicts presence of
+ optional parameters*/
+ kal_uint8 pid; /* to be bit-wise decoded*/
+ kal_uint8 dcs; /* to be bit-wise decoded*/
+ kal_uint8 user_data_len;
+ kal_uint8 no_user_data; /* 7-bit to octet */
+ kal_uint8 user_data_size; /* the max size of *user_data in octet*/
+ kal_uint8 *user_data; /* can have user data header also*/
+} smslib_status_report_peer_struct;
+
+typedef struct
+{
+ kal_uint8 addr_length;
+ kal_uint8 addr_bcd[11];
+} smslib_addr_struct; //TP Addr Type
+
+/* defined in l4c_aux_struct.h
+ mcd_l4_common.h
+
+typedef struct
+{
+ kal_uint8 addr_length;
+ kal_uint8 addr_bcd[41];
+} l4_addr_bcd_struct; //RP Addr Type
+
+typedef struct
+{
+ kal_uint8 type;
+ kal_uint8 length;
+ kal_uint8 number[SMSLIB_MAX_CC_ADDR_LEN];
+} l4c_number_struct; //MMI Addr Type
+
+typedef struct
+{
+ kal_uint8 name_length;
+ kal_uint8 name_dcs;
+ kal_uint8 name[32];
+} l4_name_struct;
+
+typedef struct
+{
+ kal_uint8 length;
+ kal_uint8 charset;
+ kal_uint8 *data;
+} istring_type; */
+
+typedef struct
+{
+ kal_uint8 waiting_num[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
+} smslib_mwis_struct; // = smsal_mwis_struct (!!!important!!!)
+
+#ifdef __REL6__
+#ifdef __SMS_R6_ENHANCED_VOICE_MAIL__
+// Enhanced Voice Mail Information
+typedef struct
+{
+ kal_uint16 id;
+
+ kal_uint8 msg_len_insec;
+ kal_uint8 msg_retention_day; // max 31
+
+ kal_uint8 priority;
+
+ kal_uint8 msg_ext_flg;
+
+ l4_addr_bcd_struct calling_line_addr;
+
+ kal_uint8 msg_ext_len;
+ kal_uint8 *msg_ext_data;
+}smslib_evmi_msg_struct; // = smsal_evmi_msg_struct (!!!important!!!)
+
+// Enhanced Voice Mail Information
+// l4csmsal_enhanced_voice_mail_ind_struct should be the same as smsal_evmi_struct
+typedef struct
+{
+ kal_uint8 evm_pdu_type;
+ kal_uint8 multi_sub_profile;
+ kal_uint8 is_store;
+ kal_uint8 vm_almost_full;
+ kal_uint8 vm_full;
+ kal_uint8 vm_status_ext_flg;
+
+ l4_addr_bcd_struct vm_access_addr;
+ kal_uint8 number_of_vm_unread; // should be stored in (U)SIM
+ kal_uint8 number_of_vm_notify; // max 15
+ kal_uint8 number_of_vm_delete; // max 31
+
+ kal_uint8 l4_status; // 0:init, 1: sent to MMI, 2:free
+
+ kal_uint8 vm_status_ext_len;
+ kal_uint8 *vm_status_ext_data;
+
+ smslib_evmi_msg_struct *vm_msg[32];
+
+}smslib_evmi_struct; // = smsal_evmi_struct (!!!important!!!)
+#endif
+#endif
+
+typedef struct
+{
+ kal_uint8 type_of_info;
+ kal_bool need_store;
+ kal_bool is_msg_wait;
+ kal_bool is_show_num[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
+ kal_bool is_clear[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
+ kal_bool ind_flag[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
+ smslib_mwis_struct mwis;
+ kal_uint8 msp;
+ kal_uint8 line_no;
+
+#ifdef __REL6__
+#ifdef __SMS_R6_ENHANCED_VOICE_MAIL__
+ smslib_evmi_struct evmi; // should free this after processing
+#endif
+#endif
+} smslib_msg_waiting_struct; // = smsal_msg_waiting_struct (!!!important!!!)
+
+typedef struct
+{
+ kal_int32 dest_port; /* -1: invalid port */
+ kal_int32 src_port;
+} smslib_port_struct; // = smsal_port_struct
+
+typedef struct
+{
+ kal_uint16 ref; /* concat. message reference*/
+ kal_uint8 total_seg; /* total segments*/
+ kal_uint8 seg; /* indicate which segment*/
+} smslib_concat_struct; // = smsal_concat_struct (!!!important!!!)
+
+typedef struct
+{
+ union
+ {
+ smslib_deliver_peer_struct deliver_tpdu;
+ smslib_submit_peer_struct submit_tpdu;
+ smslib_status_report_peer_struct report_tpdu;
+ } data;
+
+ smslib_mti_enum mti;
+
+ //
+ kal_uint8 fo; /* first octet */
+ kal_uint8 offset; /* offset to message content */
+ /* init address of User Data Header */
+ kal_uint8 msg_len;/* length of user data */
+ /* User Data Header + User Data */
+ kal_uint8 udhl; /* for calculating offset to unpack */
+ /* udhl + udh */
+
+ smslib_concat_struct concat_info;
+
+ /* for decoding DCS */
+ smslib_msg_class_enum msg_class;
+ smslib_alphabet_enum alphabet_type;
+ kal_bool is_compress;
+
+
+ smslib_msg_waiting_struct msg_wait;
+
+ /* User Data Header */
+ smslib_port_struct port;
+
+} smslib_tpdu_decode_struct;
+
+typedef struct
+{
+ smslib_sim_status_enum status;
+ l4_addr_bcd_struct sca;
+ smslib_tpdu_decode_struct tpdu;
+ kal_uint8 pdu_len; /* length of PDU */
+ kal_uint8 tpdu_len; /* length of TPDU */
+ l4c_number_struct forMMI_SCAAddr;
+ l4c_number_struct forMMI_TPAddr;
+ kal_uint16 forMMI_UserData_length; /*unit: octet*/
+ kal_uint8 forMMI_UserData[170];
+} smslib_general_struct;
+
+typedef struct
+{
+ /* alpha id size of EFmailbox_numr */
+ kal_uint8 alpha_size; //Input value for decode & encode
+
+ l4_name_struct name;
+ l4c_number_struct addr;
+ kal_uint8 capability_id;
+ kal_uint8 extension_id;
+}smslib_ef_mailbox_num_struct;
+
+typedef struct
+{
+ kal_uint8 mbi_id[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
+}smslib_ef_mbi_struct;
+
+typedef struct
+{
+ kal_uint8 waiting_num[SMSLIB_NUM_OF_MSG_WAITING_TYPE];
+} smslib_ef_mwis_struct;
+
+typedef struct
+{
+ smslib_mwis_struct cphs_mwis[SMSLIB_MAX_LINES];
+}smslib_ef_vm_struct;
+
+typedef struct
+{
+ /* maximum number of supported, SMS parameter profiles in SIM */
+ //kal_uint8 max_profile_num; //Input value for decode
+
+ /* size of alpha-identifier in EFsmsp */
+ kal_uint8 alpha_size; //Input value for decode
+ //Input value for encode
+ /* store alpha-identifier */
+ l4_name_struct profile_name; //Input&Output value for decode
+ //Input&Output value for encode
+ /* Parameter Indicator */
+ kal_uint8 para_ind; //Output value for decode
+ //Input value for encode
+ /* Validity period */
+ kal_uint8 vp; //Output value for decode
+ //Input value for encode
+ /* Protocol identifier */
+ kal_uint8 pid; //Output value for decode
+ //Input value for encode
+ /* Data coding scheme */
+ kal_uint8 dcs; //Output value for decode
+ //Input value for encode
+ /* Service Centre Address */
+ l4c_number_struct sca; //Output value for decode
+ //Input value for encode
+ /* Destination Address */
+ l4c_number_struct da; //Output value for decode
+ //Input value for encode
+}smslib_ef_smsp_struct;
+
+#endif // __SMS_STORAGE_BY_MMI__
+
+#endif
diff --git a/mcu/interface/protocol/general/smslib_enum.h b/mcu/interface/protocol/general/smslib_enum.h
new file mode 100644
index 0000000..0172c53
--- /dev/null
+++ b/mcu/interface/protocol/general/smslib_enum.h
@@ -0,0 +1,339 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * smslib_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file contains enum
+ *
+ * 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!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _SMSLIB_ENUM_H
+#define _SMSLIB_ENUM_H
+
+#if defined(__SMS_STORAGE_BY_MMI__)
+
+#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 !*/
+#endif
+
+typedef enum
+{
+ SMSLIB_MTI_DELIVER = 0x00,
+ SMSLIB_MTI_DELIVER_REPORT = 0x00,
+ SMSLIB_MTI_SUBMIT = 0x01,
+ SMSLIB_MTI_SUBMIT_REPORT = 0x01,
+ SMSLIB_MTI_STATUS_REPORT = 0x02,
+ SMSLIB_MTI_COMMAND = 0x02,
+
+ SMSLIB_MTI_UNSPECIFIED = 0x03 /* MMI shall handle this case,
+ * eg, displaying "does not support",
+ * or "cannot display", etc */
+} smslib_mti_enum;
+
+typedef enum
+{
+ SMSLIB_CLASS0 = 0,
+ SMSLIB_CLASS1,
+ SMSLIB_CLASS2,
+ SMSLIB_CLASS3,
+ SMSLIB_CLASS_UNSPECIFIED,
+
+ SMSLIB_MW_DISCARD, /* follows are for SMSLIB internal use */
+ SMSLIB_MW_STORE,
+ SMSLIB_RCM,
+ SMSLIB_NUM_OF_NMI_MSG_ENUM
+} smslib_msg_class_enum;
+
+typedef enum
+{
+ /* follows intended for AT commands and MMI */
+ SMSLIB_REC_UNREAD = 0, /* received unread */
+ SMSLIB_REC_READ, /* received read */
+ SMSLIB_STO_UNSENT, /* stored unsent */
+ SMSLIB_STO_SENT, /* stored sent */
+
+ SMSLIB_ALL, /* all (only applicable to +CMGL command)
+ * not for MMI
+ */
+
+ /* follows intended for MMI only */
+ SMSLIB_INBOX_PARTIAL, /* parts of inbox messages */
+ SMSLIB_OUTBOX_PARTIAL, /* parts of outbox messages */
+ SMSLIB_STO_DRAFT, /* stored draft */
+ SMSLIB_INVALID_STATUS
+} smslib_sim_status_enum;
+
+typedef enum
+{
+ SMSLIB_STATUS_OK = 0x00,
+ SMSLIB_STATUS_NULL_POINTER, /* application pass a NULL pointer */
+ SMSLIB_STATUS_NO_MEMORY, /* library run out of memory */
+ SMSLIB_STATUS_ALREADY_INITIALIZED, /* library already be initialized */
+ SMSLIB_STATUS_NOT_INITIALIZED, /* library is not be initialized */
+ SMSLIB_STATUS_INVALID_PARAMETER,
+ SMSLIB_STATUS_INVALID_MTI,
+ SMSLIB_STATUS_UNSPECIFIED_ERROR,
+ SMSLIB_STATUS_INPUT_SPDU_LENGTH_ERROR,
+ SMSLIB_STATUS_INPUT_PDU_LENGTH_ERROR,
+ SMSLIB_STATUS_INPUT_TPDU_LENGTH_ERROR,
+ SMSLIB_STATUS_ADDR_LENGTH_ERROR,
+ SMSLIB_STATUS_USER_DATA_LENGTH_ERROR,
+ SMSLIB_STATUS_INPUT_LENGTH_ERROR,
+ SMSLIB_STATUS_LENGTH_ERROR,
+ SMSLIB_STATUS_END
+} smslib_status_enum;
+
+typedef enum
+{
+ SMSLIB_GSM7_BIT = 0,
+ SMSLIB_EIGHT_BIT,
+ SMSLIB_UCS2,
+ SMSLIB_ALPHABET_UNSPECIFIED
+
+} smslib_alphabet_enum;
+
+typedef enum
+{
+ SMSLIB_MW_VM = 0,
+ SMSLIB_MW_FAX,
+ SMSLIB_MW_EMAIL,
+ SMSLIB_MW_OTHER,
+#ifdef __REL6__
+ SMSLIB_MW_VIDEO_MSG,
+#endif
+ SMSLIB_NUM_OF_MSG_WAITING_TYPE
+} smslib_msg_waiting_type_enum;
+
+typedef enum
+{
+ SMSLIB_MSG_WAIT_CPHS = 0x01,
+ SMSLIB_MSG_WAIT_DCS = 0x02,
+ SMSLIB_MSG_WAIT_UDH = 0x04,
+ SMSLIB_MSG_WAIT_UDH_EVM = 0x08
+} smslib_type_of_msg_waiting_enum;
+
+typedef enum
+{
+ SMSLIB_VPF_NOT_PRESENT = 0x00,
+ SMSLIB_VPF_ENHANCED = 0x01,
+ SMSLIB_VPF_RELATIVE = 0x02,
+ SMSLIB_VPF_ABSOLUTE = 0x03
+
+} smslib_vp_format_enum;
+
+typedef enum
+{
+ SMSLIB_DEFAULT_DCS = 0x00, /* GSM 7-bit */
+ SMSLIB_8BIT_DCS = 0x04, /* 8-bit */
+ SMSLIB_UCS2_DCS = 0x08, /* UCS2 */
+ SMSLIB_RESERVED_DCS = 0x0c, /* reserved alphabet,
+ currently, MMI shall display "not support alphabet"
+ or "cannot display" when receive dcs indicated this value */
+ SMSLIB_EXT_DCS = 0x10 /* Special dcs for non-standard character,
+ used by MMI and EMS */
+} smslib_dcs_enum;
+
+typedef enum
+{
+ /* Mailbox */
+ SMSLIB_LINE_1 = 0,
+ SMSLIB_LINE_2 = 1,
+ SMSLIB_MAX_LINES = 2,
+
+ /* SMS profile parameter */
+ SMSLIB_PROFILE_1 = 0,
+ SMSLIB_PROFILE_2 = 1,
+ SMSLIB_PROFILE_3 = 2,
+ SMSLIB_PROFILE_4 = 3, /* SMSAL_MAX_PROFILE_NUM (4) */
+ SMSLIB_PROFILE_NONE = 0xff /* invalid profile ID */
+} smslib_dest_no_enum;
+
+typedef enum
+{
+ SMSLIB_DEFAULT_PID = 0x00, /* Text SMS */
+ SMSLIB_TELEX_PID = 0x21, /* Telex */
+ SMSLIB_G3_FAX_PID = 0x22, /* Group 3 telefax */
+ SMSLIB_G4_FAX_PID = 0x23, /* Group 4 telefax */
+ SMSLIB_VOICE_PID = 0x24, /* Voice Telephone */
+ SMSLIB_ERMES_PID = 0x25, /* ERMES (European Radio Messaging System) */
+ SMSLIB_PAGING_PID = 0x26, /* National Paging system */
+ SMSLIB_X400_PID = 0x31, /* Any public X.400-based message system */
+ SMSLIB_EMAIL_PID = 0x32 /* E-mail SMS */
+} smslib_pid_enum;
+
+#endif // __SMS_STORAGE_BY_MMI__
+
+#endif
diff --git a/mcu/interface/protocol/general/smu_common_enums.h b/mcu/interface/protocol/general/smu_common_enums.h
new file mode 100644
index 0000000..a96d31f
--- /dev/null
+++ b/mcu/interface/protocol/general/smu_common_enums.h
@@ -0,0 +1,579 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * sim_trc.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is trace map definition.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+/*Kinki*/
+#ifndef _SIM_COMMON_ENUMS_H
+
+#define _SIM_COMMON_ENUMS_H
+#include "sim_common_enums.h"
+//#include "custom_mmi_default_value.h"
+//#include "common_nvram_editor_data_item.h"
+#include "nvram_editor_data_item.h"
+#include "l4_nvram_def.h"
+#include "l4_nvram_editor.h"
+//#include "kal_non_specific_general_types.h"
+//#include "ps2sim_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+#endif /* _SIM_COMMON_ENUMS_H */
+
+
+#ifndef _SMU_COMMON_ENUMS_H
+#define _SMU_COMMON_ENUMS_H
+
+#include "custom_nvram_sec.h"
+
+#define NUM_OF_BYTE_LP 2
+#define MAX_LP_NUM 5
+#define NUM_OF_BYTE_ECC 3
+#define MAX_ECC_NUM 5
+#define NUM_OF_BYTE_NP NVRAM_EDITOR_NUM_OF_BYTE_NP
+#define NUM_NP NVRAM_EDITOR_NUM_NP
+#define NUM_OF_BYTE_NSP NVRAM_EDITOR_NUM_OF_BYTE_NSP
+#define NUM_NSP NVRAM_EDITOR_NUM_NSP
+#define NUM_OF_BYTE_KEY NVRAM_EDITOR_NUM_OF_BYTE_KEY
+//#define NUM_GID NVRAM_EDITOR_NUM_GID
+#define NUM_OF_BYTE_IMSI NVRAM_EDITOR_NUM_OF_BYTE_IMSI
+#define NUM_OF_BYTE_PLMN 3
+#define NUM_OF_PUCT_DIGIT 18
+#define NUM_OF_BYTE_ICCID NVRAM_EDITOR_NUM_OF_BYTE_ICCID
+
+#ifdef __SMS_DEPERSONALIZATION__
+#define LEN_OF_BYTE_SMS_DEPER 88 //Kinki: [MAUI_01255000]
+#endif
+
+// UICC unlock
+#define SML_ENC_NONCE_LEN 256+1 // 256 byte + 1 byte('/0')
+#define SML_MAX_RAW_NONCE_LEN 256
+#define SML_RAND_STRING_LEN 80
+#define SML_RAW_NONCE_LEN SML_RAND_STRING_LEN+15 // IMEI: 15 digit, MEID : 14 digit + 'Z'
+
+/* msg ID */
+
+typedef enum
+{
+ SMU_PHONELOCK_REQUIRED,
+ SMU_CHV1_NOT_REQUIRED,
+ SMU_CHV1_REQUIRED,
+ SMU_UBCHV1_REQUIRED,
+ SMU_SIM_BLOCKED,
+ SMU_SMT_TP_HALT,
+}smu_chv1_phonelock_status_enum;
+
+typedef enum
+{
+ SMU_CHV1,
+ SMU_CHV2
+}smu_chv_type_enum;
+
+typedef enum
+{
+ CHV_RETRY_ALLOW,
+ CHV_VERIFIED,
+ CHV_DISABLED,
+ CHV_BLOCKED,
+ CHV_DEAD,
+ CHV_INVALID_TYPE,
+ CHV_NOTINITED
+}smu_chv_status_enum;
+
+
+typedef enum
+{
+ SEARCH_RECORD=162,
+ READ_BINARY=176,
+ READ_RECORD=178,
+ GET_RESPONSE=192,
+ UPDATE_BINARY=214,
+ UPDATE_RECORD=220,
+ STATUS_CMD=242
+}smu_sim_access_cmd_enum;
+
+
+typedef enum
+{
+ SMU_UPDATE_ACMMAX,
+ SMU_UPDATE_ACM,
+ SMU_UPDATE_PUCT,
+ SMU_SWITCH_BDN
+}smu_access_item_enum;
+
+typedef enum
+{
+ SMU_ACCESS_NOT_ALLOW,
+ SMU_VERIFY_CHV1,
+ SMU_VERIFY_CHV2
+}smu_access_condition_enum;
+
+typedef enum
+{
+ ID_READY,
+ ID_SIM_PIN1,
+ ID_SIM_PUK1,
+ ID_PH_SIM_PIN,
+ ID_PH_FSIM_PIN,
+ ID_PH_FSIM_PUK,
+ ID_SIM_PIN2,
+ ID_SIM_PUK2,
+ ID_PH_NET_PIN,
+ ID_PH_NET_PUK,
+ ID_PH_NETSUB_PIN,
+ ID_PH_NETSUB_PUK,
+ ID_PH_SP_PIN,
+ ID_PH_SP_PUK,
+ ID_PH_CORP_PIN,
+ ID_PH_CORP_PUK,
+ ID_PH_LINK_NS_SP_PIN,
+ ID_PH_LINK_NS_SP_PUK,
+ ID_PH_LINK_SIM_C_PIN,
+ ID_PH_LINK_SIM_C_PUK,
+ ID_PHONELOCK,
+ ID_SIM_BLOCKED,
+ ID_SIM_BUSY, /* This add for WM CPIN? with SML check */
+ ID_SIM_PIN_DEFER,
+ ID_CARD_REBOOT,
+ ID_CARD_RESTRICTED,
+ ID_EMPTY_EUICC,
+ ID_UNKNOWN //link_SML
+}smu_pending_password_id_enum;
+
+typedef enum
+{
+ SMU_WRITE_PUCT_RMI,
+ SMU_WRITE_PUCT_LMI,
+ SMU_SIM_ACCESS_CMD,
+ SMU_WRITE_PLMN_SEL_ADD_RMI,
+ SMU_WRITE_PLMN_SEL_REMOVE_RMI,
+ SMU_WRITE_PLMN_SEL_REPLACE_RMI,
+ SMU_WRITE_PLMN_SEL_ADD_LMI,
+ SMU_WRITE_PLMN_SEL_REMOVE_LMI,
+ SMU_WRITE_PLMN_SEL_REPLACE_LMI,
+ SMU_READ_PUCT_RMI,
+ SMU_READ_PLMN_SEL_RMI,
+ SMU_READ_PUCT_LMI,
+ SMU_READ_PLMN_SEL_LMI,
+ SMU_READ_CSP_RMI,
+ SMU_READ_CSP_LMI,
+ SMU_READ_CHANGED_PLMNSEL,
+ SMU_READ_CHANGED_PUCT,
+ SMU_WRITE_DCK
+}smu_write_access_id_enum;
+
+typedef enum {
+ SMU_CI_DISABLE,
+ SMU_CI_ENABLE,
+ SMU_CI_NONE
+} smu_cipher_ind_enum;
+
+/*Kinki : revised ECC*/
+typedef enum
+{
+ SMU_SIM_UNKNOWN, //default value
+ SMU_SIM_NOT_INSERTED,
+ SMU_SIM_INSERTED
+}smu_sim_inserted_enum;
+
+#ifdef __SMS_DEPERSONALIZATION__ //Kinki: [MAUI_01255000]
+
+typedef enum
+{
+ SMU_SML_LENGTH_TOO_SHORT,
+ RFU
+}smu_sms_depersonalization_enum;
+
+#endif
+
+typedef struct {
+ kal_uint8 mcc2;
+ kal_uint8 mcc1;
+ kal_uint8 mnc3;
+ kal_uint8 mcc3;
+ kal_uint8 mnc2;
+ kal_uint8 mnc1;
+ kal_uint8 access_tech[2];
+} smu_plmn_id_struct;
+
+typedef enum
+{
+ SML_LOCK_RULE_NONE = 0,
+ SML_LOCK_RULE_SIM1_SLOT_LOCKED_ONLY = 1,
+ SML_LOCK_RULE_SIM2_SLOT_LOCKED_ONLY = 2,
+ SML_LOCK_RULE_ALL_SIM_SLOT_LOCKED = 3,
+ SML_LOCK_RULE_LINK_LOCK_BY_SIM1_SLOT = 4,
+ SML_LOCK_RULE_LINK_LOCK_BY_SIM2_SLOT = 5,
+ SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT = 6,
+ SML_LOCK_RULE_LINK_LOCK_RJIO_LOCK = 7, // Lock on protocol 1
+ SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT_REVERSE = 8,
+ SML_LOCK_RULE_LINK_LOCK_BY_ALL_SIM_SLOT_SRVLCK = 9,
+ SML_LOCK_RULE_VZW_NETWORK_LOCK = 10,
+ SML_LOCK_RULE_LOCK_BY_OP129 = 11, // KDDI RSU
+ SML_LOCK_RULE_TMO_NETWORK_LOCK = 12,
+ SML_LOCK_RULE_ATT_NETWORK_LOCK = 13,
+ SML_LOCK_RULE_SPR_NETWORK_LOCK = 14,
+
+ SML_LOCK_RULE_MAX,
+ SML_LOCK_RULE_LEGACY_MODE = 255,
+ SML_LOCK_RULE_UNKNOWN = 256,
+} sml_lock_rule_enum;
+
+typedef enum
+{
+ SML_LOCK_SUB_RULE_SLOT_COMMON_RULE,
+ SML_LOCK_SUB_RULE_SLOT_INDEPENDENT_RULE,
+ SML_LOCK_SUB_RULE_LS_FULL_SERVICE,
+ SML_LOCK_SUB_RULE_LS_CS_ONLY_SERVICE,
+ SML_LOCK_SUB_RULE_LS_VOICE_ONLY_SERVICE,
+ SML_LOCK_SUB_RULE_UNKNOWN
+} sml_lock_sub_rule_enum;
+
+typedef enum
+{
+ SML_LOCK_SPR_SUB_RULE_DEFAULT,
+ SML_LOCK_SPR_SUB_RULE_BMVNO
+} sml_lock_spr_sub_rule_enum;
+
+typedef enum
+{
+ SML_LOCK_TMO_SUB_RULE_MOVIAL,
+ SML_LOCK_TMO_SUB_RULE_TRUSTONIC
+} sml_lock_tmo_sub_rule_enum;
+
+#ifdef __CUST_SML_RULE__
+
+typedef enum
+{
+ SML_LOCK_CUST_CODE_NONE = 0,
+
+ SML_LOCK_CUST_CODE_CUST_X,
+ SML_LOCK_CUST_CODE_SIZE
+} sml_lock_cust_code_enum;
+
+typedef enum
+{
+ /* SML_LOCK_CUST_CODE_CUST_X */
+ SML_LOCK_CUST_RULE_CUST_X_RULE_XXX = 0,
+ SML_LOCK_CUST_RULE_CUST_X_RULE_SIZE,
+
+ SML_LOCK_CUST_RULE_NONE = 0xFF
+} sml_lock_cust_rule_enum;
+
+/* Order and Existence should be aligned with sml_lock_cust_code_enum */
+#define SML_GBLOB_MAX_CUST_RULE_LIST_END 0
+#define SML_GBLOB_MAX_CUST_RULE_LIST { \
+ 0, /* SML_LOCK_CUST_CODE_NONE */ \
+ \
+ SML_LOCK_CUST_RULE_CUST_X_RULE_SIZE, /* SML_LOCK_CUST_CODE_CUST_X */ \
+ SML_GBLOB_MAX_CUST_RULE_LIST_END \
+ }
+
+extern const kal_uint8 sml_gblob_max_cust_rule[SML_LOCK_CUST_CODE_SIZE + 1];
+
+#endif /* __CUST_SML_RULE__ */
+
+typedef enum
+{
+ SML_RULE_UNKNOWN,
+ SML_RULE_FULL_SERVICE,
+ SML_RULE_CS_ONLY_SERVICE,
+ SML_RULE_PS_ONLY_SERVICE,
+ SML_RULE_ECC_ONLY_SERVICE,
+ SML_RULE_NO_SERVICE,
+ SML_RULE_VOICE_ONLY_SERVICE, // Modem still have full service, AP will block data service (except VoLTE call)
+} sml_lock_rule_policy_enum;
+
+typedef enum
+{
+ SML_STATUS_SIM_UNKNOWN,
+ SML_STATUS_SIM_VALID,
+ SML_STATUS_SIM_INVALID,
+ SML_STATUS_SIM_ABSENT
+} sml_state_is_valid_sim_enum;
+
+typedef enum
+{
+ LINK_SML_BUSY_SIM,
+ LINK_SML_VALID_SIM,
+ LINK_SML_INVALID_SIM,
+ LINK_SML_INVALID_TO_VALID_SIM,
+ LINK_SML_VALID_TO_INVLAID_SIM,
+ LINK_SML_UNKNOWN_SIM
+} link_sml_valid_sim_enum;
+
+
+typedef enum
+{
+ LINK_SML_IN_SERVICE,
+ LINK_SML_NO_SERVICE,
+ LINK_SML_UNKNOWN_SERVICE
+} link_sml_srv_state_enum;
+
+typedef enum
+{
+ LINK_SML_CHECK_ALL_SIM_LOCKED,
+ LINK_SML_CHECK_WAITING,
+ LINK_SML_CHECK_VALID_SIM_EXIST,
+ LINK_SML_CHECK_NO_VALID_SIM_EXIST,
+ LINK_SML_CHECK_UNKNOWN
+} link_sml_check_enum;
+
+typedef enum
+{
+ DSML_SIMLOCK_ENCRYPTED_DATA_RECEIVED_SUCCESS = 0,
+ DSML_SIMLOCK_ENCRYPTED_DATA_RECEIVED_ERROR = 1,
+ DSML_SIMLOCK_ENCRYPTED_DATA_DELETED_SUCCESS = 2,
+ DSML_SIMLOCK_ENCRYPTED_DATA_DELETED_ERROR = 3,
+ DSML_SIMLOCK_ENCRYPTED_DATA_READ_SUCCESS = 4,
+ DSML_SIMLOCK_ENCRYPTED_DATA_READ_ERROR = 5,
+ DSML_SIMLOCK_INVALID_IMEI = 6,
+ DSML_SIMLOCK_CONFIGURE_SUCCESS = 7,
+ DSML_SIMLOCK_DUPLICATE_SETTING_ERROR = 8,
+ DSML_SIMLOCK_MAX_RETRIES_REACHED = 9,
+ DSML_SIMLOCK_INVALID_LOCK_DATA = 10,
+ DSML_SIMLOCK_PARAMETER_UNSUPPORTED = 11,
+ DSML_SIMLOCK_CK_ERROR = 12,
+ DSML_SIMLOCK_MEMORY_ERROR = 13,
+ DSML_SIMLOCK_SIGN_ERROR = 14,
+ DSML_SIMLOCK_DECRYPT_ERROR = 15,
+ DSML_SIMLOCK_UNKNOWN_ERROR = 16,
+} dsml_result_enum;
+
+typedef enum
+{
+ DSML_OP_ADD_LOCK_WITHOUT_CK = 0,
+ DSML_OP_UNLOCK_WITHOUT_CK = 1,
+ DSML_OP_PERMANENTLY_UNLOCK_WITHOUT_CK = 2,
+ DSML_OP_ADD_LOCK = 3,
+ DSML_OP_UNLOCK_WITH_CK = 4,
+ DSML_OP_REPLACED_CARD = 5,
+ DSML_OP_UPDATE_SIMLOCK = 6,
+ DSML_OP_UNKNOWN = 7,
+} dsml_op_enum;
+
+typedef struct
+{
+ kal_uint8 cat_type;
+ kal_uint8 autolock;
+ kal_uint8 blacklist_op;
+ kal_uint8 blacklist_len;
+ kal_uint8 blacklist[DSML_MAX_BL_LEN];
+} dsml_category_data_struct;
+
+typedef struct
+{
+ dsml_op_enum operation;
+ kal_uint8 slot;
+ kal_uint8 imei[15];
+ kal_uint8 slot_policy;
+ kal_uint8 sub_policy[2]; //sub_policy[0] : 1st byte, sub_policy[1] : 2nd byte
+ kal_uint8 ck_length;
+ kal_uint8 ck[32];
+ kal_uint8 hck_length;
+ kal_uint8 hck[64];
+ kal_uint8 salt_length;
+ kal_uint8 salt[32];
+ kal_uint8 iteration[4];
+ kal_uint32 max_retry_cnt;
+ kal_uint8 num_of_cat;
+ dsml_category_data_struct cat_data[7];
+} dsml_simlock_data_struct;
+
+/* UICC Unlock Validation Mode */
+typedef enum
+{
+ SMU_UULK_VALID_CHECK_AND_UPDATE,
+ SMU_UULK_VALID_CHECK_ONLY,
+ SMU_UULK_VALID_UNKNOWN
+} smu_uulk_valid_mode_enum;
+
+typedef enum
+{
+ SMU_TRC_SIM_STATUS_ENUM,
+ SMU_TRC_PENDING_PASSWD_ENUM,
+ SMU_TRC_ENUM_UNKNOWN
+} smu_trc_enum_type_enum;
+
+
+typedef enum{
+ SML_OP129_NULL,
+ SML_OP129_LOCK,
+ SML_OP129_UNLOCK,
+ SML_OP129_NO_CHECK,
+}smu_op129_lock_enum;
+
+extern kal_bool l4csmu_read_plmn_sel(sim_file_index_enum file_idx, kal_uint8 start_index, kal_uint16 * num, smu_plmn_id_struct * plmn_ptr);
+//extern smu_chv_status_enum l4csmu_get_chv_status(smu_chv_type_enum type);
+extern kal_bool l4csmu_get_puct_value(kal_uint8 *currency,kal_uint8 *ppu);
+
+//SMU only
+/*Kinki remove(useless function)*/
+//extern void l4csmu_get_preferred_language(kal_uint8 *num,sim_lp_file_type_enum *file_type, kal_uint8 *lp_data);
+//extern void l4csmu_get_ecc(kal_uint8 *num_ecc, sim_ecc_entry_struct *ecc_entry);
+//extern void l4csmu_get_ecc(kal_uint8 *num, kal_uint8 *ecc_data);
+extern void l4csmu_get_imsi(kal_uint8 *imsi_data);
+extern void l4csmu_get_imsi_by_idx(kal_uint8 *imsi_data, kal_uint8 simInterface);
+
+//SMU only
+/*Kinki remove(useless function)*/
+//extern smu_access_condition_enum l4csmu_get_sim_access_info(smu_access_item_enum access_item);
+extern smu_pending_password_id_enum l4csmu_get_pending_password_id(void);
+//link_SML
+extern smu_pending_password_id_enum l4csmu_get_pending_password_id_ext(sim_interface_enum sim_id);
+extern smu_pending_password_id_enum l4csmu_app_get_pending_password_id(kal_uint8);
+extern kal_bool l4csmu_get_pending_lock(smu_pending_password_id_enum password, smu_security_type_enum *type);
+extern void l4csmu_get_chv_status_ext(sim_chv_status_struct *chv_status,sim_interface_enum sim_id);
+extern kal_bool l4csmu_is_normal_registration_allowed(sim_interface_enum ps_id);
+
+
+/*Kinki remove(useless function)*/
+//extern kal_uint16 l4csmu_test_preferred_plmn (void); //Benson 20040407 modified for mtk00714's request
+extern sim_dn_enum l4csmu_get_dial_mode(void);
+extern sim_dn_enum l4csmu_get_dial_mode_by_ps_id(protocol_id_enum ps_id);
+//Kinki remove for MAUI_00632199
+#if 0
+#ifdef __GEMINI__
+/* under construction !*/
+#else
+/* under construction !*/
+#endif
+#endif
+
+extern kal_bool check_is_usim(void);
+
+#if defined(__GEMINI__)
+extern smu_sim_inserted_enum is_sim_inserted(kal_uint8 simInterface);
+#else
+extern smu_sim_inserted_enum is_sim_inserted(void);
+#endif
+
+extern kal_bool smu_update_is_simcard_replaced(kal_uint8 *iccid, kal_uint8 simInterface);
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern smu_sim_status_enum smu_update_is_sim_replaced(kal_uint8 *imsi, kal_uint8 simInterface);
+#ifdef __cplusplus
+}
+#endif
+
+extern smu_cipher_ind_enum l4csmu_get_cipher_ind_status(void);
+
+extern kal_bool l4csmu_sat_ready_req(kal_bool trigger_by_user);
+
+extern kal_bool l4csmu_plmn_read_of_File_index(sim_file_index_enum file_idx, kal_uint8 simInterface, kal_uint16 * fileSize, kal_uint8 * file_data);
+
+#ifdef __TRACFONE_SML__
+extern kal_bool is_any_sml_locked(kal_uint8 simInterface);
+#endif
+extern kal_bool smu_is_lte_only_customization_supported();
+
+#define SML_MCC_LEN 3
+#define SML_MCC_MNC_LEN 6
+extern kal_uint8 sml_sprint_mcc_mnc_list[][SML_MCC_MNC_LEN+1];
+extern kal_uint8 sml_us_mcc_list[][SML_MCC_LEN+1];
+extern kal_uint8 sml_bmvno_mcc_mnc_list[][SML_MCC_MNC_LEN+1];
+extern kal_uint8 sml_uicc_lock_get_list_num(kal_uint8 lock_code, kal_uint8 ps_id);
+extern kal_bool sml_is_bmvno_plmn_gid(kal_uint8* mccmnc, kal_uint8 is_valid_gid1, kal_uint8* gid1);
+extern kal_bool custom_sml_is_uicc_unlock_enabled(void);
+extern kal_bool sml_uicc_lock_checking(kal_uint8 code, kal_uint8* imsi);
+extern kal_uint8 l4csmu_get_unlock_code();
+extern void l4csmu_gen_nonce(kal_uint8* device_id, kal_uint32 device_id_len, kal_uint8* nonce, kal_uint32* nonce_len);
+extern kal_bool l4csmu_validate_signature(smu_uulk_valid_mode_enum mode, kal_uint8 unlock_code, kal_uint8* signature, kal_uint32 signature_len);
+
+extern void sml_lock_rule_and_status_update_ind(kal_uint8 simInterface);
+extern sml_lock_rule_policy_enum sml_query_legal_service(kal_uint8 simInterface);
+extern void sml_update_legal_service(sml_lock_rule_policy_enum new_policy,
+ sml_state_is_valid_sim_enum is_sim_valid,
+ kal_uint8 simInterface);
+extern sml_lock_rule_enum sml_query_sml_lock_rule();
+#ifdef __CUST_SML_RULE__
+extern kal_uint8 sml_query_sml_cust_code(void);
+extern kal_uint8 sml_query_sml_cust_rule(void);
+#endif
+extern kal_uint16 sml_query_sml_lock_sub_rule();
+extern sml_lock_sub_rule_enum sml_query_slot_lock_context_rule();
+extern sml_lock_sub_rule_enum sml_query_linksml_invalid_sim_rule();
+extern kal_bool sml_is_gblob_enabled(void);
+extern kal_bool sml_is_linksml_enabled(void);
+extern kal_bool sml_is_internal_gblob_lock_rule(sml_lock_rule_enum lock_rule);
+extern void sml_force_unlock_gblob_dev_lock();
+
+extern kal_bool l4csmu_sl_get_dual_sim_lock_control_slot1_only_feature_supported(void);
+extern kal_bool smu_is_sml_in_sl_locked(void);
+
+extern void sml_upgrade_service_req(void);
+extern void sml_update_service_state(link_sml_srv_state_enum state, kal_uint8 simInterface);
+extern dsml_result_enum dynamic_simmelock_hdlr(dsml_simlock_data_struct* simlock_data);
+extern kal_uint8 l4csmu_get_sml_cat_algo_type_with_source(sml_cat_enum cat, kal_uint8 source);
+extern kal_uint8 l4csmu_get_sml_cat_algo_type(sml_cat_enum cat);
+extern sml_state_is_valid_sim_enum sml_query_sml_sim_state(kal_uint8 simInterface);
+extern kal_bool sml_check_ctrlslot_if_all_cat_unlock_state(kal_uint8 sml_lock_rule);
+
+extern kal_bool smu_check_is_iccid_valid(kal_uint8 ps_id);
+
+extern kal_bool sml_vzw_rsu_is_need_relock(kal_uint8 ps_id);
+
+extern void l4csmu_get_nonce_sign_status_req(kal_uint8* nonce_status, kal_uint8* sign_status);
+#endif
+
diff --git a/mcu/interface/protocol/general/tcm_api.h b/mcu/interface/protocol/general/tcm_api.h
new file mode 100644
index 0000000..f0c0e2d
--- /dev/null
+++ b/mcu/interface/protocol/general/tcm_api.h
@@ -0,0 +1,306 @@
+/*****************************************************************************
+* 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_API_H
+#define _TCM_API_H
+
+//------------------------------ suggest Add ------------------------------
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "mcd_l3_inc_gprs_struct.h"
+
+/* Poying: Moved from tcm_qos_api.h */
+typedef enum
+{
+ TCM_REQ_QOS = 0,
+ TCM_MIN_QOS,
+ TCM_NEG_QOS
+} tcm_qos_type_enum;
+
+typedef enum {
+ TCM_R6_QOS = 0,
+ TCM_R8_QOS = 1,
+ TCM_R11_QOS = 2
+} tcm_qos_mode_enum;
+
+typedef enum {
+ TCM_CID_TYPE_UNKNOWN,
+ TCM_CID_TYPE_PRIMARY,
+ TCM_CID_TYPE_SECONDARY,
+} tcm_cid_type_enum;
+
+/* Check tcm_qos_api.c for implementations. */
+void tcm_qos_R99_to_R98( qos_struct *s, tcm_qos_type_enum qos_type );
+
+/* Check l4c2tcm_func.c for implementations. */
+kal_bool l4ctcm_decode_sdu_size(kal_uint16 val, kal_uint16 *size_ptr);
+
+#ifdef __REL6__
+kal_bool l4ctcm_encode_bit_rate(kal_uint32 rate, kal_uint32 *p_val);
+kal_bool l4ctcm_decode_bit_rate(kal_uint32 val, kal_uint32 *p_rate);
+#else // #ifdef __REL6__
+kal_bool l4ctcm_encode_bit_rate(kal_uint16 rate, kal_uint16 *p_val);
+kal_bool l4ctcm_decode_bit_rate(kal_uint16 val, kal_uint16 *p_rate);
+#endif // ~ #ifdef __REL6__
+
+kal_bool l4ctcm_decode_apn_ambr_bit_rate(kal_uint8 val, kal_uint8 val_ext, kal_uint8 val_ext2, kal_uint32 *p_rate);
+kal_bool l4ctcm_decode_transfer_delay(kal_uint16 val, kal_uint16 *p_delay);
+
+/* Check tcm_api.c for implementations. */
+kal_bool tcm_pdp_decode_qos_transfer_delay(kal_uint16 val, kal_uint16 *p_delay);
+kal_bool tcm_pdp_decode_qos_bit_rate(kal_uint16 val, kal_uint32 *p_rate);
+kal_bool tcm_is_qci_non_gbr(kal_uint8 qci);
+
+kal_uint8 tcm_get_cid_by_ebi(kal_uint8 sim_interface, kal_uint8 ebi); /* called by tftlib */
+kal_uint8 tcm_get_ebi_by_cid(kal_uint8 sim_interface, kal_uint8 cid); /* called by tftlib */
+kal_uint8 tcm_get_primary_cid_by_cid(kal_uint8 sim_interface, kal_uint8 cid); /* called by tftlib */
+tcm_cid_type_enum tcm_get_cid_type_by_cid(kal_uint8 sim_interface, kal_uint8 cid); /* called by tftlib */
+kal_bool tcm_is_cid_not_inactive(kal_uint8 sim_interface, kal_uint8 cid); /* called by tftlib */
+kal_uint8 tcm_get_cid_by_psi(kal_uint8 sim_interface, kal_uint8 psi);
+
+/*
+ * Data account
+ */
+typedef struct
+{
+ // must align with qos_struct
+ // Please see 3GPP TS24.008 Table 10.5.156 Quality of service information element for detail explaination
+
+ kal_uint8 qos_length; /* QOS identifer bit, this value must be 16, or the GPRS bearer will not accept */
+ kal_uint8 unused1; /* Unused Bit */
+
+ kal_uint8 delay_class;
+ /*
+ * Delay Class
+ * 001 Delay Class 1
+ * 010 Delay Class 2
+ * 011 Delay Class 3
+ * 100 Delay Class 4 (best effort)
+ * ...
+ */
+
+ kal_uint8 reliability_class;
+ /*
+ * Reliability Class
+ * 001 Interpreted as 010
+ * 010 UnACK GTP, ACK LLC, ACK RLC, Protected Data
+ * 011 UnACK GTP, UnACK LLC, ACK RLC, Protected Data
+ * 100 UnACK GTP, UnACK LLC, UnACK RLC, Prottected Data
+ * 101 UnACK GTP, UnACK LLC, UnACK RLC, Unprotected Data
+ * ...
+ */
+
+ kal_uint8 peak_throughput;
+ /*
+ * Peak Throughput
+ * 0001 Up to 1000 octet/s
+ * 0010 Up to 2000 octet/s
+ * 0011 Up to 4000 octet/s
+ * 0100 Up to 8000 octet/s
+ * 0101 Up to 16000 octet/s
+ * 0110 Up to 32000 octet/s
+ * 0111 Up to 64000 octet/s
+ * 1000 Up to 128000 octet/s
+ * 1001 Up to 256000 octet/s
+ * ...
+ */
+
+ kal_uint8 unused2; /* Unused Bit */
+
+ kal_uint8 precedence_class;
+ /*
+ * Precedence Class
+ * 001 High Priority
+ * 010 Normal Priority
+ * 011 Low Priority
+ * ...
+ */
+
+ kal_uint8 unused3; /* Unused Bit */
+
+ kal_uint8 mean_throughput;
+ /*
+ * Mean Throughput
+ * 00001 Up to 100 octet/h
+ * 00010 Up to 200 octet/h
+ * 00011 Up to 500 octet/h
+ * ...
+ */
+
+ kal_uint8 traffic_class;
+ /*
+ * Traffic Class
+ * 001 Conversational class
+ * 010 Streaming class
+ * 011 Interactive class
+ * 100 Background class
+ * ...
+ */
+
+ kal_uint8 delivery_order;
+ /*
+ * Delivery Order
+ * 01 With delivery order (yes)
+ * 10 Without delivery order (no)
+ * ...
+ */
+
+ kal_uint8 delivery_of_err_sdu;
+ /*
+ * Delivery of erroneous SDUs
+ * 001 No detect (-)
+ * 010 Erroneous SDUs are delivered (yes)
+ * 011 Erroneous SDUs are not delivered (no)
+ * ...
+ */
+
+ kal_uint8 max_sdu_size;
+ /*
+ * Maximum SDU Size
+ * ...
+ * 10010111 1502 octets
+ * 10011000 1510 octets
+ * 10011001 1520 octets
+ * ...
+ */
+
+ kal_uint8 max_bitrate_up_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 max_bitrate_down_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 residual_bit_err_rate;
+ /*
+ * Residual Bit Error Rate
+ * 0001 5*10^-2
+ * 0010 1*10^-2
+ * 0011 5*10^-3
+ * 0100 4*10^-3
+ * 0101 1*10^-3
+ * 0110 1*10^-4
+ * ...
+ */
+
+ kal_uint8 sdu_err_ratio;
+ /*
+ * SDU Error Ratio
+ * 0001 1*10^-2
+ * 0010 7*10^-3
+ * 0011 1*10^-3
+ * 0100 1*10^-4
+ * 0101 1*10^-5
+ * 0110 1*10^-6
+ * ...
+ */
+
+ kal_uint8 transfer_delay; // see 24.008 Table 10.5.156
+
+ kal_uint8 traffic_hndl_priority;
+ /*
+ * Traffic Handling Priority
+ * 01 Priority level 1
+ * 10 Priority level 2
+ * 11 Priority level 3
+ * ...
+ */
+
+ kal_uint8 guarntd_bit_rate_up_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 guarntd_bit_rate_down_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 unused4; /* Unused Bit */
+
+ kal_uint8 signalling_indication;
+ /*
+ * Signaling Indication
+ * 0 Not optimised for signalling traffic
+ * 1 Optimised for signalling traffic
+ * ...
+ */
+
+ kal_uint8 source_statistics_descriptor;
+ /*
+ * Source Statistics Descriptor
+ * 0000 Unknown
+ * 0001 Speech
+ * ...
+ */
+
+ kal_uint8 ext_max_bitrate_down_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 ext_guarntd_bit_rate_down_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 ext_max_bitrate_up_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 ext_guarntd_bit_rate_up_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 ext2_max_bitrate_down_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 ext2_guarntd_bit_rate_down_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 ext2_max_bitrate_up_lnk; // see 24.008 Table 10.5.156
+
+ kal_uint8 ext2_guarntd_bit_rate_up_lnk; // see 24.008 Table 10.5.156
+} nvram_editor_qos_struct;
+
+//mtk04121
+typedef struct {
+ kal_uint8 qci;
+ kal_uint8 unused1;
+ kal_uint8 unused2;
+ kal_uint8 unused3;
+ kal_uint8 max_bitrate_up_lnk; // see 24.008 Table 10.5.156
+ kal_uint8 max_bitrate_down_lnk; // see 24.008 Table 10.5.156
+ kal_uint8 guarntd_bit_rate_up_lnk; // see 24.008 Table 10.5.156
+ kal_uint8 guarntd_bit_rate_down_lnk; // see 24.008 Table 10.5.156
+ kal_uint8 ext_max_bitrate_up_lnk; // see 24.008 Table 10.5.156
+ kal_uint8 ext_max_bitrate_down_lnk; // see 24.008 Table 10.5.156
+ kal_uint8 ext_guarntd_bit_rate_up_lnk; // see 24.008 Table 10.5.156
+ kal_uint8 ext_guarntd_bit_rate_down_lnk; // see 24.008 Table 10.5.156
+ kal_uint8 ext2_max_bitrate_up_lnk;
+ kal_uint8 ext2_max_bitrate_down_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_down_lnk;
+} nvram_editor_eps_qos_struct;
+
+
+/* Poying: MSBB (MAUI_03028371). */
+typedef struct
+{
+ nvram_editor_qos_struct req_qos;
+ nvram_editor_qos_struct min_qos;
+} tcm_ps_qos_profile_struct;
+
+
+#endif // ~ #ifndef _TCM_API_H
diff --git a/mcu/interface/protocol/general/tft_pf_enum.h b/mcu/interface/protocol/general/tft_pf_enum.h
new file mode 100644
index 0000000..de2d5d0
--- /dev/null
+++ b/mcu/interface/protocol/general/tft_pf_enum.h
@@ -0,0 +1,2194 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * tft_pf_enum.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 09 25 2019 tc.chang
+ * [MOLY00442498] [Gen97][PERF] Assert removal
+ *
+ * 06 03 2019 tc.chang
+ * [MOLY00407691] [Gen97] Update debug trace.
+ *
+ * 10 01 2013 moja.hsu
+ * [MOLY00039686] [MT6290E1][Ericsson][Pre-IOT][MM] TC 7.2.3.4.30 Assert at tft_pf#719
+ * drop corrupted fragment v6 packet.
+ *
+ ****************************************************************************/
+/*
+ * =====================================================================================
+ *
+ * Filename: tft_pf_enum.h
+ *
+ * Description: TFT_PF (TFT Packet filter)
+ * ENUM values for trace.
+ *
+ * Created: 2012/3/19 �W�� 11:20:22
+ *
+ * Author: mtk01641 (moja)
+ * =====================================================================================
+ */
+#ifndef TFT_PF_ENUM_INC
+#define TFT_PF_ENUM_INC
+
+#include "tftlib_common_enum.h"
+
+typedef enum
+{
+ TFT_ERROR_OK,
+ TFT_ERROR_EPSB_IS_ACTV,
+ TFT_ERROR_EPSB_IS_NOT_ACTV,
+ TFT_ERROR_NO_PKT_FILTER_RESOURCE,
+ TFT_ERROR_NOT_FOUND_PKT_FILTER,
+ TFT_ERROR_WRONG_ARGUMENT,
+}tft_pf_error_code_e;
+
+typedef enum
+{
+ TFTPF_EPSB_FLAG_NONE = 0,
+ /* The EPSB is active? */
+ TFTPF_EPSB_FLAG_ACTV = 0x1,
+ /*
+ * Is the EPSB is in IP FRAGMENT state.
+ * EPSB will keep in this state until it get the last fragment.
+ */
+ TFTPF_EPSB_FLAG_IPV4_FRAG = 0x2,
+ TFTPF_EPSB_FLAG_IPV6_FRAG = 0x4,
+
+ TFTPF_EPSB_FLAG_ACTV_IPV4_FRAG = TFTPF_EPSB_FLAG_ACTV | TFTPF_EPSB_FLAG_IPV4_FRAG,
+ TFTPF_EPSB_FLAG_ACTV_IPV6_FRAG = TFTPF_EPSB_FLAG_ACTV | TFTPF_EPSB_FLAG_IPV6_FRAG,
+ TFTPF_EPSB_FLAG_IPV4_FRAG_IPV6_FRAG = TFTPF_EPSB_FLAG_IPV4_FRAG | TFTPF_EPSB_FLAG_IPV6_FRAG,
+ TFTPF_EPSB_FLAG_ACTV_IPV4_FRAG_IPV6_FRAG = TFTPF_EPSB_FLAG_ACTV | TFTPF_EPSB_FLAG_IPV4_FRAG | TFTPF_EPSB_FLAG_IPV6_FRAG,
+}tft_pf_epsb_flag_e;
+
+typedef enum
+{
+ TFTPF_COR_NO_FIRST_FRAGMENT_V6,
+ TFTPF_COR_NO_LAST_FRAGMENT_V6,
+}tft_pf_corrupted_e;
+
+typedef enum
+{
+ bmp_none = 0,
+ bmp_v4Addr = BMP_V4_ADDR,
+ bmp_v6Addr = BMP_V6_ADDR,
+ bmp_protocol = BMP_PROTOCOL,
+ bmp_lPortS = BMP_LOCAL_PORT_SINGLE,
+ bmp_lPortR = BMP_LOCAL_PORT_RANGE,
+ bmp_rPortS = BMP_REMOTE_PORT_SINGLE,
+ bmp_rPortR = BMP_REMOTE_PORT_RANGE,
+ bmp_spi = BMP_SPI,
+ bmp_tos = BMP_TOS,
+ bmp_flowLabel = BMP_FLOW_LABEL,
+ bmp_matchAll = BMP_MATCH_ALL,
+ bmp_emptyTCPAck = BMP_EMPTY_TCP_ACK,
+ bmp_frag = BMP_IP_FRAGMENT,
+ bmp_corrupt = BMP_CORRUPTED,
+ bmp_v4Addr_protocol = bmp_v4Addr | bmp_protocol,
+ bmp_v4Addr_lPortS = bmp_v4Addr | bmp_lPortS,
+ bmp_v4Addr_lPortR = bmp_v4Addr | bmp_lPortR,
+ bmp_v4Addr_rPortS = bmp_v4Addr | bmp_rPortS,
+ bmp_v4Addr_rPortR = bmp_v4Addr | bmp_rPortR,
+ bmp_v4Addr_spi = bmp_v4Addr | bmp_spi,
+ bmp_v4Addr_tos = bmp_v4Addr | bmp_tos,
+ bmp_v4Addr_emptyTCPAck = bmp_v4Addr | bmp_emptyTCPAck,
+ bmp_v4Addr_frag = bmp_v4Addr | bmp_frag,
+ bmp_v6Addr_protocol = bmp_v6Addr | bmp_protocol,
+ bmp_v6Addr_lPortS = bmp_v6Addr | bmp_lPortS,
+ bmp_v6Addr_lPortR = bmp_v6Addr | bmp_lPortR,
+ bmp_v6Addr_rPortS = bmp_v6Addr | bmp_rPortS,
+ bmp_v6Addr_rPortR = bmp_v6Addr | bmp_rPortR,
+ bmp_v6Addr_spi = bmp_v6Addr | bmp_spi,
+ bmp_v6Addr_tos = bmp_v6Addr | bmp_tos,
+ bmp_v6Addr_flowLabel = bmp_v6Addr | bmp_flowLabel,
+ bmp_v6Addr_emptyTCPAck = bmp_v6Addr | bmp_emptyTCPAck,
+ bmp_v6Addr_frag = bmp_v6Addr | bmp_frag,
+ bmp_protocol_lPortS = bmp_protocol | bmp_lPortS,
+ bmp_protocol_lPortR = bmp_protocol | bmp_lPortR,
+ bmp_protocol_rPortS = bmp_protocol | bmp_rPortS,
+ bmp_protocol_rPortR = bmp_protocol | bmp_rPortR,
+ bmp_protocol_spi = bmp_protocol | bmp_spi,
+ bmp_protocol_tos = bmp_protocol | bmp_tos,
+ bmp_protocol_flowLabel = bmp_protocol | bmp_flowLabel,
+ bmp_protocol_emptyTCPAck = bmp_protocol | bmp_emptyTCPAck,
+ bmp_protocol_frag = bmp_protocol | bmp_frag,
+ bmp_lPortS_lPortR = bmp_lPortS | bmp_lPortR,
+ bmp_lPortS_rPortS = bmp_lPortS | bmp_rPortS,
+ bmp_lPortS_rPortR = bmp_lPortS | bmp_rPortR,
+ bmp_lPortS_spi = bmp_lPortS | bmp_spi,
+ bmp_lPortS_tos = bmp_lPortS | bmp_tos,
+ bmp_lPortS_flowLabel = bmp_lPortS | bmp_flowLabel,
+ bmp_lPortS_emptyTCPAck = bmp_lPortS | bmp_emptyTCPAck,
+ bmp_lPortS_frag = bmp_lPortS | bmp_frag,
+ bmp_lPortR_rPortS = bmp_lPortR | bmp_rPortS,
+ bmp_lPortR_rPortR = bmp_lPortR | bmp_rPortR,
+ bmp_lPortR_spi = bmp_lPortR | bmp_spi,
+ bmp_lPortR_tos = bmp_lPortR | bmp_tos,
+ bmp_lPortR_flowLabel = bmp_lPortR | bmp_flowLabel,
+ bmp_lPortR_emptyTCPAck = bmp_lPortR | bmp_emptyTCPAck,
+ bmp_lPortR_frag = bmp_lPortR | bmp_frag,
+ bmp_rPortS_rPortR = bmp_rPortS | bmp_rPortR,
+ bmp_rPortS_spi = bmp_rPortS | bmp_spi,
+ bmp_rPortS_tos = bmp_rPortS | bmp_tos,
+ bmp_rPortS_flowLabel = bmp_rPortS | bmp_flowLabel,
+ bmp_rPortS_emptyTCPAck = bmp_rPortS | bmp_emptyTCPAck,
+ bmp_rPortS_frag = bmp_rPortS | bmp_frag,
+ bmp_rPortR_spi = bmp_rPortR | bmp_spi,
+ bmp_rPortR_tos = bmp_rPortR | bmp_tos,
+ bmp_rPortR_flowLabel = bmp_rPortR | bmp_flowLabel,
+ bmp_rPortR_emptyTCPAck = bmp_rPortR | bmp_emptyTCPAck,
+ bmp_rPortR_frag = bmp_rPortR | bmp_frag,
+ bmp_spi_tos = bmp_spi | bmp_tos,
+ bmp_spi_flowLabel = bmp_spi | bmp_flowLabel,
+ bmp_spi_emptyTCPAck = bmp_spi | bmp_emptyTCPAck,
+ bmp_spi_frag = bmp_spi | bmp_frag,
+ bmp_tos_flowLabel = bmp_tos | bmp_flowLabel,
+ bmp_tos_emptyTCPAck = bmp_tos | bmp_emptyTCPAck,
+ bmp_tos_frag = bmp_tos | bmp_frag,
+ bmp_flowLabel_emptyTCPAck = bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_flowLabel_frag = bmp_flowLabel | bmp_frag,
+ bmp_v4Addr_protocol_lPortS = bmp_v4Addr | bmp_protocol | bmp_lPortS,
+ bmp_v4Addr_protocol_lPortR = bmp_v4Addr | bmp_protocol | bmp_lPortR,
+ bmp_v4Addr_protocol_rPortS = bmp_v4Addr | bmp_protocol | bmp_rPortS,
+ bmp_v4Addr_protocol_rPortR = bmp_v4Addr | bmp_protocol | bmp_rPortR,
+ bmp_v4Addr_protocol_spi = bmp_v4Addr | bmp_protocol | bmp_spi,
+ bmp_v4Addr_protocol_tos = bmp_v4Addr | bmp_protocol | bmp_tos,
+ bmp_v4Addr_protocol_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_frag = bmp_v4Addr | bmp_protocol | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR = bmp_v4Addr | bmp_lPortS | bmp_lPortR,
+ bmp_v4Addr_lPortS_rPortS = bmp_v4Addr | bmp_lPortS | bmp_rPortS,
+ bmp_v4Addr_lPortS_rPortR = bmp_v4Addr | bmp_lPortS | bmp_rPortR,
+ bmp_v4Addr_lPortS_spi = bmp_v4Addr | bmp_lPortS | bmp_spi,
+ bmp_v4Addr_lPortS_tos = bmp_v4Addr | bmp_lPortS | bmp_tos,
+ bmp_v4Addr_lPortS_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_frag = bmp_v4Addr | bmp_lPortS | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS = bmp_v4Addr | bmp_lPortR | bmp_rPortS,
+ bmp_v4Addr_lPortR_rPortR = bmp_v4Addr | bmp_lPortR | bmp_rPortR,
+ bmp_v4Addr_lPortR_spi = bmp_v4Addr | bmp_lPortR | bmp_spi,
+ bmp_v4Addr_lPortR_tos = bmp_v4Addr | bmp_lPortR | bmp_tos,
+ bmp_v4Addr_lPortR_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_frag = bmp_v4Addr | bmp_lPortR | bmp_frag,
+ bmp_v4Addr_rPortS_rPortR = bmp_v4Addr | bmp_rPortS | bmp_rPortR,
+ bmp_v4Addr_rPortS_spi = bmp_v4Addr | bmp_rPortS | bmp_spi,
+ bmp_v4Addr_rPortS_tos = bmp_v4Addr | bmp_rPortS | bmp_tos,
+ bmp_v4Addr_rPortS_emptyTCPAck = bmp_v4Addr | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortS_frag = bmp_v4Addr | bmp_rPortS | bmp_frag,
+ bmp_v4Addr_rPortR_spi = bmp_v4Addr | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_rPortR_tos = bmp_v4Addr | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_rPortR_emptyTCPAck = bmp_v4Addr | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortR_frag = bmp_v4Addr | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_spi_tos = bmp_v4Addr | bmp_spi | bmp_tos,
+ bmp_v4Addr_spi_emptyTCPAck = bmp_v4Addr | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_spi_frag = bmp_v4Addr | bmp_spi | bmp_frag,
+ bmp_v4Addr_tos_emptyTCPAck = bmp_v4Addr | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_tos_frag = bmp_v4Addr | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS = bmp_v6Addr | bmp_protocol | bmp_lPortS,
+ bmp_v6Addr_protocol_lPortR = bmp_v6Addr | bmp_protocol | bmp_lPortR,
+ bmp_v6Addr_protocol_rPortS = bmp_v6Addr | bmp_protocol | bmp_rPortS,
+ bmp_v6Addr_protocol_rPortR = bmp_v6Addr | bmp_protocol | bmp_rPortR,
+ bmp_v6Addr_protocol_spi = bmp_v6Addr | bmp_protocol | bmp_spi,
+ bmp_v6Addr_protocol_tos = bmp_v6Addr | bmp_protocol | bmp_tos,
+ bmp_v6Addr_protocol_flowLabel = bmp_v6Addr | bmp_protocol | bmp_flowLabel,
+ bmp_v6Addr_protocol_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_frag = bmp_v6Addr | bmp_protocol | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR = bmp_v6Addr | bmp_lPortS | bmp_lPortR,
+ bmp_v6Addr_lPortS_rPortS = bmp_v6Addr | bmp_lPortS | bmp_rPortS,
+ bmp_v6Addr_lPortS_rPortR = bmp_v6Addr | bmp_lPortS | bmp_rPortR,
+ bmp_v6Addr_lPortS_spi = bmp_v6Addr | bmp_lPortS | bmp_spi,
+ bmp_v6Addr_lPortS_tos = bmp_v6Addr | bmp_lPortS | bmp_tos,
+ bmp_v6Addr_lPortS_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_flowLabel,
+ bmp_v6Addr_lPortS_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_frag = bmp_v6Addr | bmp_lPortS | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS = bmp_v6Addr | bmp_lPortR | bmp_rPortS,
+ bmp_v6Addr_lPortR_rPortR = bmp_v6Addr | bmp_lPortR | bmp_rPortR,
+ bmp_v6Addr_lPortR_spi = bmp_v6Addr | bmp_lPortR | bmp_spi,
+ bmp_v6Addr_lPortR_tos = bmp_v6Addr | bmp_lPortR | bmp_tos,
+ bmp_v6Addr_lPortR_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_flowLabel,
+ bmp_v6Addr_lPortR_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_frag = bmp_v6Addr | bmp_lPortR | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR = bmp_v6Addr | bmp_rPortS | bmp_rPortR,
+ bmp_v6Addr_rPortS_spi = bmp_v6Addr | bmp_rPortS | bmp_spi,
+ bmp_v6Addr_rPortS_tos = bmp_v6Addr | bmp_rPortS | bmp_tos,
+ bmp_v6Addr_rPortS_flowLabel = bmp_v6Addr | bmp_rPortS | bmp_flowLabel,
+ bmp_v6Addr_rPortS_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_frag = bmp_v6Addr | bmp_rPortS | bmp_frag,
+ bmp_v6Addr_rPortR_spi = bmp_v6Addr | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_rPortR_tos = bmp_v6Addr | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_rPortR_flowLabel = bmp_v6Addr | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_rPortR_emptyTCPAck = bmp_v6Addr | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortR_frag = bmp_v6Addr | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_spi_tos = bmp_v6Addr | bmp_spi | bmp_tos,
+ bmp_v6Addr_spi_flowLabel = bmp_v6Addr | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_spi_emptyTCPAck = bmp_v6Addr | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_spi_frag = bmp_v6Addr | bmp_spi | bmp_frag,
+ bmp_v6Addr_tos_flowLabel = bmp_v6Addr | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_tos_emptyTCPAck = bmp_v6Addr | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_tos_frag = bmp_v6Addr | bmp_tos | bmp_frag,
+ bmp_v6Addr_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_flowLabel_frag = bmp_v6Addr | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR = bmp_protocol | bmp_lPortS | bmp_lPortR,
+ bmp_protocol_lPortS_rPortS = bmp_protocol | bmp_lPortS | bmp_rPortS,
+ bmp_protocol_lPortS_rPortR = bmp_protocol | bmp_lPortS | bmp_rPortR,
+ bmp_protocol_lPortS_spi = bmp_protocol | bmp_lPortS | bmp_spi,
+ bmp_protocol_lPortS_tos = bmp_protocol | bmp_lPortS | bmp_tos,
+ bmp_protocol_lPortS_flowLabel = bmp_protocol | bmp_lPortS | bmp_flowLabel,
+ bmp_protocol_lPortS_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_frag = bmp_protocol | bmp_lPortS | bmp_frag,
+ bmp_protocol_lPortR_rPortS = bmp_protocol | bmp_lPortR | bmp_rPortS,
+ bmp_protocol_lPortR_rPortR = bmp_protocol | bmp_lPortR | bmp_rPortR,
+ bmp_protocol_lPortR_spi = bmp_protocol | bmp_lPortR | bmp_spi,
+ bmp_protocol_lPortR_tos = bmp_protocol | bmp_lPortR | bmp_tos,
+ bmp_protocol_lPortR_flowLabel = bmp_protocol | bmp_lPortR | bmp_flowLabel,
+ bmp_protocol_lPortR_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_frag = bmp_protocol | bmp_lPortR | bmp_frag,
+ bmp_protocol_rPortS_rPortR = bmp_protocol | bmp_rPortS | bmp_rPortR,
+ bmp_protocol_rPortS_spi = bmp_protocol | bmp_rPortS | bmp_spi,
+ bmp_protocol_rPortS_tos = bmp_protocol | bmp_rPortS | bmp_tos,
+ bmp_protocol_rPortS_flowLabel = bmp_protocol | bmp_rPortS | bmp_flowLabel,
+ bmp_protocol_rPortS_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_frag = bmp_protocol | bmp_rPortS | bmp_frag,
+ bmp_protocol_rPortR_spi = bmp_protocol | bmp_rPortR | bmp_spi,
+ bmp_protocol_rPortR_tos = bmp_protocol | bmp_rPortR | bmp_tos,
+ bmp_protocol_rPortR_flowLabel = bmp_protocol | bmp_rPortR | bmp_flowLabel,
+ bmp_protocol_rPortR_emptyTCPAck = bmp_protocol | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_protocol_rPortR_frag = bmp_protocol | bmp_rPortR | bmp_frag,
+ bmp_protocol_spi_tos = bmp_protocol | bmp_spi | bmp_tos,
+ bmp_protocol_spi_flowLabel = bmp_protocol | bmp_spi | bmp_flowLabel,
+ bmp_protocol_spi_emptyTCPAck = bmp_protocol | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_spi_frag = bmp_protocol | bmp_spi | bmp_frag,
+ bmp_protocol_tos_flowLabel = bmp_protocol | bmp_tos | bmp_flowLabel,
+ bmp_protocol_tos_emptyTCPAck = bmp_protocol | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_tos_frag = bmp_protocol | bmp_tos | bmp_frag,
+ bmp_protocol_flowLabel_emptyTCPAck = bmp_protocol | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_flowLabel_frag = bmp_protocol | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS = bmp_lPortS | bmp_lPortR | bmp_rPortS,
+ bmp_lPortS_lPortR_rPortR = bmp_lPortS | bmp_lPortR | bmp_rPortR,
+ bmp_lPortS_lPortR_spi = bmp_lPortS | bmp_lPortR | bmp_spi,
+ bmp_lPortS_lPortR_tos = bmp_lPortS | bmp_lPortR | bmp_tos,
+ bmp_lPortS_lPortR_flowLabel = bmp_lPortS | bmp_lPortR | bmp_flowLabel,
+ bmp_lPortS_lPortR_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_frag = bmp_lPortS | bmp_lPortR | bmp_frag,
+ bmp_lPortS_rPortS_rPortR = bmp_lPortS | bmp_rPortS | bmp_rPortR,
+ bmp_lPortS_rPortS_spi = bmp_lPortS | bmp_rPortS | bmp_spi,
+ bmp_lPortS_rPortS_tos = bmp_lPortS | bmp_rPortS | bmp_tos,
+ bmp_lPortS_rPortS_flowLabel = bmp_lPortS | bmp_rPortS | bmp_flowLabel,
+ bmp_lPortS_rPortS_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_frag = bmp_lPortS | bmp_rPortS | bmp_frag,
+ bmp_lPortS_rPortR_spi = bmp_lPortS | bmp_rPortR | bmp_spi,
+ bmp_lPortS_rPortR_tos = bmp_lPortS | bmp_rPortR | bmp_tos,
+ bmp_lPortS_rPortR_flowLabel = bmp_lPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_lPortS_rPortR_emptyTCPAck = bmp_lPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_lPortS_rPortR_frag = bmp_lPortS | bmp_rPortR | bmp_frag,
+ bmp_lPortS_spi_tos = bmp_lPortS | bmp_spi | bmp_tos,
+ bmp_lPortS_spi_flowLabel = bmp_lPortS | bmp_spi | bmp_flowLabel,
+ bmp_lPortS_spi_emptyTCPAck = bmp_lPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortS_spi_frag = bmp_lPortS | bmp_spi | bmp_frag,
+ bmp_lPortS_tos_flowLabel = bmp_lPortS | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_tos_emptyTCPAck = bmp_lPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_tos_frag = bmp_lPortS | bmp_tos | bmp_frag,
+ bmp_lPortS_flowLabel_emptyTCPAck = bmp_lPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_flowLabel_frag = bmp_lPortS | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_rPortR = bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_lPortR_rPortS_spi = bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_lPortR_rPortS_tos = bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_lPortR_rPortS_flowLabel = bmp_lPortR | bmp_rPortS | bmp_flowLabel,
+ bmp_lPortR_rPortS_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_frag = bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_lPortR_rPortR_spi = bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_lPortR_rPortR_tos = bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_lPortR_rPortR_flowLabel = bmp_lPortR | bmp_rPortR | bmp_flowLabel,
+ bmp_lPortR_rPortR_emptyTCPAck = bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_lPortR_rPortR_frag = bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_lPortR_spi_tos = bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_lPortR_spi_flowLabel = bmp_lPortR | bmp_spi | bmp_flowLabel,
+ bmp_lPortR_spi_emptyTCPAck = bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortR_spi_frag = bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_lPortR_tos_flowLabel = bmp_lPortR | bmp_tos | bmp_flowLabel,
+ bmp_lPortR_tos_emptyTCPAck = bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortR_tos_frag = bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_lPortR_flowLabel_emptyTCPAck = bmp_lPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_flowLabel_frag = bmp_lPortR | bmp_flowLabel | bmp_frag,
+ bmp_rPortS_rPortR_spi = bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_rPortS_rPortR_tos = bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_rPortS_rPortR_flowLabel = bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_rPortS_rPortR_emptyTCPAck = bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_rPortS_rPortR_frag = bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_rPortS_spi_tos = bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_rPortS_spi_flowLabel = bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_rPortS_spi_emptyTCPAck = bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_rPortS_spi_frag = bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_rPortS_tos_flowLabel = bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_rPortS_tos_emptyTCPAck = bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_rPortS_tos_frag = bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_rPortS_flowLabel_emptyTCPAck = bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortS_flowLabel_frag = bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_rPortR_spi_tos = bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_rPortR_spi_flowLabel = bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_rPortR_spi_emptyTCPAck = bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_rPortR_spi_frag = bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_rPortR_tos_flowLabel = bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_rPortR_tos_emptyTCPAck = bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_rPortR_tos_frag = bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_rPortR_flowLabel_emptyTCPAck = bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortR_flowLabel_frag = bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_spi_tos_flowLabel = bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_spi_tos_emptyTCPAck = bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_spi_tos_frag = bmp_spi | bmp_tos | bmp_frag,
+ bmp_spi_flowLabel_emptyTCPAck = bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_spi_flowLabel_frag = bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_tos_flowLabel_emptyTCPAck = bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_tos_flowLabel_frag = bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR,
+ bmp_v4Addr_protocol_lPortS_rPortS = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS,
+ bmp_v4Addr_protocol_lPortS_rPortR = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR,
+ bmp_v4Addr_protocol_lPortS_spi = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_spi,
+ bmp_v4Addr_protocol_lPortS_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS,
+ bmp_v4Addr_protocol_lPortR_rPortR = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR,
+ bmp_v4Addr_protocol_lPortR_spi = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_spi,
+ bmp_v4Addr_protocol_lPortR_tos = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_tos,
+ bmp_v4Addr_protocol_lPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_frag,
+ bmp_v4Addr_protocol_rPortS_rPortR = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR,
+ bmp_v4Addr_protocol_rPortS_spi = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_spi,
+ bmp_v4Addr_protocol_rPortS_tos = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_tos,
+ bmp_v4Addr_protocol_rPortS_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortS_frag = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_frag,
+ bmp_v4Addr_protocol_rPortR_spi = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_protocol_rPortR_tos = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_protocol_rPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortR_frag = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_protocol_spi_tos = bmp_v4Addr | bmp_protocol | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_spi_frag = bmp_v4Addr | bmp_protocol | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_tos_frag = bmp_v4Addr | bmp_protocol | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS,
+ bmp_v4Addr_lPortS_lPortR_rPortR = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR,
+ bmp_v4Addr_lPortS_lPortR_spi = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_spi,
+ bmp_v4Addr_lPortS_lPortR_tos = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_tos,
+ bmp_v4Addr_lPortS_lPortR_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_frag,
+ bmp_v4Addr_lPortS_rPortS_rPortR = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR,
+ bmp_v4Addr_lPortS_rPortS_spi = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_spi,
+ bmp_v4Addr_lPortS_rPortS_tos = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_tos,
+ bmp_v4Addr_lPortS_rPortS_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortS_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_frag,
+ bmp_v4Addr_lPortS_rPortR_spi = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_lPortS_rPortR_tos = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_lPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortR_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_lPortS_spi_tos = bmp_v4Addr | bmp_lPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_spi_frag = bmp_v4Addr | bmp_lPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS_rPortR = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_v4Addr_lPortR_rPortS_spi = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_v4Addr_lPortR_rPortS_tos = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_v4Addr_lPortR_rPortS_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortS_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_v4Addr_lPortR_rPortR_spi = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_lPortR_rPortR_tos = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_lPortR_rPortR_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortR_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_lPortR_spi_tos = bmp_v4Addr | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_spi_frag = bmp_v4Addr | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_tos_frag = bmp_v4Addr | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_rPortS_rPortR_spi = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_rPortS_rPortR_tos = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_rPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortS_rPortR_frag = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_rPortS_spi_tos = bmp_v4Addr | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_rPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortS_spi_frag = bmp_v4Addr | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_rPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortS_tos_frag = bmp_v4Addr | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_rPortR_spi_tos = bmp_v4Addr | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortR_spi_frag = bmp_v4Addr | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortR_tos_frag = bmp_v4Addr | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_spi_tos_frag = bmp_v4Addr | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR,
+ bmp_v6Addr_protocol_lPortS_rPortS = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS,
+ bmp_v6Addr_protocol_lPortS_rPortR = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR,
+ bmp_v6Addr_protocol_lPortS_spi = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi,
+ bmp_v6Addr_protocol_lPortS_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS,
+ bmp_v6Addr_protocol_lPortR_rPortR = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR,
+ bmp_v6Addr_protocol_lPortR_spi = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi,
+ bmp_v6Addr_protocol_lPortR_tos = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_tos,
+ bmp_v6Addr_protocol_lPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR,
+ bmp_v6Addr_protocol_rPortS_spi = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi,
+ bmp_v6Addr_protocol_rPortS_tos = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_tos,
+ bmp_v6Addr_protocol_rPortS_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortS_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_frag,
+ bmp_v6Addr_protocol_rPortR_spi = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_protocol_rPortR_tos = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_protocol_rPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortR_frag = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_protocol_spi_tos = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_spi_frag = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_tos_frag = bmp_v6Addr | bmp_protocol | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS,
+ bmp_v6Addr_lPortS_lPortR_rPortR = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR,
+ bmp_v6Addr_lPortS_lPortR_spi = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi,
+ bmp_v6Addr_lPortS_lPortR_tos = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_tos,
+ bmp_v6Addr_lPortS_lPortR_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR,
+ bmp_v6Addr_lPortS_rPortS_spi = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi,
+ bmp_v6Addr_lPortS_rPortS_tos = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_tos,
+ bmp_v6Addr_lPortS_rPortS_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortS_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_frag,
+ bmp_v6Addr_lPortS_rPortR_spi = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_lPortS_rPortR_tos = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_lPortS_rPortR_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortR_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_lPortS_spi_tos = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortS_spi_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_spi_frag = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortS_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_v6Addr_lPortR_rPortS_spi = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_v6Addr_lPortR_rPortS_tos = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_v6Addr_lPortR_rPortS_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortS_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_v6Addr_lPortR_rPortR_spi = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_lPortR_rPortR_tos = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_lPortR_rPortR_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortR_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortR_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_lPortR_spi_tos = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortR_spi_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_spi_frag = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortR_tos_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_tos_frag = bmp_v6Addr | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR_spi = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_rPortS_rPortR_tos = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_rPortS_rPortR_flowLabel = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_rPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_rPortR_frag = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_rPortS_spi_tos = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_rPortS_spi_flowLabel = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_rPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_spi_frag = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_rPortS_tos_flowLabel = bmp_v6Addr | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_rPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_tos_frag = bmp_v6Addr | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_rPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_flowLabel_frag = bmp_v6Addr | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortR_spi_tos = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_rPortR_spi_flowLabel = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortR_spi_frag = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_rPortR_tos_flowLabel = bmp_v6Addr | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortR_tos_frag = bmp_v6Addr | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortR_flowLabel_frag = bmp_v6Addr | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_spi_tos_flowLabel = bmp_v6Addr | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_spi_tos_frag = bmp_v6Addr | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_spi_flowLabel_frag = bmp_v6Addr | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_tos_flowLabel_frag = bmp_v6Addr | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS,
+ bmp_protocol_lPortS_lPortR_rPortR = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR,
+ bmp_protocol_lPortS_lPortR_spi = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi,
+ bmp_protocol_lPortS_lPortR_tos = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos,
+ bmp_protocol_lPortS_lPortR_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR,
+ bmp_protocol_lPortS_rPortS_spi = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi,
+ bmp_protocol_lPortS_rPortS_tos = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos,
+ bmp_protocol_lPortS_rPortS_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortS_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_frag,
+ bmp_protocol_lPortS_rPortR_spi = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi,
+ bmp_protocol_lPortS_rPortR_tos = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos,
+ bmp_protocol_lPortS_rPortR_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortR_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortR_frag = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_frag,
+ bmp_protocol_lPortS_spi_tos = bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos,
+ bmp_protocol_lPortS_spi_flowLabel = bmp_protocol | bmp_lPortS | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortS_spi_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_spi_frag = bmp_protocol | bmp_lPortS | bmp_spi | bmp_frag,
+ bmp_protocol_lPortS_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_tos_frag = bmp_protocol | bmp_lPortS | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_protocol_lPortR_rPortS_spi = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_protocol_lPortR_rPortS_tos = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_protocol_lPortR_rPortS_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortS_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_protocol_lPortR_rPortR_spi = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_protocol_lPortR_rPortR_tos = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_protocol_lPortR_rPortR_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortR_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortR_frag = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_protocol_lPortR_spi_tos = bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_protocol_lPortR_spi_flowLabel = bmp_protocol | bmp_lPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortR_spi_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_spi_frag = bmp_protocol | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_protocol_lPortR_tos_flowLabel = bmp_protocol | bmp_lPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortR_tos_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_tos_frag = bmp_protocol | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_protocol_lPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortS_rPortR_spi = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_protocol_rPortS_rPortR_tos = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_protocol_rPortS_rPortR_flowLabel = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_protocol_rPortS_rPortR_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_rPortR_frag = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_protocol_rPortS_spi_tos = bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_protocol_rPortS_spi_flowLabel = bmp_protocol | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_protocol_rPortS_spi_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_spi_frag = bmp_protocol | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_protocol_rPortS_tos_flowLabel = bmp_protocol | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_protocol_rPortS_tos_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_tos_frag = bmp_protocol | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_protocol_rPortS_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_flowLabel_frag = bmp_protocol | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortR_spi_tos = bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_protocol_rPortR_spi_flowLabel = bmp_protocol | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_rPortR_spi_emptyTCPAck = bmp_protocol | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_rPortR_spi_frag = bmp_protocol | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_protocol_rPortR_tos_flowLabel = bmp_protocol | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_rPortR_tos_emptyTCPAck = bmp_protocol | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_rPortR_tos_frag = bmp_protocol | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_protocol_rPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortR_flowLabel_frag = bmp_protocol | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_spi_tos_flowLabel = bmp_protocol | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_spi_tos_emptyTCPAck = bmp_protocol | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_spi_tos_frag = bmp_protocol | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_spi_flowLabel_frag = bmp_protocol | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_tos_flowLabel_frag = bmp_protocol | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_lPortS_lPortR_rPortS_spi = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_lPortS_lPortR_rPortS_tos = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_lPortS_lPortR_rPortS_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortS_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_lPortS_lPortR_rPortR_spi = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_lPortS_lPortR_rPortR_tos = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_lPortS_lPortR_rPortR_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortR_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortR_frag = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_lPortS_lPortR_spi_tos = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_lPortS_lPortR_spi_flowLabel = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel,
+ bmp_lPortS_lPortR_spi_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_spi_frag = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_lPortS_lPortR_tos_flowLabel = bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_lPortR_tos_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_tos_frag = bmp_lPortS | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_lPortS_lPortR_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortS_rPortR_spi = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_lPortS_rPortS_rPortR_tos = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_lPortS_rPortS_rPortR_flowLabel = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_lPortS_rPortS_rPortR_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_rPortR_frag = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_lPortS_rPortS_spi_tos = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_lPortS_rPortS_spi_flowLabel = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_lPortS_rPortS_spi_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_spi_frag = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_lPortS_rPortS_tos_flowLabel = bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_rPortS_tos_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_tos_frag = bmp_lPortS | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_lPortS_rPortS_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_flowLabel_frag = bmp_lPortS | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortR_spi_tos = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_lPortS_rPortR_spi_flowLabel = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_lPortS_rPortR_spi_emptyTCPAck = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortS_rPortR_spi_frag = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_lPortS_rPortR_tos_flowLabel = bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_rPortR_tos_emptyTCPAck = bmp_lPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_rPortR_tos_frag = bmp_lPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_lPortS_rPortR_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortR_flowLabel_frag = bmp_lPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_spi_tos_flowLabel = bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_spi_tos_emptyTCPAck = bmp_lPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_spi_tos_frag = bmp_lPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortS_spi_flowLabel_emptyTCPAck = bmp_lPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_spi_flowLabel_frag = bmp_lPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_tos_flowLabel_frag = bmp_lPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_rPortR_spi = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_lPortR_rPortS_rPortR_tos = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_lPortR_rPortS_rPortR_flowLabel = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_lPortR_rPortS_rPortR_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_rPortR_frag = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_lPortR_rPortS_spi_tos = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_lPortR_rPortS_spi_flowLabel = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_lPortR_rPortS_spi_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_spi_frag = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_lPortR_rPortS_tos_flowLabel = bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_lPortR_rPortS_tos_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_tos_frag = bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_lPortR_rPortS_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_flowLabel_frag = bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortR_spi_tos = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_lPortR_rPortR_spi_flowLabel = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_lPortR_rPortR_spi_emptyTCPAck = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortR_rPortR_spi_frag = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_lPortR_rPortR_tos_flowLabel = bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_lPortR_rPortR_tos_emptyTCPAck = bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortR_rPortR_tos_frag = bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_lPortR_rPortR_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortR_flowLabel_frag = bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_spi_tos_flowLabel = bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortR_spi_tos_emptyTCPAck = bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortR_spi_tos_frag = bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortR_spi_flowLabel_emptyTCPAck = bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_spi_flowLabel_frag = bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_tos_flowLabel_emptyTCPAck = bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_tos_flowLabel_frag = bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_rPortS_rPortR_spi_tos = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_rPortS_rPortR_spi_flowLabel = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_rPortS_rPortR_spi_emptyTCPAck = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_rPortS_rPortR_spi_frag = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_rPortS_rPortR_tos_flowLabel = bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_rPortS_rPortR_tos_emptyTCPAck = bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_rPortS_rPortR_tos_frag = bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortS_rPortR_flowLabel_frag = bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_rPortS_spi_tos_flowLabel = bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_rPortS_spi_tos_emptyTCPAck = bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_rPortS_spi_tos_frag = bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_rPortS_spi_flowLabel_emptyTCPAck = bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortS_spi_flowLabel_frag = bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_rPortS_tos_flowLabel_emptyTCPAck = bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortS_tos_flowLabel_frag = bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_rPortR_spi_tos_flowLabel = bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_rPortR_spi_tos_emptyTCPAck = bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_rPortR_spi_tos_frag = bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_rPortR_spi_flowLabel_emptyTCPAck = bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortR_spi_flowLabel_frag = bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_rPortR_tos_flowLabel_emptyTCPAck = bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortR_tos_flowLabel_frag = bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_spi_tos_flowLabel_emptyTCPAck = bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_spi_tos_flowLabel_frag = bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR,
+ bmp_v4Addr_protocol_lPortS_lPortR_spi = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi,
+ bmp_v4Addr_protocol_lPortS_lPortR_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_lPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR,
+ bmp_v4Addr_protocol_lPortS_rPortS_spi = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi,
+ bmp_v4Addr_protocol_lPortS_rPortS_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_rPortS_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortS_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortR_spi = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_protocol_lPortS_rPortR_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortR_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_v4Addr_protocol_lPortR_rPortS_spi = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_v4Addr_protocol_lPortR_rPortS_tos = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_v4Addr_protocol_lPortR_rPortS_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortS_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortR_spi = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_protocol_lPortR_rPortR_tos = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_protocol_lPortR_rPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortR_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_rPortS_rPortR_spi = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_protocol_rPortS_rPortR_tos = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_protocol_rPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortS_rPortR_frag = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_protocol_rPortS_spi_tos = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_rPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortS_spi_frag = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_rPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortS_tos_frag = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_rPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_v4Addr_lPortS_lPortR_rPortS_spi = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_v4Addr_lPortS_lPortR_rPortS_tos = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_v4Addr_lPortS_lPortR_rPortS_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortS_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortR_spi = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_lPortS_lPortR_rPortR_tos = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_lPortS_lPortR_rPortR_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortR_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_spi_tos = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortS_lPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_spi_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_rPortS_rPortR_spi = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_lPortS_rPortS_rPortR_tos = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_lPortS_rPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortS_rPortR_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_lPortS_rPortS_spi_tos = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortS_rPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortS_spi_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortS_rPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortS_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_rPortR_spi_tos = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortR_spi_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortR_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_spi_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS_rPortR_spi = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_lPortR_rPortS_rPortR_tos = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_lPortR_rPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortS_rPortR_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS_spi_tos = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortR_rPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortS_spi_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortS_tos_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortR_rPortR_spi_tos = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortR_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortR_spi_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortR_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortR_tos_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_spi_tos_frag = bmp_v4Addr | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_rPortS_rPortR_spi_tos = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_rPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortS_rPortR_spi_frag = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_rPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortS_rPortR_tos_frag = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_rPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortS_spi_tos_frag = bmp_v4Addr | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortR_spi_tos_frag = bmp_v4Addr | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi,
+ bmp_v6Addr_protocol_lPortS_lPortR_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_lPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi,
+ bmp_v6Addr_protocol_lPortS_rPortS_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_rPortS_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortS_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_protocol_lPortS_rPortR_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_rPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortR_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_v6Addr_protocol_lPortR_rPortS_tos = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_v6Addr_protocol_lPortR_rPortS_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortS_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_protocol_lPortR_rPortR_tos = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_protocol_lPortR_rPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortR_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_protocol_rPortS_rPortR_tos = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_protocol_rPortS_rPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_rPortR_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_spi_tos = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_rPortS_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_spi_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_tos_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_rPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_rPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_v6Addr_lPortS_lPortR_rPortS_tos = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_v6Addr_lPortS_lPortR_rPortS_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortS_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_lPortS_lPortR_rPortR_tos = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_lPortS_lPortR_rPortR_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortR_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortR_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_spi_tos = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortS_lPortR_spi_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_spi_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_lPortS_rPortS_rPortR_tos = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_lPortS_rPortS_rPortR_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_rPortR_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_spi_tos = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortS_rPortS_spi_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_spi_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortR_spi_tos = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortR_spi_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortR_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_spi_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_lPortR_rPortS_rPortR_tos = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_lPortR_rPortS_rPortR_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_rPortR_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_spi_tos = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortR_rPortS_spi_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_spi_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_tos_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_tos_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortR_spi_tos = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortR_rPortR_spi_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortR_spi_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortR_rPortR_tos_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortR_tos_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortR_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortR_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_spi_tos_frag = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR_spi_tos = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_rPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_rPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_rPortR_spi_frag = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_rPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_rPortR_tos_frag = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_rPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_spi_tos_frag = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_rPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortR_spi_tos_frag = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_protocol_lPortS_lPortR_rPortS_spi = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_protocol_lPortS_lPortR_rPortS_tos = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_protocol_lPortS_lPortR_rPortS_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortS_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortR_spi = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_protocol_lPortS_lPortR_rPortR_tos = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_protocol_lPortS_lPortR_rPortR_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortR_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortR_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_protocol_lPortS_lPortR_spi_tos = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_protocol_lPortS_lPortR_spi_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_spi_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_spi_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_protocol_lPortS_lPortR_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_tos_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_lPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR_spi = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_protocol_lPortS_rPortS_rPortR_tos = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_protocol_lPortS_rPortS_rPortR_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortS_rPortR_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_rPortR_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_protocol_lPortS_rPortS_spi_tos = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_protocol_lPortS_rPortS_spi_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortS_spi_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_spi_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_protocol_lPortS_rPortS_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortS_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_tos_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_rPortS_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortR_spi_tos = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_protocol_lPortS_rPortR_spi_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortR_spi_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortR_spi_frag = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_protocol_lPortS_rPortR_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortR_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortR_tos_frag = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_rPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortR_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_spi_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_spi_tos_frag = bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_spi_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR_spi = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_protocol_lPortR_rPortS_rPortR_tos = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_protocol_lPortR_rPortS_rPortR_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortS_rPortR_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_rPortR_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_protocol_lPortR_rPortS_spi_tos = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_protocol_lPortR_rPortS_spi_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortS_spi_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_spi_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_protocol_lPortR_rPortS_tos_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortS_tos_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_tos_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_protocol_lPortR_rPortS_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortR_spi_tos = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_protocol_lPortR_rPortR_spi_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortR_spi_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortR_spi_frag = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_protocol_lPortR_rPortR_tos_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortR_tos_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortR_tos_frag = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_protocol_lPortR_rPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortR_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_spi_tos_flowLabel = bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_spi_tos_frag = bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_spi_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_tos_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortS_rPortR_spi_tos = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_protocol_rPortS_rPortR_spi_flowLabel = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_rPortS_rPortR_spi_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_rPortR_spi_frag = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_protocol_rPortS_rPortR_tos_flowLabel = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_rPortS_rPortR_tos_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_rPortR_tos_frag = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_protocol_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_rPortR_flowLabel_frag = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortS_spi_tos_flowLabel = bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_rPortS_spi_tos_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_spi_tos_frag = bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_rPortS_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_spi_flowLabel_frag = bmp_protocol | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortS_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_tos_flowLabel_frag = bmp_protocol | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortR_spi_tos_flowLabel = bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_rPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_rPortR_spi_tos_frag = bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_rPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortR_spi_flowLabel_frag = bmp_protocol | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortR_tos_flowLabel_frag = bmp_protocol | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_spi_tos_flowLabel_frag = bmp_protocol | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_lPortS_lPortR_rPortS_rPortR_tos = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_lPortS_lPortR_rPortS_rPortR_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortS_rPortR_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_rPortR_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_spi_tos = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_lPortS_lPortR_rPortS_spi_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortS_spi_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_spi_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_tos_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortS_tos_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_tos_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortR_spi_tos = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_lPortS_lPortR_rPortR_spi_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortR_spi_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortR_spi_frag = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_lPortS_lPortR_rPortR_tos_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortR_tos_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortR_tos_frag = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_lPortS_lPortR_rPortR_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortR_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_spi_tos_flowLabel = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_lPortR_spi_tos_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_spi_tos_frag = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortS_lPortR_spi_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_spi_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_tos_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortS_rPortR_spi_tos = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_lPortS_rPortS_rPortR_spi_flowLabel = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_lPortS_rPortS_rPortR_spi_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_rPortR_spi_frag = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_lPortS_rPortS_rPortR_tos_flowLabel = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_rPortS_rPortR_tos_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_rPortR_tos_frag = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_lPortS_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_rPortR_flowLabel_frag = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortS_spi_tos_flowLabel = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_rPortS_spi_tos_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_spi_tos_frag = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortS_rPortS_spi_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_spi_flowLabel_frag = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortS_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_tos_flowLabel_frag = bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortR_spi_tos_flowLabel = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_rPortR_spi_tos_emptyTCPAck = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_rPortR_spi_tos_frag = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortR_spi_flowLabel_frag = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortR_tos_flowLabel_frag = bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_spi_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_spi_tos_flowLabel_frag = bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_rPortR_spi_tos = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_lPortR_rPortS_rPortR_spi_flowLabel = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_rPortR_spi_frag = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_lPortR_rPortS_rPortR_tos_flowLabel = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_rPortR_tos_frag = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_lPortR_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_rPortR_flowLabel_frag = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_spi_tos_flowLabel = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_spi_tos_frag = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortR_rPortS_spi_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_spi_flowLabel_frag = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_tos_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_tos_flowLabel_frag = bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortR_spi_tos_flowLabel = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortR_rPortR_spi_tos_frag = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortR_rPortR_spi_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortR_spi_flowLabel_frag = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortR_tos_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortR_tos_flowLabel_frag = bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_spi_tos_flowLabel_emptyTCPAck = bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_spi_tos_flowLabel_frag = bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_rPortS_rPortR_spi_tos_flowLabel = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_rPortS_rPortR_spi_tos_frag = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortS_rPortR_spi_flowLabel_frag = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortS_rPortR_tos_flowLabel_frag = bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortS_spi_tos_flowLabel_frag = bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortR_spi_tos_flowLabel_frag = bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_spi = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_spi = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_lPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_spi = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortS_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_rPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortS_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortS_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_spi = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_tos = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortR_rPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortS_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortS_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortR_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_rPortS_rPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_rPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortS_rPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_rPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortS_rPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_rPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortS_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_spi = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_tos = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS_spi_tos = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortS_lPortR_rPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortS_spi_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortS_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortR_spi_tos = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortS_lPortR_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortR_spi_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortR_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_spi_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_rPortS_rPortR_spi_tos = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortS_rPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortS_rPortR_spi_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortS_rPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortS_rPortR_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_rPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortS_spi_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS_rPortR_spi_tos = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortS_rPortR_spi_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortS_rPortR_tos_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortS_spi_tos_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortR_spi_tos_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_rPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_tos = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_rPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_tos = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_tos = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_tos = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortR_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortR_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortR_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_spi_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_tos = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_rPortR_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_spi_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_tos = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_rPortR_tos_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_spi_tos_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortR_spi_tos_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortR_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_tos = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_tos = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortS_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_tos_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_tos = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortR_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortR_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortR_tos_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortR_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_spi_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_spi_tos_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_lPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_spi_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_tos = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortS_rPortR_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_rPortR_tos_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_rPortR_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortS_spi_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortS_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_spi_tos_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_rPortS_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_spi_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortS_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortR_spi_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortR_spi_tos_frag = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortR_spi_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortR_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_tos = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR_tos_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_rPortR_tos_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_rPortR_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_spi_tos_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_spi_tos_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortR_rPortS_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_spi_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_tos_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortR_spi_tos_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortR_spi_tos_frag = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortR_rPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortR_spi_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortR_tos_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortS_rPortR_spi_tos_flowLabel = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_rPortR_spi_tos_frag = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_rPortR_spi_flowLabel_frag = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_rPortR_tos_flowLabel_frag = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_spi_tos_flowLabel_frag = bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_tos = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR_tos_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_rPortR_tos_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_rPortR_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_spi_tos_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_spi_tos_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_spi_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_spi_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_tos_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortR_spi_tos_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortR_spi_tos_frag = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortS_lPortR_rPortR_spi_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortR_spi_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortR_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortR_tos_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_spi_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_spi_tos_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortS_rPortR_spi_tos_flowLabel = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_rPortR_spi_tos_frag = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortS_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_rPortR_spi_flowLabel_frag = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_rPortR_tos_flowLabel_frag = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_spi_tos_flowLabel_frag = bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortR_spi_tos_flowLabel_frag = bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_rPortR_spi_tos_flowLabel = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_rPortR_spi_tos_frag = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortR_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_rPortR_spi_flowLabel_frag = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_rPortR_tos_flowLabel_frag = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_spi_tos_flowLabel_frag = bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortR_spi_tos_flowLabel_frag = bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortS_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortS_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_rPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_spi_tos = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_spi_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortS_spi_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortR_spi_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_rPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortR_rPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_tos = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_tos_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_tos_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_tos_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortR_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_tos_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_rPortR_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_tos_flowLabel = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_tos_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_rPortR_tos_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_tos_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_rPortR_tos_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_spi_tos_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortR_spi_tos_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortR_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortR_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_rPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortR_rPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_lPortS_lPortR_rPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortR_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortR_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v4Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_frag = bmp_v4Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortR_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel_emptyTCPAck = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_emptyTCPAck,
+ bmp_v6Addr_protocol_lPortS_lPortR_rPortS_rPortR_spi_tos_flowLabel_frag = bmp_v6Addr | bmp_protocol | bmp_lPortS | bmp_lPortR | bmp_rPortS | bmp_rPortR | bmp_spi | bmp_tos | bmp_flowLabel | bmp_frag,
+
+}tft_pf_bmp_e;
+
+/*
+ * From
+ * http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
+ * For trace display
+ */
+typedef enum {
+ PROTOCOL_HOPOPT = 0,
+ PROTOCOL_ICMP = 1,
+ PROTOCOL_IGMP = 2,
+ PROTOCOL_GGP = 3,
+ PROTOCOL_IPv4 = 4,
+ PROTOCOL_ST = 5,
+ PROTOCOL_TCP = 6,
+ PROTOCOL_CBT = 7,
+ PROTOCOL_EGP = 8,
+ PROTOCOL_IGP = 9,
+ PROTOCOL_BBNRCCMON = 10,
+ PROTOCOL_NVPII = 11,
+ PROTOCOL_PUP = 12,
+ PROTOCOL_ARGUS = 13,
+ PROTOCOL_EMCON = 14,
+ PROTOCOL_XNET = 15,
+ PROTOCOL_CHAOS = 16,
+ PROTOCOL_UDP = 17,
+ PROTOCOL_MUX = 18,
+ PROTOCOL_DCNMEAS = 19,
+ PROTOCOL_HMP = 20,
+ PROTOCOL_PRM = 21,
+ PROTOCOL_XNSIDP = 22,
+ PROTOCOL_TRUNK1 = 23,
+ PROTOCOL_TRUNK2 = 24,
+ PROTOCOL_LEAF1 = 25,
+ PROTOCOL_LEAF2 = 26,
+ PROTOCOL_RDP = 27,
+ PROTOCOL_IRTP = 28,
+ PROTOCOL_ISOTP4 = 29,
+ PROTOCOL_NETBLT = 30,
+ PROTOCOL_MFENSP = 31,
+ PROTOCOL_MERITINP = 32,
+ PROTOCOL_DCCP = 33,
+ PROTOCOL_3PC = 34,
+ PROTOCOL_IDPR = 35,
+ PROTOCOL_XTP = 36,
+ PROTOCOL_DDP = 37,
+ PROTOCOL_IDPRCMTP = 38,
+ PROTOCOL_TPPLUSPLUS = 39,
+ PROTOCOL_IL = 40,
+ PROTOCOL_IPv6 = 41,
+ PROTOCOL_SDRP = 42,
+ PROTOCOL_IPv6Route = 43,
+ PROTOCOL_IPv6Frag = 44,
+ PROTOCOL_IDRP = 45,
+ PROTOCOL_RSVP = 46,
+ PROTOCOL_GRE = 47,
+ PROTOCOL_DSR = 48,
+ PROTOCOL_BNA = 49,
+ PROTOCOL_ESP = 50,
+ PROTOCOL_AH = 51,
+ PROTOCOL_INLSP = 52,
+ PROTOCOL_SWIPE = 53,
+ PROTOCOL_NARP = 54,
+ PROTOCOL_MOBILE = 55,
+ PROTOCOL_TLSP = 56,
+ PROTOCOL_SKIP = 57,
+ PROTOCOL_IPv6ICMP = 58,
+ PROTOCOL_IPv6NoNxt = 59,
+ PROTOCOL_IPv6DestOpts = 60,
+ PROTOCOL_CFTP = 62,
+ PROTOCOL_SATEXPAK = 64,
+ PROTOCOL_KRYPTOLAN = 65,
+ PROTOCOL_RVD = 66,
+ PROTOCOL_IPPC = 67,
+ PROTOCOL_SATMON = 69,
+ PROTOCOL_VISA = 70,
+ PROTOCOL_IPCV = 71,
+ PROTOCOL_CPNX = 72,
+ PROTOCOL_CPHB = 73,
+ PROTOCOL_WSN = 74,
+ PROTOCOL_PVP = 75,
+ PROTOCOL_BRSATMON = 76,
+ PROTOCOL_SUNND = 77,
+ PROTOCOL_WBMON = 78,
+ PROTOCOL_WBEXPAK = 79,
+ PROTOCOL_ISOIP = 80,
+ PROTOCOL_VMTP = 81,
+ PROTOCOL_SECUREVMTP = 82,
+ PROTOCOL_VINES = 83,
+ PROTOCOL_TTP = 84,
+ PROTOCOL_IPTM = 84,
+ PROTOCOL_NSFNETIGP = 85,
+ PROTOCOL_DGP = 86,
+ PROTOCOL_TCF = 87,
+ PROTOCOL_EIGRP = 88,
+ PROTOCOL_OSPFIGP = 89,
+ PROTOCOL_SpriteRPC = 90,
+ PROTOCOL_LARP = 91,
+ PROTOCOL_MTP = 92,
+ PROTOCOL_AX = 93,
+ PROTOCOL_IPIP = 94,
+ PROTOCOL_MICP = 95,
+ PROTOCOL_SCCSP = 96,
+ PROTOCOL_ETHERIP = 97,
+ PROTOCOL_ENCAP = 98,
+ PROTOCOL_GMTP = 100,
+ PROTOCOL_IFMP = 101,
+ PROTOCOL_PNNI = 102,
+ PROTOCOL_PIM = 103,
+ PROTOCOL_ARIS = 104,
+ PROTOCOL_SCPS = 105,
+ PROTOCOL_QNX = 106,
+ PROTOCOL_A = 107,
+ PROTOCOL_IPComp = 108,
+ PROTOCOL_SNP = 109,
+ PROTOCOL_CompaqPeer = 110,
+ PROTOCOL_IPXinIP = 111,
+ PROTOCOL_VRRP = 112,
+ PROTOCOL_PGM = 113,
+ PROTOCOL_L2TP = 115,
+ PROTOCOL_DDX = 116,
+ PROTOCOL_IATP = 117,
+ PROTOCOL_STP = 118,
+ PROTOCOL_SRP = 119,
+ PROTOCOL_UTI = 120,
+ PROTOCOL_SMP = 121,
+ PROTOCOL_SM = 122,
+ PROTOCOL_PTP = 123,
+ PROTOCOL_ISIS = 124,
+ PROTOCOL_FIRE = 125,
+ PROTOCOL_CRTP = 126,
+ PROTOCOL_CRUDP = 127,
+ PROTOCOL_SSCOPMCE = 128,
+ PROTOCOL_IPLT = 129,
+ PROTOCOL_SPS = 130,
+ PROTOCOL_PIPE = 131,
+ PROTOCOL_SCTP = 132,
+ PROTOCOL_FC = 133,
+ PROTOCOL_RSVPE2EIGNORE = 134,
+ PROTOCOL_Mobility = 135,
+ PROTOCOL_UDPLite = 136,
+ PROTOCOL_MPLSinIP = 137,
+ PROTOCOL_manet = 138,
+ PROTOCOL_HIP = 139,
+ PROTOCOL_Shim6 = 140,
+ PROTOCOL_WESP = 141,
+ PROTOCOL_ROHC = 142,
+}tft_pf_protocol_e;
+#endif /* ----- #ifndef TFT_PF_ENUM_INC ----- */
+
diff --git a/mcu/interface/protocol/general/uas_eas_inter_core_enum.h b/mcu/interface/protocol/general/uas_eas_inter_core_enum.h
new file mode 100644
index 0000000..458f249
--- /dev/null
+++ b/mcu/interface/protocol/general/uas_eas_inter_core_enum.h
@@ -0,0 +1,63 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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:
+ * ---------
+ * uas_eas_inter_core_enum.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ * ----------------------------------------------------------------------------
+ * $Log:$
+ *
+ *
+ ******************************************************************************/
+
+#ifndef __UAS_EAS_INTER_CORE_ENUM_H__
+#define __UAS_EAS_INTER_CORE_ENUM_H__
+
+
+#endif /* __UAS_EAS_INTER_CORE_ENUM_H__ */
diff --git a/mcu/interface/protocol/general/uas_eas_inter_core_struct.h b/mcu/interface/protocol/general/uas_eas_inter_core_struct.h
new file mode 100644
index 0000000..2f0d3f5
--- /dev/null
+++ b/mcu/interface/protocol/general/uas_eas_inter_core_struct.h
@@ -0,0 +1,132 @@
+/*****************************************************************************
+* 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) 2014
+*
+* 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:
+ * ---------
+ * uas_eas_inter_core_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ * ----------------------------------------------------------------------------
+ * $Log:$
+ *
+ * 03 21 2017 jui-chih.chin
+ * [MOLY00236733] [MT6293][ERRC][MOB] Standby RSRQOnAllSymbols measurement from UAS
+ *
+ * Interface part
+ *
+ * 12 19 2014 birui.li
+ * [MOLY00087677] [U3G][TDD][UAS RRCE] modifications for U3G
+ * merge from peng-an CBr.
+ *
+ * 12 16 2014 dongqing.qi
+ * [MOLY00087344] [UMOLY][TDD][UAS]sync U-Bin CBr to UMOLY TRUNCK
+ * .low power(lmeme IRAT interfacel 2)
+ *
+ * 12 16 2014 claud.li
+ * [MOLY00087795] [MEME] universal bin check in
+ * [Universal bin][FDD][MEME/EAS/GAS] interface
+ *
+ *
+ ******************************************************************************/
+
+#ifndef __UAS_EAS_INTER_CORE_STRUCT_H__
+#define __UAS_EAS_INTER_CORE_STRUCT_H__
+
+#include "as_inter_core_enum.h"
+#include "as_inter_core_struct.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 tid;
+ kal_uint8 freq_num;
+ eas_meas_freq_rslt_struct freq[MAX_MEAS_IRAT_FREQ];
+ kal_bool rsrq_meas_on_all_symbols;
+} uas_eas_lte_measurement_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 freq_num;
+ eas_hps_qualify_struct freq[MAX_MEAS_IRAT_FREQ];
+ /* This flag is used to indicate whether measurement period should be reset
+ * immediately. (TRUE: meas is performed in the first DRX.
+ * FALSE: meas is performed in the first T-meas occasion)
+ * In current design, the following rules should be followed.
+ * (1)If freq_num != 0, this flag will be set as FALSE only if tmeasure measurement
+ * is triggered when priority measurement is on-going (i.e., at
+ * least one of LTE cells hits priority reselection criteria for
+ * priority based measurement reselection). If any improvement is
+ * needed, the usage limitation for this flag should be confirmed
+ * with EL1's colleague.
+ * (2) If freq_num == 0, this flag will alwyas be set as FALSE;
+ */
+ kal_bool is_meas_period_reset;
+} uas_eas_lte_hps_qualify_cell_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 list_ref;
+ ir_umts_measured_result ir_umts_meas_info;
+ kal_bool isLongPeriod;
+#ifdef UNIT_TEST
+ kal_uint32 meas_ind_ms_diff;
+#endif /* UNIT_TEST */
+}eas_fdd_uas_ucell_meas_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 list_ref;
+ ts_ir_umts_meas_info ir_umts_meas_info;
+ kal_bool isLongPeriod;
+#ifdef UNIT_TEST
+ kal_uint32 meas_ind_ms_diff;
+#endif /* UNIT_TEST */
+}eas_tdd_uas_ucell_meas_ind_struct;
+
+#endif /* __UAS_EAS_INTER_CORE_STRUCT_H__ */
diff --git a/mcu/interface/protocol/general/uas_gas_inter_core_enum.h b/mcu/interface/protocol/general/uas_gas_inter_core_enum.h
new file mode 100644
index 0000000..738ddf8
--- /dev/null
+++ b/mcu/interface/protocol/general/uas_gas_inter_core_enum.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) 2014
+*
+* 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:
+ * ---------
+ * uas_gas_inter_core_enum.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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 __UAS_GAS_INTER_CORE_ENUM_H__
+#define __UAS_GAS_INTER_CORE_ENUM_H__
+
+typedef enum {
+ IR_URRC_INVALID = 0,
+ IR_URRC_IDLE = 1,
+ IR_URRC_PCH,
+ IR_URRC_FACH,
+ IR_URRC_DCH
+}te_ir_urrc_state;
+
+#endif /* __UAS_GAS_INTER_CORE_ENUM_H__ */
diff --git a/mcu/interface/protocol/general/uas_gas_inter_core_struct.h b/mcu/interface/protocol/general/uas_gas_inter_core_struct.h
new file mode 100644
index 0000000..0d76591
--- /dev/null
+++ b/mcu/interface/protocol/general/uas_gas_inter_core_struct.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) 2014
+*
+* 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:
+ * ---------
+ * uas_gas_inter_core_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * 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!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __UAS_GAS_INTER_CORE_STRUCT_H__
+#define __UAS_GAS_INTER_CORE_STRUCT_H__
+
+#include "as_inter_core_struct.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 list_ref;
+ ts_ir_gsm_cell_rssi_info gsm_cell_rssi_info;
+ kal_bool is_long_period;
+}uas_gas_gcell_meas_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ts_ir_gsm_cell_bsic_info gsm_cell_bsic_info;
+}uas_gas_gcell_bsic_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 list_ref;
+ ir_umts_measured_result ir_umts_meas_info;
+#if defined(__LTE_RAT__) || defined(__23G_PRI_RESEL_SUPPORT__)
+ kal_bool isLongPeriod;
+#endif /* defined(__LTE_RAT__) || defined(__23G_PRI_RESEL_SUPPORT__) */
+#ifdef UNIT_TEST
+kal_uint32 meas_ind_ms_diff;
+#endif /* UNIT_TEST */
+}fdd_gas_uas_ucell_meas_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 list_ref;
+ ts_ir_umts_meas_info ir_umts_meas_info;
+#if defined(__LTE_RAT__) || defined(__23G_PRI_RESEL_SUPPORT__)
+ kal_bool isLongPeriod;
+#endif /* defined(__LTE_RAT__) || defined(__23G_PRI_RESEL_SUPPORT__) */
+#ifdef UNIT_TEST
+kal_uint32 ucell_meas_ind_ms_diff;
+#endif /* UNIT_TEST */
+}tdd_gas_uas_ucell_meas_ind_struct;
+#endif /* __UAS_GAS_INTER_CORE_STRUCT_H__ */
diff --git a/mcu/interface/protocol/general/ue_testmode_struct.h b/mcu/interface/protocol/general/ue_testmode_struct.h
new file mode 100644
index 0000000..6f96a31
--- /dev/null
+++ b/mcu/interface/protocol/general/ue_testmode_struct.h
@@ -0,0 +1,95 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * ue_testmode_struct.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * For common strucures used by data plane test mode configurations and test
+ * loop operations.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * @date 2016/7/6 08:54:24 PM
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 08 21 2018 tc.chang
+ * [MOLY00347143] [Gen97] ENPDCP-RATDM interface update.
+ *
+ *
+ ****************************************************************************/
+
+#ifndef UE_TESTMODE_STRUCT_H
+#define UE_TESTMODE_STRUCT_H
+
+#include "kal_public_api.h"
+
+#define MAX_NUM_MODE_A_LB_RB 8
+
+typedef enum {
+ TESTLOOP_CMD_MODE_A_DEACTIVATE, // open test loop for mode A
+ TESTLOOP_CMD_MODE_A_ACTIVATE, // close test loop for mode A
+ TESTLOOP_CMD_MODE_B_DEACTIVATE, // open test loop for mode B
+ TESTLOOP_CMD_MODE_B_ACTIVATE // close test loop for mode B
+} testloop_cmd_enum;
+
+typedef struct {
+ kal_uint8 rb_idx; // i.e., flow_id
+ kal_uint8 scaling; // needs scaling or not
+ kal_uint16 size; // in bytes
+} testloop_rb_cfg_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR // IPCORE, UPCM, RATDM, EPDCP and ENPDCP share this message structure
+
+ testloop_cmd_enum cmd;
+ kal_uint32 rb_num; // number of RBs configured for Mode A
+ testloop_rb_cfg_struct rb_cfg[MAX_NUM_MODE_A_LB_RB]; // for Test Loop Mode A
+ kal_uint8 delay_time; // for Test Loop Mode B; in seconds
+} testloop_cfg_struct;
+
+#endif /* #ifndef UE_TESTMODE_STRUCT_H */
+
diff --git a/mcu/interface/protocol/general/upcm_enum.h b/mcu/interface/protocol/general/upcm_enum.h
new file mode 100644
index 0000000..3bd2540
--- /dev/null
+++ b/mcu/interface/protocol/general/upcm_enum.h
@@ -0,0 +1,287 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * upcm_enum.h
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 03 10 2020 tc.chang
+ * [MOLY00503980] [J7A][CN]?¸m???±µ¥¢?.
+ *
+ * 12 05 2019 tc.chang
+ * [MOLY00463764] Correct timer unit and pdn sim id in rqos set timer.
+ *
+ * 12 05 2019 tc.chang
+ * [MOLY00463783] [MT6885][Petrus][MP1][IODT][CTC][FT][SA][5G FT][China][Shenzhen][Huawei][Operator FT]IMS call fail @SA network.
+ *
+ * 09 24 2019 amit.singh
+ * [MOLY00442150] [DISPATCHER] EPDG related bearer and PDN ID range definition
+ *
+ * Epdg relatd enum declaration.
+ *
+ * 07 04 2019 tc.chang
+ * [MOLY00418272] [Gen97] Sync Gen95 UMOLYE patch.
+ *
+ * 02 15 2019 tc.chang
+ * [MOLY00373282] [ENPDCP] MCPS enhancement and SA phone call volunteer patch.
+ *
+ * 10 09 2018 tc.chang
+ * [MOLY00356444] [VMOLY] Bug fix and add UT cases.
+ *
+ * 10 08 2018 tc.chang
+ * [MOLY00356444] [VMOLY] Bug fix and add UT cases.
+ *
+ * 09 18 2018 tc.chang
+ * [MOLY00345990] [VMOLY] Code sync.
+ *
+ * 09 14 2018 tc.chang
+ * [MOLY00345990] [VMOLY] Code sync
+ * Rollback first. Fix build error locally
+ *
+ * 03 23 2017 chin-wei.hsu
+ * [MOLY00237294] [MT6293][UPCM] Forced SW path
+ * [trunk] Forced SW path for EBI/PDN.
+ *
+ * 12 28 2016 cammie.yang
+ * [MOLY00221324] [6293][EL2][UPCM] C2K feature integrations
+ * [TRUNK][UPCM] modifications for C2K feature integrations
+ *
+ * 12 27 2016 cammie.yang
+ * [MOLY00221324] [6293][EL2][UPCM] C2K feature integrations
+ * [UMOLYA][UPCM] Interface change for C2K integration
+ *
+ * 09 26 2016 cammie.yang
+ * [MOLY00195563] [6293][EL2][UPCM][RATDM][EPDCP] Initial feature integrations
+ * [TRUNK] UPCM/RATDM/EPDCP feature integrations from PS.DEV
+ *
+ * 07 17 2013 moja.hsu
+ * [MOLY00030111] Add UPCM Tx/Rx statistics query API
+ * .
+ *
+ ****************************************************************************/
+/*
+ * =====================================================================================
+ *
+ * Filename: upcm_enum.h
+ *
+ * Description: UPCM (User plane connection manager exported header file)
+ * ENUM values for trace.
+ *
+ * Created: 2012/3/19 �W�� 11:20:22
+ *
+ * Author: mtk01641 (moja)
+ * =====================================================================================
+ */
+#ifndef UPCM_ENUM_INC
+#define UPCM_ENUM_INC
+
+#include "ps_public_enum_public.h"
+
+/* PDN ID
+ * Invalid: 0
+ * Reserved: 1 ~ 3
+ * MBMS: 4
+ * LTE: 5 ~ 15
+ * C2K: 16 ~ 23
+ * 5G: 24 ~ 38 (maps to PDN session ID 1 ~ 15)
+ * EPDG: 39 ~ 53 (maps to PDN session for bearer ID 1 ~ 15)
+ */
+#define MAX_234G_EPSB_NUM 24 // FOR C2K
+#define QFI_NUM_PER_PSI 64
+#define MIN_5G_BEARER_ID MAX_234G_EPSB_NUM
+#define MIN_5G_PDN_ID MAX_234G_EPSB_NUM
+#define NUM_5G_PDU_SESSION 15
+#define MAX_5G_PDN_ID (MIN_5G_PDN_ID + NUM_5G_PDU_SESSION - 1)
+#define MIN_PDN_ID (L4_PS_MIN_EBI)
+
+//for EPDG
+#define MIN_EPDG_BEARER_ID 1
+#define MAX_EPDG_BEARER_ID 15
+#define MIN_EPDG_PDN_ID 39
+#define MAX_EPDG_PDN_ID 53
+#define MAX_EPDG_CID 200
+
+
+#ifdef __FIVEG_NAS__
+#define MAX_EPSB_NUM 984
+#define MAX_PDN_ID MAX_5G_PDN_ID
+#else
+#define MAX_EPSB_NUM MAX_234G_EPSB_NUM
+#define MAX_PDN_ID (MAX_EPSB_NUM - 1)
+#endif
+
+/*
+ * LTE: 5 ~ 15 maps to SIT index 0 ~ 10
+ * C2K: 16 ~ 23 maps to SIT index 0 ~ 7
+ */
+#define MAX_234G_SIT_NUM 11
+
+#define UPCM_FIVEG_PDN_ID_TO_PSI(_id) \
+ (((_id) >= MIN_5G_PDN_ID && (_id) <= MAX_5G_PDN_ID) ? ((_id) - MIN_5G_PDN_ID + 1) : (0))
+
+#define UPCM_FIVEG_PSI_TO_PDN_ID(_id) ((_id) + MIN_5G_PDN_ID - 1)
+
+// Gen97
+#define UPCM_PDN_SIM_ID(_pdn, _sim) ((((_sim) & 0x3) << 6) | ((_pdn) & 0x3F))
+
+typedef enum
+{
+ IP_TYPE_MISC,
+ IP_TYPE_V4,
+ IP_TYPE_V6,
+}ip_type_e;
+
+/*
+ * bit 0:Indicate if test mode is activate.
+ * bit 1:Indicate if test loop is closed.
+ * bit 2: BUFFER_IP_PDU
+ * bit 3: Drop UL/DL SDUs
+ */
+typedef enum
+{
+ TEST_FLAG_MODE = 0x01,
+ TEST_FLAG_LOOP_A = 0x02,
+ TEST_FLAG_LOOP_B = 0x04,
+ TEST_FLAG_BUFFER = 0x08,
+ TEST_FLAG_DROP = 0x10,
+}upcm_test_flag_e;
+
+typedef enum
+{
+ TEST_RESULT_OK = 0,
+ TEST_RESULT_NG = 1,
+ TEST_RESULT_WAIT_OPEN_LOOP = 2,
+}upcm_test_result_e;
+
+/*
+ * Used for trace
+ */
+typedef enum
+{ // TODO: update for new flags
+ UPCM_NORMAL = 0,
+ UPCM_TEST = TEST_FLAG_MODE,
+ UPCM_LOOP = TEST_FLAG_LOOP_B,
+ UPCM_BUF = TEST_FLAG_BUFFER,
+ UPCM_DROP = TEST_FLAG_DROP,
+ UPCM_TEST_LOOP = UPCM_TEST | UPCM_LOOP,
+ UPCM_TEST_BUF = UPCM_TEST | UPCM_BUF,
+ UPCM_TEST_DROP = UPCM_TEST | UPCM_DROP,
+ UPCM_LOOP_BUF = UPCM_LOOP | UPCM_BUF,
+ UPCM_LOOP_DROP = UPCM_LOOP | UPCM_DROP,
+ UPCM_BUF_DROP = UPCM_BUF | UPCM_DROP,
+ UPCM_TEST_LOOP_BUF = UPCM_TEST | UPCM_LOOP | UPCM_BUF,
+ UPCM_TEST_LOOP_DROP = UPCM_TEST | UPCM_LOOP | UPCM_DROP,
+ UPCM_TEST_BUF_DROP = UPCM_TEST | UPCM_BUF | UPCM_DROP,
+ UPCM_LOOP_BUF_DROP = UPCM_LOOP | UPCM_BUF | UPCM_DROP,
+ UPCM_TEST_LOOP_BUF_DROP = UPCM_TEST | UPCM_LOOP | UPCM_BUF | UPCM_DROP,
+}upcm_test_e;
+
+typedef enum
+{
+ TACT_DELAYTIMER_RUNNING,
+ TACT_DELAYTIMER_TIMEOUT,
+ TACT_BUFFER,
+ TACT_LOOPBACK,
+ TACT_DISCARD,
+ TACT_DELIVER_TO_UPPER,
+}upcm_test_act_e;
+
+typedef enum
+{
+ UBACT_ACTIVE,
+ UBACT_DEACTIVE,
+}upcm_bearer_act_e;
+
+typedef enum
+{
+ UPCM_SUSPEND,
+ UPCM_RESUME,
+}upcm_sus_res_e;
+
+typedef enum
+{
+ UPT_Open,
+ UPT_Close,
+}upcm_act_test_mode_e;
+
+typedef enum
+{
+ UPT_AlreadyAct,
+ UPT_NotAct,
+ UPT_AlreadyClose,
+ UPT_AlreadyOpen,
+ UPT_HasPDN,
+ UPT_HasMoreThan1PDN,
+}upcm_test_mode_fail_code_e;
+
+typedef enum
+{
+ UPCM_PDN_ACT,
+ UPCM_PDN_DEACT,
+}upcm_pdn_info_e;
+
+typedef enum
+{
+ UPCM_PDN_ID_234G_C2K,
+ UPCM_PDN_ID_5G,
+
+ UPCM_PDN_ID_MAX_NUM,
+} upcm_query_pdn_id_e;
+
+/********************************************
+ * FUNCTION DECLARATIONS *
+ ********************************************/
+/* Export for the users not in protocol */
+kal_uint8 upcm_query_pdn_id(upcm_query_pdn_id_e type, kal_uint8 bearer_id);
+
+
+#endif /* ----- #ifndef UPCM_ENUM_INC ----- */
diff --git a/mcu/interface/protocol/general/vdm_public_defs.h b/mcu/interface/protocol/general/vdm_public_defs.h
new file mode 100644
index 0000000..909147f
--- /dev/null
+++ b/mcu/interface/protocol/general/vdm_public_defs.h
@@ -0,0 +1,24 @@
+#ifndef _VDM_PUBLIC_DEFS_H
+#define _VDM_PUBLIC_DEFS_H
+
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+#include "md_sap.h"
+
+/* Notified Modules */
+static call_status_notify_module_info_struct call_status_notify_module[] =
+{
+ {MOD_L4C, VDM_L4C_SAP, VDM_CALL_STATUS_ALL, CFG_GEMINI_MOD},
+ {MOD_SASE_CLIENT, VDM_SASE_SAP, VDM_CALL_STATUS_IMS_GROUP, CFG_GEMINI_MOD},
+
+#if defined(__IMS_SUPPORT__) && !defined(__TC01_IMS_SUPPORT__) && !defined(__IPC_ADAPTER__)
+ {MOD_IMC, VDM_IMC_SAP, VDM_CALL_STATUS_FIRST_CALL_ATTEMPT|VDM_CALL_STATUS_ALL_CALL_END, CFG_GEMINI_MOD},
+#endif /* __IMS_SUPPORT__ && !(__TC01_IMS_SUPPORT__) */
+
+#if defined(__IDC_ENABLED__)
+ {MOD_L1_IDC, VDM_IDC_SAP, VDM_CALL_STATUS_FIRST_IMS_CALL_CONNECTED|VDM_CALL_STATUS_LAST_IMS_CALL_DISCONNECTED, CFG_GEMINI_MOD},
+#endif /*__IDC_ENABLED__*/
+
+};
+#endif /* _VDM_PUBLIC_DEFS_H */
+
diff --git a/mcu/interface/protocol/general/vgsm_cause_enum.h b/mcu/interface/protocol/general/vgsm_cause_enum.h
new file mode 100644
index 0000000..4f2eb8a
--- /dev/null
+++ b/mcu/interface/protocol/general/vgsm_cause_enum.h
@@ -0,0 +1,103 @@
+ /* ============================== VGSM cause ============================== */
+ // 3GPP 24.501 5GSM SPEC caue values
+ VGSM_SPEC_CAUSE_ENUM(NO_CAUSE ,1 ) /* Cause not assigned */
+ VGSM_SPEC_CAUSE_ENUM(OPERATOR_DETERMINED_BARRING ,8 ) /* Operator determined barring */
+ VGSM_SPEC_CAUSE_ENUM(INSUFFICIENT_RESOURCES ,26 ) /* Insufficient resources */
+ VGSM_SPEC_CAUSE_ENUM(MISSING_OR_UNKNOWN_DNN ,27 ) /* Missing or unknown DNN */
+ VGSM_SPEC_CAUSE_ENUM(UNKNOWN_PDU_SESSION_TYPE ,28 ) /* Unknown PDU session type */
+ VGSM_SPEC_CAUSE_ENUM(USER_AUTH_FAILED ,29 ) /* User authentication or authorization failed */
+ VGSM_SPEC_CAUSE_ENUM(REQUEST_REJECTED_BY_SGW_OR_PDNGW ,30 ) /* Request rejected by Serving GW or PDN GW */
+ VGSM_SPEC_CAUSE_ENUM(REQUEST_REJECTED_UNSPECIFIED ,31 ) /* Request rejected unspecified */
+ VGSM_SPEC_CAUSE_ENUM(SERVICE_OPT_NOT_SUPPORTED ,32 ) /* Service option not supported */
+ VGSM_SPEC_CAUSE_ENUM(REQ_SERVICE_NOT_SUBSCRIBED ,33 ) /* Requested service option not subscribed */
+ VGSM_SPEC_CAUSE_ENUM(SERVICE_OPT_TEMP_OUT_OF_ORDER ,34 ) /* Service option temporarily out of order */
+ VGSM_SPEC_CAUSE_ENUM(PTI_ALREADY_USED ,35 ) /* PTI already in use */
+ VGSM_SPEC_CAUSE_ENUM(REGULAR_DEACTIVATION ,36 ) /* Regular deactivation */
+ VGSM_SPEC_CAUSE_ENUM(EPS_QOS_NOT_ACCEPTED ,37 ) /* EPS QoS not accepted */
+ VGSM_SPEC_CAUSE_ENUM(NETWORK_FAILURE ,38 ) /* Network failure */
+ VGSM_SPEC_CAUSE_ENUM(REACTIVATION_REQUESTED ,39 ) /* Re-activation requitred */
+ VGSM_SPEC_CAUSE_ENUM(SEMANTIC_ERROR_IN_TFT ,41 ) /* Semantic error in the TFT operation */
+ VGSM_SPEC_CAUSE_ENUM(SYNTACTIC_ERROR_IN_TFT ,42 ) /* Syntactical error in the TFT operation */
+ VGSM_SPEC_CAUSE_ENUM(INVALID_PDU_SESSION_IDENTITY ,43 ) /* Invalid PDU session identity */
+ VGSM_SPEC_CAUSE_ENUM(SEMANTIC_ERROR_IN_PACKET_FILTERS ,44 ) /* Semantic errors in packet filter(s) */
+ VGSM_SPEC_CAUSE_ENUM(SYNTACTIC_ERROR_IN_PACKET_FILTERS ,45 ) /* Syntactical errors in packet filter(s) */
+ VGSM_SPEC_CAUSE_ENUM(OUT_OF_LADN_SERVICE_AREA ,46 ) /* Out of LADN service area */
+ VGSM_SPEC_CAUSE_ENUM(PTI_MISMATCH ,47 ) /* PTI mismatch */
+ VGSM_SPEC_CAUSE_ENUM(LAST_PDN_DISC_NOT_ALLOWED ,49 ) /* Last PDN disconnection not allowed */
+ VGSM_SPEC_CAUSE_ENUM(PDU_SESSION_TYPE_IPV4_ONLY_ALLOWED ,50 ) /* PDU session type IPv4 only allowed */
+ VGSM_SPEC_CAUSE_ENUM(PDU_SESSION_TYPE_IPV6_ONLY_ALLOWED ,51 ) /* PDU session type IPv6 only allowed */
+ VGSM_SPEC_CAUSE_ENUM(SINGLE_ADDRESS_ONLY_ALLOWED ,52 ) /* Single address bearers only allowed */
+ VGSM_SPEC_CAUSE_ENUM(PDU_SESSION_NOT_EXIST ,54 ) /* PDU session does not exist */
+ VGSM_SPEC_CAUSE_ENUM(MULTIPLE_PDN_APN_NOT_ALLOWED ,55 ) /* Multiple PDN connections for a given APN not allowed */
+ VGSM_SPEC_CAUSE_ENUM(COLLISION_WITH_NW_INIT_REQUEST ,56 ) /* Collision with network initiated request */
+ VGSM_SPEC_CAUSE_ENUM(UNSUPPORTED_QCI_VALUE ,59 ) /* Unsupported QCI value */
+ VGSM_SPEC_CAUSE_ENUM(MAXIMUM_NUM_OF_EPS_BEARERS_REACHED ,65 ) /* Maximum number of EPS bearers reached */
+ VGSM_SPEC_CAUSE_ENUM(REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN_COMBINATION ,66 ) /* Requested APN not supported in current RAT and PLMN combination */
+ VGSM_SPEC_CAUSE_ENUM(INSUFFICIENT_RESOURCES_FOR_SPECIFIC_SLICE_AND_DNN ,67 ) /* Insufficient resources for specific slice and DNN */
+ VGSM_SPEC_CAUSE_ENUM(NOT_SUPPORTED_SSC_MODE ,68 ) /* Not supported SSC mode */
+ VGSM_SPEC_CAUSE_ENUM(INSUFFICIENT_RESOURCES_FOR_SPECIFIC_SLICE ,69 ) /* Insufficient resources for specific slice */
+ VGSM_SPEC_CAUSE_ENUM(MISSING_OR_UNKNOWN_DNN_IN_A_SLICE ,70 ) /* Missing or unknown DNN in a slice */
+ VGSM_SPEC_CAUSE_ENUM(INVALID_PTI_VALUE ,81 ) /* Invalid PTI value */
+ VGSM_SPEC_CAUSE_ENUM(MAX_DATA_RATE_PER_UE_FOR_UPLANE_INTEGRITY_PROTECTION_IS_TOO_LOW ,82 ) /* Maximum data rate per UE for user-plane integrity protection is too low */
+ VGSM_SPEC_CAUSE_ENUM(SEMANTIC_ERROR_IN_QOS_OPERATION ,83 ) /* Semantic error in QoS operation */
+ VGSM_SPEC_CAUSE_ENUM(SYNTACTIC_ERROR_IN_QOS_OPERATION ,84 ) /* Syntactic error in QoS operation */
+ VGSM_SPEC_CAUSE_ENUM(INVALID_MAPPED_EPS_BEARER_IDENTITY ,85 ) /* Invalid mapped EPS bearer identity */
+ VGSM_SPEC_CAUSE_ENUM(SEMANTICLLY_INCORRECT_MSG ,95 ) /* Semantically incorrect message */
+ VGSM_SPEC_CAUSE_ENUM(INVALID_MANDATORY_IE ,96 ) /* Invalid mandatory information */
+ VGSM_SPEC_CAUSE_ENUM(MSG_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENT ,97 ) /* Message type non-existent or not implemented */
+ VGSM_SPEC_CAUSE_ENUM(MSG_TYPE_NOT_COMPATIBLE_STATE ,98 ) /* Message type not compatible with protocol state */
+ VGSM_SPEC_CAUSE_ENUM(IE_NON_EXISTENT_NOT_IMPLEMENTED ,99 ) /* Information element non-existent or not implemented */
+ VGSM_SPEC_CAUSE_ENUM(CONDITIONAL_IE_ERROR ,100 ) /* Conditional IE error */
+ VGSM_SPEC_CAUSE_ENUM(MSG_NOT_COMPATIBLE_STATE ,101 ) /* Message not compatible with the protocol state */
+ VGSM_SPEC_CAUSE_ENUM(PROTOCOL_ERROR_UNSPECIFIED ,111 ) /* Protocol error unspecified */
+
+ /* VGSM PROPRIETARY CAUSE START */
+
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_START ,155)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_RESPONDER_REJ_REQ_DUE_TO_NESTED_SAME_REQ ,156)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_RESPONDER_REJ_REQ_DUE_TO_INVALID_PSI ,157)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_RESPONDER_REJ_REQ_DUE_VGSM_INIT_MOD_ONGOING ,158)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_RESPONDER_PROCESSING_TIME_NOT_ENOUGH ,159)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_RESPONDER_GUARANTEE_RESPONSE_TIMER_TIME_OUT ,160)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_RESPONDER_REJ_REQ_DUE_TO_VZ_REQ_5GNRSA_10_2_3 ,161)
+
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CONN_REJ_REQ_DUE_TO_PS_SUSPENDED ,170)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CONN_REJ_REQ_DUE_TO_ERROR_OCCURED ,171)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CONN_REJ_REQ_DUE_TO_HURRY_UP_REQ ,172)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CONN_REJ_REQ_DUE_TO_UAC_BARRING ,173)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CONN_REJ_REQ_DUE_TO_FATAL_FAIL ,174)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CONN_ABORT_PROC_DUE_TO_POSSIBLE_LONG_GEMINI_SUSPEND ,175)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CONN_REJ_REQ_DUE_TO_TRANSMISSION_FAILURE ,176)
+
+
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_SYSTEM_STATE_CHECK_FAIL ,180)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_REQ_INFO_ERROR ,181)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_TX_FAILURE ,182)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_TIMER_TIMEOUT ,183)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_LOCAL_RELEASE ,184)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_CANCLE_BY_RELEASE_FROM_UPPER_LAYER ,185)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_NW_RELEASE_ABORT_ORIGINAL_PROCEDURE ,186)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_MSG_NOT_FORWARD_ROUTING_FAILURE ,187) /* map to 5GMM cause #90*/
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_MSG_NOT_FORWARD_DNN_NOT_SUPPORT_IN_SLICE ,188) /* map to 5GMM cause #91*/
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_MSG_NOT_FORWARD_PLMN_MAX_NUM_PDU_SESSION_REACH ,189) /* map to 5GMM cause #65*/
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_MT_MOD_ABORT_ORIGINAL_PROCEDURE ,190)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_MT_MOD_ONGOING_MO_MOD_NOT_ALLOW ,191)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_SYNC_PDUS_STATUS_WITH_NW ,192)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_UE_DEREGISTER_FROM_NW ,193)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_5G23_DO_LOCAL_RELEASE ,194)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_THIS_PDU_WAS_REVIVED_IN_4G ,195)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_INTERSYSTEM_CHANGE_ABORT ,196)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_PDU_SESSION_ALREADY_DEACTIVATE ,197)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_5G4_MAP_FAILED ,198)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_TRIGGERED_BY_RQOS ,199)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_THIS_PDUS_CANNOT_TO_4G ,200)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_SYSTEM_STATE_UNSYNC_WITH_UPPER_LAYER ,201)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_UPPER_LAYER_REQ_FORCE_TO_LOCAL_REL_PDUS ,202)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_SYNC_EPSB_STATUS_WITH_NW ,203)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_PAM_REJECT_REQ ,204)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_SECOND_EMC_PDUS_NOT_ALLOW ,205)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_EST_NON_EMC_PDUS_NOT_ALLOW_WHEN_ENTER_EMC_REGISTERED ,206)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_THIS_MOD_REQ_ON_EMC_PDUS_IS_NOT_ALLOWED ,207)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_DUE_TO_DETACH_WITH_REATTACH_REQUIRED ,209)
+ VGSM_PROPRIETARY_CAUSE_ENUM(PROPRIETARY_CAUSE_CORE_MSG_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENT_INDICATED_BY_5GSM_STATUS ,210)
+ /* ============================== ~VGSM cause ============================== */
diff --git a/mcu/interface/protocol/general/wo_public_defs.h b/mcu/interface/protocol/general/wo_public_defs.h
new file mode 100644
index 0000000..bcb5e0c
--- /dev/null
+++ b/mcu/interface/protocol/general/wo_public_defs.h
@@ -0,0 +1,84 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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 __WO_PUBLIC_DEFS_H__
+#define __WO_PUBLIC_DEFS_H__
+
+#include "kal_public_defs.h"
+
+typedef enum {
+ WO_STATUS_OK = 0,
+ WO_STATUS_FAIL = 1, //Can't be used in the errcause of d2rm_wo_act_data_call_cnf_prv_struct
+
+ WO_STATUS_MAIN_ERROR_START = 1001,
+
+ /* NW error */
+ WO_STATUS_DNS_QUERY_TIMEOUT = 1040,
+ WO_STATUS_FQDN_NO_ADDRESS = 1041,
+ WO_STATUS_UNABLE_CONNET_EPDG = 1081, // from strongswan
+ WO_STATUS_UNABLE_MAKE_IPSEC_TUNNEL = 1082,
+ WO_STATUS_UNABLE_TO_VALIDATE_SERVER_CERTIFICATE = 1010, // Not support for ePDG
+ WO_STATUS_UNABLE_TO_VALIDATE_SERVER_CERTIFICATE_EPDG = 1101,
+ WO_STATUS_INVALID_CERTIFICATE = 1011, // Not support for ePDG
+ WO_STATUS_INVALID_CERTIFICATE_EPDG = 1111,
+ WO_STATUS_INVALID_IP_IN_HANDOVER = 1999,
+
+ /* Internal error */
+ WO_STATUS_NOT_READY = 2001,
+ WO_STATUS_NO_APN_CONNECTION = 2002,
+ WO_STATUS_PDN_INFO_NOT_MATCHED = 2003,
+ WO_STATUS_PDN_CAN_NOT_CREATE = 2004,
+ WO_STATUS_REJECT_PDN_ACT_REQ_IN_WRONG_STATE = 2005,
+ WO_STATUS_HO_ADDR_PROTO_NOT_MATCHED = 2006,
+ WO_STATUS_WRONG_PDN_REQ_TYPE = 2007,
+ WO_STATUS_PDN_ACT_ABORT = 2008,
+ WO_STATUS_PDN_ACT_TIMEOUT = 2009,
+ WO_STATUS_EMERGENCY_NO_IMEI = 2010,
+ WO_STATUS_PDN_LOCAL_RELEASE = 2011,
+
+ WO_STATUS_MAIN_ERROR_END = 3000,
+} wo_status_enum;
+
+typedef enum {
+ WO_IKE_ERR_STATUS_ENUM_NONE
+} wo_ike_err_status_enum;
+
+typedef enum {
+ WO_OOS_END,
+ WO_OOS_START,
+ WO_OOS_RESUME,
+} wo_oos_enum;
+
+#endif /* __WO_PUBLIC_DEFS_H__ */