[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/enl2/5g/ml1s_nmac_struct.h b/mcu/interface/protocol/enl2/5g/ml1s_nmac_struct.h
new file mode 100644
index 0000000..ec8cfa2
--- /dev/null
+++ b/mcu/interface/protocol/enl2/5g/ml1s_nmac_struct.h
@@ -0,0 +1,135 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *  ml1s_nmac_struct.h
+ *
+ * Project:
+ * --------
+ *  UMOLYE
+ *
+ * Description:
+ * ------------
+ *  Messages and common definitions for ML1S-NMAC interface
+ *
+ * Author:
+ * -------
+ * 
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 12 04 2019 jeng-yang.kao
+ * [MOLY00369211] [Gen97][NMAC] NMUX development
+ * [NMAC] DL-Tick group support to MAC CEs delivery interface
+ *
+ * 07 20 2018 tangte.lo
+ * [MOLY00322183] [nmac][numx] ul_tb_gen related code check-in
+ * 	1. ccch/mphr update for 3gpp CR.
+ * 	2. harq_close_ind with harq_id
+ * 	
+ * 	[Protocol build tag] 
+ * 	[Is CL self testable: YES]
+ * 	[Group CL list: NO]
+ *
+ * 06 21 2018 tero.miettinen
+ * [MOLY00318408] [6297] NMAC DL data transfer implementation
+ * NMAC ML1S support implementation.
+ * 
+ * [Protocol build tag]
+ * [Is CL self testable: YES]
+ * [Group CL list: NO]
+ *
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef  _ML1S_NMAC_STRUCT_H
+#define  _ML1S_NMAC_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "nrrc_nmac_struct.h"
+
+/* MSG_ID_ML1S_NMAC_ML1S_TEST_MODE_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+} ml1s_nmac_ml1s_test_mode_req_struct;
+
+/* MSG_ID_ML1S_NMAC_CCCH_DATA_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+    kal_uint8    ccch_data[NMAC_MAX_CCCH_DATA_SIZE];
+    kal_uint16   ccch_len;
+
+} ml1s_nmac_ccch_data_req_struct;
+
+/* MSG_ID_ML1S_NMAC_DL_DATA_DISCARD_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+} ml1s_nmac_dl_data_discard_req_struct;
+
+/* MSG_ID_ML1S_NMAC_MAC_PDU_FOR_RAR_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+    kal_uint8    tick_group;
+    kal_uint8    mac_pdu_for_rar[8];
+
+} ml1s_nmac_mac_pdu_for_rar_req_struct;
+
+/* MSG_ID_ML1S_NMAC_MAC_CE_TRIGGER_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+    kal_uint8    tick_group;
+    kal_uint8    lcid;
+    kal_uint8    payload[20];
+    kal_uint8    length;
+
+} ml1s_nmac_mac_ce_trigger_req_struct;
+
+#endif /* _ML1S_NMAC_STRUCT_H */
diff --git a/mcu/interface/protocol/enl2/5g/nl2_nl1_api.h b/mcu/interface/protocol/enl2/5g/nl2_nl1_api.h
new file mode 100644
index 0000000..5bd3493
--- /dev/null
+++ b/mcu/interface/protocol/enl2/5g/nl2_nl1_api.h
@@ -0,0 +1,238 @@
+/*****************************************************************************
+*  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 _NL2_NL1_API_H
+#define _NL2_NL1_API_H
+
+// include dependency headers
+#include "nl2_nl1_struct.h"
+#include "el1_cnst.h" /* For MAX_NUM_SUPPORT_UL_CELLS */
+#include "nl1_comm_inter_core_public.h"
+
+/********************************************
+ *                  MACROS                  *
+ ********************************************/
+
+/* "+2" for phr-Type2OtherCell; "+6" for PHR MAC CE hdr len 2 + 4 octets cc bmp */
+#define PHR_MAX_SIZE ((NL1_MAX_UL_CC_NUM)*2 + (MAX_NUM_SUPPORT_UL_CELLS)*2 + 2 + 6)
+
+/* "+2" for phr-Type2OtherCell; "+3" for PHR MAC CE hdr len 2 + 1 octet cc bmp */
+#define PHR_MAX_SIZE_ONE_OCT ((NL1_MAX_UL_CC_NUM)*2 + (MAX_NUM_SUPPORT_UL_CELLS)*2 + 2 + 3)
+
+#define CRNTI_SIZE 2
+#define CBG_MAX_SIZE 8
+
+
+/********************************************
+ *         TYPE DEFINITIONS & ENUMS         *
+ ********************************************/
+typedef enum
+{
+    NMAC_CGC_NONE,
+    NMAC_CGC_INC
+
+} nmac_cgc_status_e;
+
+typedef enum
+{
+    NMAC_PHR_NONE,
+    NMAC_PHR_SINGLE,
+    NMAC_PHR_MULTI_ONE_OCT,
+    NMAC_PHR_MULTI_FOUR_OCT
+
+} nmac_phr_status_e;
+
+typedef enum
+{
+    NMAC_NEWTX       = 0,
+    NMAC_RETX        = 1,
+    NMAC_CFRA_REPACK = 2,
+    NMAC_CBRA_REPACK = 3
+
+} nmac_tx_type_e;
+
+typedef enum
+{
+    NMAC_C_RNTI,
+    NMAC_SP_CSI_RNTI,
+    NMAC_P_RNTI,
+    NMAC_RA_RNTI,
+    NMAC_TC_RNTI,
+    NMAC_SI_RNTI,
+    NMAC_TPC_PUSCH_RNTI,
+    NMAC_TPC_PUCCH_RNTI,
+    NMAC_TPC_SRS_RNTI,
+    NMAC_CS_RNTI,
+    NMAC_INT_RNTI,
+    NMAC_SFI_RNTI
+
+} nmac_icd_rnti_e;
+
+//This structure has dependency with NL1_TX_NMAC_HARQ_CANCEL_SR_CAUSE_E in MAC_L
+typedef enum
+{
+    NMAC_NOT_DELAY_CANCEL_SR = 0,
+    NMAC_DELAY_CANCEL_SR_CAUSE_RV_NOT_ZERO = 1,
+    NMAC_DELAY_CANCEL_SR_CAUSE_RV_ZERO_RETX = 2,
+
+    NMAC_DELAY_CANCEL_SR_CAUSE_NUM
+} nmac_delay_cancel_sr_cause_e;
+
+typedef struct
+{
+    nmac_phr_status_e   phr_status;
+    kal_bool is_phr_type2_other_cell;
+    kal_uint8 active_lte_cc_num;
+    kal_uint8 active_nr_cc_num;        
+} nl1_nmac_phr_info_t;
+
+typedef struct
+{
+    kal_uint8           cell_group_id;
+    kal_uint8           ul_cc_idx;
+    kal_uint8           harq_id;
+    kal_bool            is_csi_trig;
+    kal_uint32          tbs;
+    nmac_tx_type_e      tx_type;
+    kal_bool            cbg_retx_enable;
+    kal_uint8           cbgnum;
+    kal_uint8           cbgti;
+    kal_uint32          cbg_offset[CBG_MAX_SIZE];
+    kal_bool            is_sps_type1_grant;
+    kal_uint8           scs_idx;
+    kal_bool            is_msg3_tx;
+    kal_uint8           serving_cell_idx;
+    kal_uint8           slot;
+    kal_uint8           subframe;
+    kal_uint16          SFN;
+    nmac_icd_rnti_e     rnti_type;
+    kal_uint32          pusch_dura;
+    kal_uint8           CRNTI[CRNTI_SIZE];    
+    kal_uint8           RV;
+    nmac_delay_cancel_sr_cause_e delay_cancel_sr_cause;
+} nmac_tx_cc_info_t;
+
+// function input/output struct
+typedef struct
+{
+    kal_uint8           sim_idx;
+    nmac_tx_cc_info_t   txinfo;
+    nmac_cgc_status_e   cgc_status;
+    nl1_nmac_phr_info_t phr_info;
+    kal_uint8           channel_idx;
+} nl1_nmac_tb_gen_req_t;
+
+typedef struct
+{
+    kal_uint8           sim_idx;
+    kal_uint8           cell_group_id;
+    kal_uint8           ul_cc_idx;
+    kal_uint8           harq_id;
+    kal_bool            cancel_tx;
+    kal_bool            is_phr_reserved;
+} nl1_nmac_tb_gen_rsp_t;
+
+typedef struct
+{
+    kal_uint8           sim_idx;
+    kal_uint8           cell_group_id;
+    kal_uint8           ul_cc_idx;
+    kal_uint8           harq_id;
+    kal_bool            is_copro_trig;
+    nmac_tx_type_e      tx_type;
+    kal_uint8           phr_content[PHR_MAX_SIZE];
+    kal_uint16          phr_len;
+} nl1_nmac_copro_handle_req_t;
+
+typedef struct
+{
+    kal_uint8           sim_idx;
+    kal_bool            is_sr_canceled;
+    kal_uint32          timestamp;
+} nl1_nmac_copro_handle_rsp_t;
+
+/********************************************
+ *                VARIABLES                 *
+ ********************************************/
+
+// only extern variables are allowed in header
+
+/********************************************
+ *           FUNCTION DECLARATIONS          *
+ ********************************************/
+
+// =========================================
+// UL Related APIs
+// =========================================
+
+/**
+ * @brief This function is event-triggered, it will be triggered when NL1 need NMAC to
+          generate UL data. NMAC will start to pack UL TB in this function.
+ * @return return flase if some error happened, otherwise return true.
+ */
+kal_bool nl1_nmac_tb_gen
+(
+    nl1_nmac_tb_gen_req_t *tb_gen_req,
+    nl1_nmac_tb_gen_rsp_t *tb_gen_rsp
+);
+
+ /**
+ * @brief NL1 will use this function to trigger copro. The descriptor context will
+          prepared by NMAC. NL1 will always call this function, but copro trigger only
+          if is_copro_trig set true.
+ * @return return flase if some error happened, otherwise return true.
+ */
+void nl1_nmac_copro_handle
+(
+    nl1_nmac_copro_handle_req_t *copro_req,
+    nl1_nmac_copro_handle_rsp_t *copro_rsp
+);
+
+/**
+ * @brief NL1 will use this function to get potential Msg3 size for RA Preambles
+ * Group selection
+ *
+ * @param sim_id is SIM ID
+ * @param cg_id is Cell Group ID
+ * @return return the potential Msg3 size in bytes
+ */
+kal_uint32 nl1_nmac_get_potential_msg3_size
+(
+    kal_uint32 sim_id,
+    kal_uint32 cg_id
+);
+
+#endif /* _NL2_NL1_API_H */
+
diff --git a/mcu/interface/protocol/enl2/5g/nl2_public_api.h b/mcu/interface/protocol/enl2/5g/nl2_public_api.h
new file mode 100644
index 0000000..bb0f5a0
--- /dev/null
+++ b/mcu/interface/protocol/enl2/5g/nl2_public_api.h
@@ -0,0 +1,46 @@
+/*****************************************************************************
+*  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 _NL2_PUBLIC_API_H
+#define _NL2_PUBLIC_API_H
+void nmac_dyn_internet_disconnect_hook(void);
+///@brief API for UPCM to close 1st arrows
+///@param none.
+void nrlcdl_1st_arrow_disable_hndlr();
+///@brief API for UPCM to close 1st arrows
+///@param none.
+void nrlcul_1st_arrow_disable_hndlr();
+#endif /* _NL2_PUBLIC_API_H */
+
diff --git a/mcu/interface/protocol/enl2/5g/nl2pow_api.h b/mcu/interface/protocol/enl2/5g/nl2pow_api.h
new file mode 100644
index 0000000..41fb100
--- /dev/null
+++ b/mcu/interface/protocol/enl2/5g/nl2pow_api.h
@@ -0,0 +1,71 @@
+/*****************************************************************************
+*  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 _NL2POW_API_H
+#define _NL2POW_API_H
+
+ 
+/********************************************
+ *                  MACROS                  *
+ ********************************************/
+ 
+/********************************************
+ *         TYPE DEFINITIONS & ENUMS         *
+ ********************************************/
+ 
+/********************************************
+ *                VARIABLES                 *
+ ********************************************/
+ 
+// only extern variables are allowed in header
+ 
+/********************************************
+ *           FUNCTION DECLARATIONS          *
+ ********************************************/
+
+void nl2pow_nmac_config_copro_power_on_req(kal_uint8 protocol_idx, kal_uint8 cell_group_id);
+void nl2pow_nmac_config_copro_power_off_req(kal_uint8 protocol_idx, kal_uint8 cell_group_id);
+void nl2pow_nrlcul_retx_copro_power_on_req(kal_uint8 protocol_idx);
+void nl2pow_nrlcul_retx_copro_power_off_req(kal_uint8 protocol_idx);
+void nl2pow_ml1s_copro_power_on_req(void);
+void nl2pow_ml1s_copro_power_off_req(void);
+void nl2pow_nmac_reg_dl_va_stuck(kal_uint8 protocol_idx);
+void nl2pow_nmac_dereg_dl_va_stuck(kal_uint8 protocol_idx);
+void nl2pow_nmac_vc_copro_power_on_req(kal_uint8 protocol_idx, kal_uint8 cell_group_id);
+void nl2pow_nmac_vc_copro_power_off_req(kal_uint8 protocol_idx, kal_uint8 cell_group_id);
+void nl2pow_nmac_dl_copro_power_on_req(kal_uint8 protocol_idx, kal_uint8 cell_group_id);
+void nl2pow_nmac_dl_copro_power_off_req(kal_uint8 protocol_idx, kal_uint8 cell_group_id);
+#endif /* _NL2POW_API_H */
+