[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6

MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF  modem version: NA

Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/protocol/interface/general/mac2rlc_struct.h b/mcu/protocol/interface/general/mac2rlc_struct.h
new file mode 100644
index 0000000..01a0cfd
--- /dev/null
+++ b/mcu/protocol/interface/general/mac2rlc_struct.h
@@ -0,0 +1,487 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	mac2rlc_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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _MAC2RLC_STRUCT_H
+#define _MAC2RLC_STRUCT_H
+
+/*Evelyn: Remove redundant header and file */
+#include "rlcmac_struct.h"
+#include "kal_general_types.h"
+#include "rr_common_def.h"
+#include "gprs_rlcmac_common_struct.h"
+#include "rlc_mac_enums.h"
+
+typedef struct tbf_rel_struct mac_rlc_tbf_rel_ind_struct;
+
+typedef struct {
+    kal_uint8 cs;
+    kal_uint8 *data_ptr;
+    #ifdef __EGPRS_MODE__
+    kal_uint8 *data2_ptr;
+    kal_uint8 header[6];
+    #endif
+/* Evelyn 20090415: Merge R6 */
+
+    #ifdef __GERAN_FANR__
+    kal_bool is_data_valid;
+    kal_bool is_pan_valid;
+    kal_uint8 pan[4];
+    #endif
+} dl_block_struct;
+
+/* Evelyn 20090415: Merge R6 */
+typedef struct {
+    kal_uint8 mac_mode;
+    kal_uint8 cs;
+    kal_uint8 timeslots_allocation;
+#if 0
+/* under construction !*/
+#endif
+    /* Claire 041117 change : Revise GPRS header partition between RLC and MAC */
+    kal_uint8 tfi;      /*Simon use tfi to fill header*/
+
+    #ifdef __EGPRS_MODE__
+    kal_uint16 egprs_window_size;
+    kal_uint8 resegment; /* resegment bit */
+    #endif
+    kal_uint8 rlc_mode;
+    /* Evelyn: To slove [MAUI_01619453] Kenya FT T3168 restart issue  */
+    /* Evelyn: To slove the non-sync problem that MAC clean res_req when receiving assignment 
+     *         But RLC think res_req already sent after RLC_MAC_RES_REQ in UL state. 
+     *         So tell RLC res_req is sent or not. */
+    kal_bool res_req_is_sent;
+
+/* Evelyn: R7 Latency Reducation Development */
+#ifdef __GERAN_RTTI__
+    tti_config_enum tti_mode;
+#endif
+} ul_con_ind_struct;
+
+typedef struct mac_rlc_ul_con_ind_struct{
+    LOCAL_PARA_HDR
+    kal_uint8 tlli_channel_coding;
+
+    #ifndef __REMOVE_FA__
+    kal_uint8 final_allocation;
+    #endif
+    #ifndef __REL5__
+    kal_uint16 blks_granted;
+    #endif
+
+    kal_uint8 ph_cont;
+
+    #ifdef __EGPRS_MODE__
+    kal_uint8 tbf_type;
+    #endif
+
+    kal_uint8 no_ul_con_ind;
+    ul_con_ind_struct multi_ul_con_ind[MULTIPLE_TBF_NUM];
+    #ifdef __GERAN_FANR__
+    kal_bool is_fanr_active;
+    kal_uint8 tan_type;
+    kal_uint32 tsh;
+    kal_uint8 Reported_timeslot;
+    #endif
+} mac_rlc_ul_con_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 type;
+} mac_rlc_failure_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 no_blks;
+    kal_uint8 blks_sent;
+    kal_uint16 frame_number;
+/* Evelyn 20090415: Merge R6 */
+    kal_uint8 pfi;
+} mac_rlc_data_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+  
+    kal_uint8 cs;
+    kal_uint8 final_allocation;
+    kal_uint8 data_blks_granted;
+    kal_uint16 frame_number;
+#ifdef __EGPRS_MODE__
+    kal_uint8           resegment; /* re-segment bit */
+    kal_uint8           pre_emptive_retrans; /* pre-emptive */
+    TBF_TYPE            tbf_type_tag;   
+    union
+    {
+    ack_nack_desc_struct gprs_ie;
+    egprsack_nack_description_struct egprs_ie; /*  */
+    }ack_nack_struct;
+#else
+  union
+    {
+        ack_nack_desc_struct gprs_ie;
+  }ack_nack_struct;
+#endif
+
+#ifdef __TBF_EST__
+   kal_uint8 tbf_est;
+#endif
+    
+    /* Lanslo 20050825: for CRTU-G 52.1.2.1.8.1.8 
+     * PUAN without contention TLLI should be accepted 
+     * to process request of re-tx of PRR (and ARAC) 
+     * and ack/nack description during contention */
+    kal_bool is_contention_success;
+    /* eo Lanslo 20050825 */
+/* Evelyn 20090415: Merge R6 */
+} mac_rlc_ack_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 rlc_mode;
+#ifdef __EGPRS_MODE__
+    kal_uint16 window_size;
+    kal_uint8 tbf_type;
+#endif
+} mac_rlc_switch_to_dl_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ask_res_req;
+    kal_uint8 cause;
+} mac_rlc_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 blks_granted;
+/* Evelyn 20090415: Merge R6 */
+    kal_uint8 no_of_ul_ts_alloc;
+} mac_rlc_pdch_rel_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mac_mode;
+    kal_uint8 cs;
+    kal_uint8 tlli_channel_coding;
+    kal_uint8 final_allocation;
+    kal_uint8 ph_cont;
+    kal_uint8 timeslots_allocation;
+    kal_uint16 blks_granted;
+    #ifdef __EGPRS_MODE__
+    kal_uint8   resegment; /* resegment bit */
+    kal_uint8   window_size; /* window size */
+    kal_uint8   tbf_type; /* tbf type */
+    #endif
+
+} mac_rlc_switch_to_ul_struct;
+
+/* Evelyn 20090415: Merge R6 */
+typedef struct {
+    kal_uint8 rlc_mode;
+    #ifdef __EGPRS_MODE__
+    kal_uint16  window_size; /* downlink window size */
+    #endif
+/* Evelyn: R7 Latency Reducation Development */
+#ifdef __GERAN_RTTI__
+    tti_config_enum tti_mode;
+#endif
+
+#ifdef __GERAN_FANR__
+    kal_bool is_fanr_activated;
+    kal_bool is_event_based_fanr;
+#endif
+} dl_con_ind_struct;
+/* Evelyn 20090415: Merge R6 */
+typedef struct {
+    LOCAL_PARA_HDR
+
+    #ifdef __EGPRS_MODE__
+    kal_uint8   tbf_type;
+    #endif
+
+    kal_uint8 no_dl_con_ind;
+    dl_con_ind_struct multi_dl_con_ind[MULTIPLE_TBF_NUM];
+} mac_rlc_dl_con_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 no_dl_blocks;
+    /* Evelyn 20090905: Modify for High multislot class */
+    dl_block_struct dl_blocks[MAX_TX_TIMESLOTS];
+    #ifndef __MTK_TARGET__
+    kal_bool enable_dl_loop;
+    kal_uint16 bsn1;
+    kal_uint16 bsn2;
+    #endif
+    /* Claire 041216 change : Tell RLC DSP V(Q) from transfer_data_ind */
+    #ifdef __EGPRS_MODE__
+    kal_uint16 dsp_vq;
+    #endif
+} mac_rlc_dl_data_ind_struct;
+
+/* Lanslo 20070720: should replace MTK_KAL_MNT with __MTK_TARGET__ for MODIS */
+#ifndef __MTK_TARGET__
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 *packed_PDAN_msg;
+    kal_uint8 *egprs_ack_nack_ie_ptr;
+    kal_uint8 avail_len;
+    kal_uint8 s_or_p;
+    kal_bool  reconstruct;
+/* Evelyn 20090415: Merge R6 */
+} mac_rlc_ack_req_struct;
+#endif
+/* Exce 030806: After this primitive is received should RES_REQ be sent from RLC */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_dl_exist;  /** 
+                            * Exce 20040528:
+                            * Notify RLC that whether downlink TBF (either it 
+                            * is onging or pending) exists when confirming 
+                            * uplink TBF is released. Thus to resolve the problem
+                            * that RLC does not send RES_REQ when REL_CNF
+                            * is received during the time that ongoing downlink 
+                            * TBF is released and another one is pending to
+                            * start.
+                            */
+/* Evelyn 20090415: Merge R6 */
+} mac_rlc_rel_cnf_struct;
+
+/* Evelyn 20090415: Merge R6 */
+
+
+// Matt merge for R6
+typedef struct {
+    #ifdef __EGPRS_MODE__
+    kal_uint8 tbf_type;
+    kal_uint8 resegment; /* resegment bit */
+    kal_uint16 egprs_window_size;
+    #endif 
+    kal_uint8 mac_mode;	
+    kal_uint8 cs;
+    kal_uint8 tlli_channel_coding;
+    kal_uint8 final_allocation;
+    kal_uint8 ph_cont;
+    kal_uint8 timeslots_allocation;
+    kal_uint16 blks_granted;
+#if 0
+/* under construction !*/
+#endif
+    /* Claire 041117 change : Revise GPRS header partition between RLC and MAC */
+    kal_uint8 tfi;      /*Simon use tfi to fill header*/
+    rlc_mode_enum rlc_mode;
+    kal_bool res_req_is_sent;
+}rlc_ul_con_ind_struct;
+
+typedef struct {
+    kal_uint8 rlc_mode;
+    #ifdef __EGPRS_MODE__    
+    kal_uint16  window_size; /* downlink window size */
+    kal_uint8 tbf_type;    
+#endif
+    kal_uint8 pfi;   
+}rlc_dl_con_ind_struct;
+
+typedef struct{
+    kal_uint8 no_of_ul_ts_alloc;
+    kal_uint16 blks_granted; // for fix allocation
+    kal_uint8 pfi;
+}pdch_rel_ind_struct;
+
+#ifdef __MAC_SHOW_TRANS_DATA__
+
+typedef struct{
+    kal_uint8 is_data_valid;
+    kal_uint8 data[78];
+#ifdef __EGPRS_MODE__
+    kal_uint8 data2[78];
+    kal_uint8 is_data2_valid;
+#endif
+} mac_trans_data_content_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 no_of_data;
+    mac_trans_data_content_struct data[MAX_RX_TIMESLOTS];
+} mac_mac_trans_data_ind_struct;
+#endif
+
+typedef struct mac_rlc_ps_conf_timer_update_req_struct {
+    LOCAL_PARA_HDR
+    ps_conf_timer_action_enum timer_action;
+
+} mac_rlc_ps_conf_timer_update_req_struct;
+
+#ifndef __MTK_TARGET__
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 timer_index;
+    kal_uint8 timer_action;
+    kal_uint32 timeout_value;
+    kal_uint8 sim_index;
+    kal_uint8 tbf_index;
+} mac_timer_event_ind_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 pca_give_in_count;
+    kal_uint8 pdan_give_in_count;
+    kal_uint8 pca_give_in_max;
+    kal_uint8 pdan_give_in_max;
+    kal_uint8 pca_give_in_max_learned;
+    kal_uint8 pdan_give_in_max_learned;
+    kal_uint32 next_outgoing_real_polling_frame;
+    kal_uint32 last_reported_polling_frame;
+
+    kal_uint8 is_ps_starvation_protect_activated;
+    kal_uint8 ps_starvation_protect_ul_blk_count;
+    kal_uint8 ul_blk_successive_conflict_count;
+    kal_uint32 ps_starvation_protect_frame;
+
+} mac_next_outgoing_rrbp_ind_struct;
+
+#ifdef __PS_L1_DC_ARCH__
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint32 mac_next_rrbp_fn;
+    kal_uint32 mac_protected_rrbp_fn;
+    kal_uint32 mac_share_memory_rrbp_fn;
+    kal_uint32 mac_share_memory_protected_rrbp_fn;
+} mac_mac_rrbp_fn_ind_struct;
+#endif
+
+#endif
+
+#endif
+
+
+