[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 */