[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/middleware/hif/ipc_enums.h b/mcu/interface/middleware/hif/ipc_enums.h
new file mode 100644
index 0000000..8e16596
--- /dev/null
+++ b/mcu/interface/middleware/hif/ipc_enums.h
@@ -0,0 +1,382 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2005
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ *   ipc_enums.h
+ *
+ * Project:
+ * --------
+ *   TATAKA
+ *
+ * Description:
+ * ------------
+ *   IP Core public enumeration 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!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * 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 __INC_IPC_ENUMS_H
+#define __INC_IPC_ENUMS_H
+
+/*------------------------------------------------------------------------------
+ * Data structure definition.
+ *----------------------------------------------------------------------------*/
+#define IPC_IP_TYPE_MIXED           0
+#define IPC_IP_TYPE_IPV4            1
+#define IPC_IP_TYPE_IPV6            2
+#define IPC_IP_TYPE_INVALID         3
+
+/** extra flags */
+#define IPC_DRP_ALLW_PKT            (0x0001 << 0)
+
+/** Network interface configuration */
+#define IPC_F_DHCP4C                0x00000001  /** DHCPv4 Client */
+#define IPC_F_DYNAMIC_Q_MAPPING     0x00000008  /** CCMNI Dynamic Queue Mapping */
+#define IPC_F_TETHERING_ROUTE       0x00000002  /** Direct Tethering routing required */
+#define IPC_F_LAN                   0x00000004  /** LAN netif, which binds to other netif */
+#define IPC_F_LATENCY_CONCERN       0x00010000  /** Latency Concern Module */
+#define IPC_F_TEST_LOOPBACK_A       0x10000000  /** Test Loopback mode A */
+#define IPC_F_TEST_LOOPBACK_B       0x20000000  /** Test Loopback mode B */
+#define IPC_F_KEEP_PDN_MAPPING      0x00000010  /** Keep previous PDN mapping state */
+
+#define IPC_INVALID_HANDLE          NULL
+
+/** Filter feature option */
+#define IPC_FILTER_FEATURE_WC                   (0x01 << 0)  /** Wild card filter: report matched to all packets */
+#define IPC_FILTER_FEATURE_BWM                  (0x01 << 1)  /** Bypass when matched filter: bypass the matched packets */
+#define IPC_FILTER_FEATURE_IPV6_DPFM            (0x01 << 3)  /** Special feature for IPV6 MDT(no GPD callback) [Gen95 only]*/
+#define IPC_FILTER_FEATURE_FRAG                 (0x01 << 2)  /** Support to filter fragment packet */
+#define IPC_FILTER_FEATURE_CLONE                (0x01 << 6)  /** Matched filter action : clone it */
+#define IPC_FILTER_FEATURE_PFM_DL               (0x01 << 7)  /** Filter registered through PFM */
+#define IPC_FILTER_FEATURE_CUST_FILTER          (0x01 << 4)  /** Add customized filter flow */
+#define IPC_FILTER_FEATURE_CUST_FILTER_W_INFO   (0x01 << 5)  /** Add customized filter flow and callback with IPC_INFO instead of user arguments */
+#define IPC_FILTER_FEATURE_IG_PN                (0x01 << 8)  /** Ignore PDN & NETIF */
+
+/** 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)
+
+/** Network interface ID. */
+typedef enum _ipc_netif_id_e {
+    IPC_NETIF_ID_CCMNI_BEGIN = 0x00000000,
+    IPC_NETIF_ID_CCMNI_END   = 0x000000ff,
+    IPC_NETIF_ID_ETH_BEGIN   = 0x00000100,
+    IPC_NETIF_ID_ETH_END     = 0x000001ff,
+    IPC_NETIF_ID_MBIM_BEGIN  = 0x00000200,
+    IPC_NETIF_ID_MBIM_END    = 0x000002ff,
+    IPC_NETIF_ID_PPP_BEGIN   = 0x00000300,
+    IPC_NETIF_ID_PPP_END     = 0x000003ff,
+    IPC_NETIF_ID_LHIF_BEGIN  = 0x00000400,
+    IPC_NETIF_ID_LHIF_END    = 0x000004ff,
+    IPC_NETIF_ID_MCIF_BEGIN  = 0x00000500,
+    IPC_NETIF_ID_MCIF_END    = 0x000005ff,
+    IPC_NETIF_ID_VNIF_BEGIN  = 0x00000600,
+    IPC_NETIF_ID_VNIF_END    = 0x000006ff,
+} ipc_netif_id_e;
+
+/** IPCore defines netif type for CCMNI Queue Mapping */
+typedef enum _ipc_netif_type_e {
+    IPC_NETIF_TYPE_NORMAL,
+    IPC_NETIF_TYPE_LATENCY_CONCERN,
+} ipc_netif_type_e;
+
+/** UL Data Throttling feature option */
+#define IPC_THROTTLE_FEATURE_BLOCK_LANTENCY_CONCERN 0x01
+
+/** Gen93 DL DID HIF Type Enum definition */
+typedef enum _ipc_si_hif_type_e {
+    IPC_SI_HIF_TYPE_LHIF = 0,
+    IPC_SI_HIF_TYPE_USB  = 1,
+    IPC_SI_HIF_TYPE_MCIF = 2,
+    IPC_SI_HIF_TYPE_VNIF = 3,
+    IPC_SI_HIF_TYPE_IGR  = 0x7,
+    IPC_SI_HIF_TYPE_MAX,
+} ipc_si_hif_type_e;
+
+/** Get Packet Info Error Code */
+typedef enum _ipc_packet_info_parser_error_code {
+    V4_IPV4_HDR_FAILED = 0,
+    V4_UDP_HDR_FAILED,
+    V4_TCP_HDR_FAILED,
+    V4_ICMP_HDR_FAILED,
+    V4_AH_HDR_FAILED,
+    V4_ESP_HDR_FAILED,
+    V6_IPV6_HDR_FAILED,
+    V6_UDP_HDR_FAILED,
+    V6_TCP_HDR_FAILED,
+    V6_ICMP_HDR_FAILED,
+    V6_EXT_HDR_FAILED,
+    V6_ESP_HDR_FAILED,
+    FIND_V6_EXT_HDR_FAILED,
+    FIND_V6_EXT_HDR_SHIFT_FAILED,
+    IPC_PACKET_INFO_PARSER_ERROR_CODE_MAX = 0x7fffffff,
+} ipc_packet_info_parser_error_code;
+
+/** IPCore filter_info source descriptor type */
+typedef enum _ipc_fi_desc_type_e {
+    IPC_FI_DESC_TYPE_DID,
+    IPC_FI_DESC_TYPE_NONE,
+    IPC_FI_DESC_TYPE_MAX = 0xffffffff,
+} ipc_fi_desc_type_e;
+
+/** IPCORE UL throttle state enum */
+typedef enum _ipc_ul_throttle_state_e {
+    IPC_UL_THROTTLE_STATE_NONE,
+    IPC_UL_THROTTLE_STATE_ACTIVE,
+    IPC_UL_THROTTLE_STATE_SUSPEND,
+} ipc_ul_throttle_state_e;
+
+/** IPCore notification type definition */
+typedef enum _ipc_ntfy_type_e {
+    IPC_NTFY_TYPE_INVALID,
+    IPC_NTFY_TYPE_MIN,
+    IPC_NTFY_TYPE_ATTACH,
+    IPC_NTFY_TYPE_DETACH,
+    IPC_NTFY_TYPE_IP_DOWN,
+    IPC_NTFY_TYPE_IP_UP,
+    IPC_NTFY_TYPE_LINK_DOWN,
+    IPC_NTFY_TYPE_LINK_UP,
+    IPC_NTFY_TYPE_MAX,
+} ipc_ntfy_type_e;
+
+/** IPCore io request type */
+typedef enum _ipc_io_req_data_path_e {
+    IPC_NORMAL_DATA_PATH = 0,
+    IPC_INTERNAL_DATA_PATH,
+} ipc_io_req_data_path_e;
+
+/**
+ * Backward compatible to kal_bool isGPD in ipc_pkt_t.
+ * Note that NO_DESC MUST be 0 and GPD MUST be 1.
+ */
+typedef enum _ipc_pkt_des_type_e {
+    IPC_PKT_DES_TYPE_NO_DESC = 0,
+    IPC_PKT_DES_TYPE_GPD = 1,
+    IPC_PKT_DES_TYPE_SPD,
+    IPC_PKT_DES_TYPE_META,
+    IPC_PKT_DES_TYPE_DID,
+    IPC_PKT_DES_TYPE_MAX,
+} ipc_pkt_des_type_e;
+
+/** IPCore link req type definition */
+typedef enum _ipc_link_req_type_e {
+    IPC_LINK_REQ_TYPE_NORMAL,
+    IPC_LINK_REQ_TYPE_DPFM,
+} ipc_link_req_type_e;
+
+/** IPCore data path definition */
+typedef enum _ipc_data_path_direction_e {
+    DL_DIRECT = 0,
+    UL_DIRECT
+} ipc_data_path_direction_e;
+
+/** IPCore filter notification type */
+typedef enum _ipc_filter_ntfy_type_e {
+    IPC_FILTER_NTFY_CBK_FUNC,
+    IPC_FILTER_NTFY_ILM,
+    IPC_FILTER_NTFY_CBK_FUNC_WITH_FILTER_INFO,
+    IPC_FILTER_NTFY_ILM_WITH_FILTER_INFO
+} ipc_filter_ntfy_type_e;
+
+typedef enum _ipc_data_enq_position_e {
+    IPC_DATA_DID_HEAD = 0,
+    IPC_DATA_DID_TAIL
+} ipc_data_enq_position_e;
+
+#endif /* __INC_IPC_ENUMS_H */