[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
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
+
+