diff --git a/mcu/interface/sap/mw/dpfm_msgid_source.h b/mcu/interface/sap/mw/dpfm_msgid_source.h
new file mode 100644
index 0000000..e59f02f
--- /dev/null
+++ b/mcu/interface/sap/mw/dpfm_msgid_source.h
@@ -0,0 +1,4 @@
+MSG_ID_DPFM_DATA_USAGE_CMD,
+MSG_ID_DPFM_SET_CT_TIMEOUT_VALUE_REQ,
+MSG_ID_DPFM_SET_CT_TIMEOUT_VALUE_RSP,
+MSG_ID_DPFM_CT_TIMEOUT_IND,
diff --git a/mcu/interface/sap/mw/ft_msgid.h b/mcu/interface/sap/mw/ft_msgid.h
new file mode 100644
index 0000000..16346c4
--- /dev/null
+++ b/mcu/interface/sap/mw/ft_msgid.h
@@ -0,0 +1,150 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * ft_sap.h
+ *
+ * Project:
+ * --------
+ *   Maui_Software
+ *
+ * Description:
+ * ------------
+ *   FT and TST related message identity 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!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#include "module_msg_range.h"
+
+#ifndef FT_MSGID_H
+#define FT_MSGID_H
+
+/* Request for TST */
+
+MODULE_MSG_BEGIN( FT_MSG_CODE_BEGIN )
+MSG_ID_FT_TO_TST = FT_MSG_CODE_BEGIN,
+MSG_ID_TST_TO_FT,
+MSG_ID_FT_TO_GL1TST,
+MSG_ID_FT_TO_UL1TST,
+MSG_ID_FT_TO_EL1TST,
+MSG_ID_FT_TO_MMRF,
+MSG_ID_FTA_BASIC_REQ,
+MSG_ID_FTA_BASIC_CNF,
+MSG_ID_FTC_BASIC_REQ,
+MSG_ID_FTC_BASIC_CNF,
+MSG_ID_FT_CAL_DATA_ADD_ONE_REQ,
+MSG_ID_FT_CAL_DATA_ADD_ONE_CNF,
+MSG_ID_FT_TO_NL1,
+MODULE_MSG_END( MSG_ID_FT_CODE_TAIL )
+#endif  //FT_MSGID_H
diff --git a/mcu/interface/sap/mw/gps_msgid.h b/mcu/interface/sap/mw/gps_msgid.h
new file mode 100644
index 0000000..eafef36
--- /dev/null
+++ b/mcu/interface/sap/mw/gps_msgid.h
@@ -0,0 +1,429 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ *  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) 2003
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ *  gps_sap.h
+ *
+ * Project:
+ * --------
+ *  MAUI
+ *
+ * Description:
+ * ------------
+ *  GIS SAP
+ *
+ * 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!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#include "module_msg_range.h"
+
+#ifndef GPS_MSGID_H
+#define GPS_MSGID_H
+
+MODULE_MSG_BEGIN( MSG_ID_GPS_MSG_CODE_BEGIN )
+MSG_ID_GPS_UART_OPEN_SWITCH_REQ,
+MSG_ID_GPS_UART_CLOSE_SWITCH_REQ,
+
+MSG_ID_GPS_POS_GAD_CNF,
+MSG_ID_GPS_LCSP_MSG_CODE_BEGIN = MSG_ID_GPS_POS_GAD_CNF,
+MSG_ID_GPS_LCSP_MEAS_GAD_CNF,
+MSG_ID_GPS_LCSP_ASSIST_DATA_CNF,
+MSG_ID_GPS_LCSP_MSG_CODE_END = MSG_ID_GPS_LCSP_ASSIST_DATA_CNF,
+MSG_ID_GPS_POS_GAD_REQ,
+MSG_ID_GPS_LCSP_MEAS_GAD_REQ,
+MSG_ID_GPS_LCSP_ASSIST_DATA_REQ,
+MSG_ID_GPS_LCSP_ABORT_REQ,
+MSG_ID_GPS_LCSP_AGPS_RESTART_IND,
+
+/* RTC -> GPS */
+MSG_ID_RTC_GPS_TIME_CHANGE_IND,
+/* GPS EINT HISR -> GPS */
+MSG_ID_GPS_HOST_WAKE_UP_IND,
+
+MSG_ID_UAGPS_CP_GPS_ASSIST_DATA_ENQUIRY_IND,
+MSG_ID_UAGPS_CP_GPS_SFN_GPS_TOW_DRIFT_TIME_REQ,
+MSG_ID_UAGPS_CP_GPS_SFN_GPS_TOW_DRIFT_TIME_CNF,
+MSG_ID_UAGPS_CP_GPS_SFN_GPS_TOW_DRIFT_TIME_CANCEL_REQ,
+MSG_ID_GPS_AREA_EVENT_ADD_RSP,
+MSG_ID_GPS_AREA_EVENT_ADD_REQ,
+MSG_ID_GPS_AREA_EVENT_DEL_REQ,
+MSG_ID_GPS_AREA_EVENT_HAPPEN_IND,
+MSG_ID_UAGPS_CP_GPS_POS_CHANGE_EVALUATION_REQ,
+MSG_ID_UAGPS_CP_GPS_POS_CHANGE_EVALUATION_RSP,
+MSG_ID_UAGPS_CP_GPS_POS_CHANGE_EVALUATION_DEL,
+
+/* LCSP -> GNSS Task */
+MSG_ID_LCSP_GNSS_OPEN_REQ,
+MSG_ID_LCSP_GNSS_CLOSE_REQ,
+MSG_ID_LCSP_GNSS_COMMON_ASSIST_DATA_REQ,
+MSG_ID_LCSP_GNSS_GENERIC_ASSIST_DATA_REQ,
+MSG_ID_LCSP_GNSS_POS_REQ,
+MSG_ID_LCSP_GNSS_MEAS_REQ,
+MSG_ID_LCSP_GNSS_ABORT_REQ,
+MSG_ID_LCSP_GNSS_RESET_UE_STORED_POS_INFO,
+
+/* GNSS Task -> LCSP */
+MSG_ID_LCSP_GNSS_COMMON_ASSIST_DATA_CNF,
+MSG_ID_LCSP_GNSS_GENERIC_ASSIST_DATA_CNF,
+MSG_ID_LCSP_GNSS_POS_CNF,
+MSG_ID_LCSP_GNSS_MEAS_CNF,
+MSG_ID_LCSP_GNSS_ADDITIONAL_ASSIST_DATA_REQ,
+
+/* LPP_EXT -> GNSS */
+MSG_ID_LCSP_GNSS_HA_COMMON_IONOSPHERIC_MODEL_REQ,
+MSG_ID_LCSP_GNSS_HA_COMMON_TROPOSPHERE_MODEL_REQ,
+MSG_ID_LCSP_GNSS_HA_COMMON_ALTITUDE_ASSIST_REQ,
+MSG_ID_LCSP_GNSS_HA_COMMON_SOLAR_RADIATION_REQ,
+MSG_ID_LCSP_GNSS_HA_COMMON_CCP_ASSIST_REQ,
+MSG_ID_LCSP_GNSS_HA_GENERIC_CCP_ASSIST_REQ,
+MSG_ID_LCSP_GNSS_HA_GENERIC_DEGRADATION_MODEL_REQ,
+
+/* LBS -> GNSS */
+MSG_ID_LBS_GNSS_HA_ASSIST_CNF,
+
+/*LBS -> L4C*/
+//MSG_ID_LBS_MOLR_BEGIN_REQ,
+//MSG_ID_LBS_MOLR_END_REQ,
+//MSG_ID_L4C_SERVICE_STATE_REQ,
+//MSG_ID_L4C_ROAMING_STATE_REQ,
+//MSG_ID_L4C_DATA_CONN_STATE_REQ,
+
+/*GPS-> LBS*/
+MSG_ID_LBS_GNSS_PMTK_IND,
+MSG_ID_LBS_GNSS_GPS_CLOSE_REQ,
+MSG_ID_LBS_GNSS_GPS_OPEN_REQ,
+MSG_ID_LBS_GNSS_AGNSS_RESTART_IND,
+MSG_ID_LCSP_GNSS_STANDALONE_POS_IND,
+
+/*LBS->GPS*/
+MSG_ID_LBS_GNSS_PMTK_REQ,
+MSG_ID_LBS_GNSS_STANDALONE_PMTK_REQ,
+MSG_ID_LBS_GNSS_STANDALONE_QUERY_REQ,
+MSG_ID_LBS_GNSS_STANDALONE_OPEN_REQ,
+MSG_ID_LBS_GNSS_STANDALONE_CLOSE_REQ,
+
+/*LBS -> ATCI*/
+//MSG_ID_LBSAP_DATA_SEND_REQ,
+
+
+
+
+#ifdef UNIT_TEST
+/* GPS -> GPS */
+MSG_ID_GPS_UT_SET_EVENT_IND,
+MSG_ID_GPS_UT_WRITE_DATA_IND,
+#endif
+
+MODULE_MSG_END( MSG_ID_GPS_MSG_CODE_TAIL )
+
+MODULE_MSG_BEGIN( MSG_ID_LBS_CODE_BEGIN )
+    /*L4C -> LBS*/
+    MSG_ID_LBS_MTLR_BEGIN_IND,
+    MSG_ID_LBS_MTLR_BEGIN_RES_RSP,
+    /* AERQ, AERP, AECL not used now*/
+    MSG_ID_LBS_AERQ_BEGIN_IND,
+    MSG_ID_LBS_AERQ_BEGIN_RES_RSP,
+    MSG_ID_LBS_AERP_BEGIN_RSP,
+    MSG_ID_LBS_AERP_END_RSP,
+    MSG_ID_LBS_AECL_BEGIN_IND,
+    MSG_ID_LBS_AECL_BEGIN_RES_RSP,
+    MSG_ID_LBS_MOLR_BEGIN_RSP,
+    MSG_ID_LBS_MOLR_END_RSP,
+    MSG_ID_AGPS_RESET_POSITIONING_IND,
+    MSG_ID_AGPS_CP_START_IND,
+    MSG_ID_AGPS_CP_END_IND,
+    MSG_ID_L4C_LBS_SERVICE_STATE_RSP,
+    MSG_ID_L4C_LBS_ROAMING_STATE_RSP,
+    MSG_ID_L4C_LBS_DATA_CONN_STATE_RSP,
+    MSG_ID_L4C_LBS_CURRENT_RAT_RSP,
+    MSG_ID_L4C_LBS_ACTIVE_SIM_RSP,    
+    MSG_ID_L4C_LBS_EMT_INFO_IND,
+    /*IMC -> LBS*/
+    MSG_ID_IMC_LBS_POS_NTF,
+#ifdef UNIT_TEST
+    /* LBS -> LBS */
+    MSG_ID_GPS_UT_LBS_HEADER_IND,
+    
+#endif
+    /*ERRC ->LBS*/
+     MSG_ID_ERRC_LBS_GNSS_POS_REQ,
+
+    /* DHL -> LBS */
+    MSG_ID_DHL_LBS_POS_NTF,
+
+    /* LPP -> LBS */
+    MSG_ID_LPP_LBS_EXT_WLAN_POS_ASSIST_DATA_PROVIDE_IND,
+    MSG_ID_LPP_LBS_EXT_BT_POS_ASSIST_DATA_PROVIDE_IND,
+    MSG_ID_LPP_LBS_EXT_SENSOR_POS_ASSIST_DATA_PROVIDE_IND,
+
+    MSG_ID_LPP_LBS_EXT_WLAN_MEAS_QUERY_REQ,
+    MSG_ID_LPP_LBS_EXT_BT_MEAS_QUERY_REQ,
+    MSG_ID_LPP_LBS_EXT_SENSOR_MEAS_QUERY_REQ,
+    MSG_ID_LPP_LBS_EXT_NETWORK_MEAS_QUERY_REQ,
+    MSG_ID_LPP_LBS_EXT_IPADDRESS_MEAS_QUERY_REQ,
+
+    MSG_ID_LPP_LBS_EXT_WLAN_START_IND,
+    MSG_ID_LPP_LBS_EXT_BT_START_IND,
+    MSG_ID_LPP_LBS_EXT_SENSOR_START_IND,
+    MSG_ID_LPP_LBS_EXT_NETWORK_START_IND,
+
+    MSG_ID_LPP_LBS_EXT_WLAN_STOP_IND,
+    MSG_ID_LPP_LBS_EXT_BT_STOP_IND,
+    MSG_ID_LPP_LBS_EXT_SENSOR_STOP_IND,
+    MSG_ID_LPP_LBS_EXT_NETWORK_STOP_IND,
+
+    /* The below 3 MSG_IDs is provided for other modules to get location information.
+            It is started from Gen97.*/
+    MSG_ID_LBS_LOC_INFO_REQ,
+    MSG_ID_LBS_LOC_INFO_CNF,
+    MSG_ID_LBS_LOC_INFO_IND,
+    /* GNSS_TC -> LBS */
+    MSG_ID_LBS_GNSS_TC_ACTIVE_SIM_REQ,
+    MSG_ID_LBS_GNSS_TC_TIME_SYNC_CNF,
+    MSG_ID_LBS_GNSS_TC_TIME_SYNC_IND,
+MODULE_MSG_END( MSG_ID_LBS_CODE_TAIL )
+
+MODULE_MSG_BEGIN( MSG_ID_LIO_CODE_BEGIN )
+    MSG_ID_LIO_UT_UART_TX_IND,
+    MSG_ID_LIO_UT_UART_RX_IND,
+MODULE_MSG_END( MSG_ID_LIO_CODE_TAIL )
+
+MODULE_MSG_BEGIN( MSG_ID_GNSS_TC_CODE_BEGIN )
+/* RRC -> GNSS_TC */
+    MSG_ID_LBS_ERRC_READ_TIME_SIB_IND,
+    MSG_ID_GNSS_TC_NRRC_READ_TIME_SIB_CNF,
+
+/* LBS-> GNSS_TC */
+    MSG_ID_LBS_GNSS_TC_ACTIVE_SIM_RSP,
+    MSG_ID_LBS_GNSS_TC_TIME_SYNC_REQ,
+    MSG_ID_LBS_GNSS_TC_TIME_SYNC_RSP,
+    MSG_ID_LBS_GNSS_TC_TIME_INFO_RSP,
+
+/* EL1 -> GNSS_TC */
+    MSG_ID_GNSS_TC_EL1_SYNC_CNF,
+
+/* NL1 -> GNSS_TC */
+    MSG_ID_GNSS_TC_NL1_SYNC_CNF,
+
+/* UL1 -> GNSS_TC */
+    MSG_ID_GNSS_TC_UL1_SYNC_CNF,
+
+    
+MODULE_MSG_END( MSG_ID_GNSS_TC_CODE_TAIL )
+
+#endif //GPS_MSGID_H
diff --git a/mcu/interface/sap/mw/hif_mw_msgid.h b/mcu/interface/sap/mw/hif_mw_msgid.h
new file mode 100644
index 0000000..42c93e4
--- /dev/null
+++ b/mcu/interface/sap/mw/hif_mw_msgid.h
@@ -0,0 +1,478 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   hif_mw_msgid.h
+ *
+ * Project:
+ * --------
+ *   TATAKA
+ *
+ * Description:
+ * ------------
+ *   HIF middleware related message identity 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!
+ * 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_HIF_MW_MSGID_H
+#define __INC_HIF_MW_MSGID_H
+
+#include "module_msg_range.h"
+
+MODULE_MSG_BEGIN( MSG_ID_HIF_MW_CODE_BEGIN )
+
+    MSG_ID_IPCORE_CODE_BEGIN = MSG_ID_HIF_MW_CODE_BEGIN,
+    MSG_ID_IPCORE_LINK_UP_REQ,
+    MSG_ID_IPCORE_LINK_DOWN_REQ,
+    MSG_ID_LMS_DL_SDU,
+    MSG_ID_LMS_NETIF_ATTACH,
+    MSG_ID_LMS_PROCESS_UL_QUEUE_REQ,
+    MSG_ID_IPF_IT_DL_IT_REQ,
+    MSG_ID_LMS_IT_DL_ENQUEUE_REQ,
+    MSG_ID_IPCORE_PROCESS_UL_QUEUE_REQ,
+    MSG_ID_IPCORE_RETRY_UL_RELOAD_REQ,
+    MSG_ID_IPCORE_DL_PACKET_FILTERED_REQ,
+    MSG_ID_IPCORE_UL_PACKET_FILTERED_REQ,
+    MSG_ID_IPCORE_IP_UP_REQ,
+    MSG_ID_IPCORE_IP_DOWN_REQ,
+    MSG_ID_IPCORE_LINK_UP_IND,
+    MSG_ID_IPCORE_IP_UP_IND,
+    MSG_ID_IPCORE_LINK_UP_RSP,
+    MSG_ID_IPCORE_IP_UP_RSP,
+    MSG_ID_IPCORE_QUERY_INFO_REQ,
+    MSG_ID_IPCORE_QUERY_INFO_CNF,
+    MSG_ID_IPCORE_DL_PACKET_FILTERED_WITH_INFO_REQ,
+    MSG_ID_IPCORE_UL_PACKET_FILTERED_WITH_INFO_REQ,
+    MSG_ID_IPCORE_SET_UL_THROTTLE,
+    MSG_ID_IPCORE_VDM_IMS_EMERGENCY_CALL_IND,
+    MSG_ID_IPCORE_RESTORE_NETIF_IND,
+    MSG_ID_IPCORE_UDP_IGMP_REG_FILTER_REQ,
+    MSG_ID_IPCORE_UDP_IGMP_DEREG_FILTER_REQ,
+    MSG_ID_IPC_FRAG_DL_RAW_DATA,
+    MSG_ID_IPC_FRAG_UL_RAW_DATA,
+    MSG_ID_D2CM_IPCORE_INFO_IND,
+
+    MSG_ID_TMC_EMAC_NW_STATUS_IND,
+    MSG_ID_TMC_NMAC_NW_STATUS_IND,
+    MSG_ID_TMC_EMAC_THERMAL_CONTROL_CNF,
+    MSG_ID_TMC_NMAC_THERMAL_CONTROL_CNF,
+    MSG_ID_TMC_CONTROL_REQ,
+    MSG_ID_TMC_NL1_NW_STATUS_IND,
+
+    /* MSGs from NRRC */
+    MSG_ID_TMC_NRRC_ASSISTANCE_INFO_SUPPORT_IND,
+    MSG_ID_TMC_NRRC_ASSISTANCE_INFO_SEND_CNF,
+    MSG_ID_TMC_NRRC_ASSISTANCE_INFO_SENDING_ALLOWED_IND,
+
+    MSG_ID_L5IO_TMC_ACTUATOR_NUM_REQ,
+    MSG_ID_L5IO_TMC_ACTUATOR_NUM_CNF,
+    MSG_ID_L5IO_TMC_ACTUATOR_STATE_QUERY_REQ,
+    MSG_ID_L5IO_TMC_ACTUATOR_STATE_QUERY_CNF,
+    MSG_ID_L5IO_TMC_ACTUATOR_SET_REQ,
+    MSG_ID_L5IO_TMC_ACTUATOR_SET_CNF,
+
+    MSG_ID_DPFM_RESET_REQ,
+    MSG_ID_DPFM_SET_TRACK_TABLE_TIMER,
+    MSG_ID_IPCORE_LHIFCORE_QUEUE_MAPPING_REQ,
+    MSG_ID_IPCORE_LHIFCORE_QUEUE_MAPPING_RSP,
+    MSG_ID_IPCORE_PROCESS_DL_QUEUE_REQ,
+    MSG_ID_IPCORE_REGISTER_FILTER_REQ,
+    MSG_ID_IPCORE_DEREGISTER_FILTER_REQ,
+    MSG_ID_IPCORE_NAS_RQ_INFO_IND,
+    MSG_ID_DPFM_PROCESS_HW_CMD_Q_IND,
+    MSG_ID_DPFM_LAN_DEV_DEL_FILTER_IND,
+    MSG_ID_IPCORE_CODE_TAIL = MSG_ID_IPCORE_CODE_BEGIN + 80,
+
+    MSG_ID_ETHERCORE_CODE_BEGIN,
+    MSG_ID_ETHERCORE_HANDLE_PACKET_REQ,
+    MSG_ID_ETHERCORE_LINK_UP_REQ,
+    MSG_ID_ETHERCORE_LINK_DOWN_REQ,
+    MSG_ID_ETHERCORE_CODE_TAIL = MSG_ID_ETHERCORE_CODE_BEGIN + 40,
+
+    MSG_ID_DHCP4C_CODE_BEGIN,
+    MSG_ID_DHCP4C_ACTIVATE_REQ,
+    MSG_ID_DHCP4C_DEACTIVATE_REQ,
+    MSG_ID_DHCP4C_PACKET_REQ,
+    MSG_ID_DHCP4C_ACTIVATE_RSP,
+    MSG_ID_DHCP4C_DEACTIVATE_RSP,
+    MSG_ID_DHCP4C_IP_UP_IND,
+    MSG_ID_DHCP4C_IP_DOWN_IND,
+    MSG_ID_DHCP4C_PACKET_IND,
+    MSG_ID_DHCP4C_CODE_TAIL = MSG_ID_DHCP4C_CODE_BEGIN + 40,
+
+    MSG_ID_NDPC_CODE_BEGIN,
+    MSG_ID_NDPC_ACTIVATE_REQ,
+    MSG_ID_NDPC_DEACTIVATE_REQ,
+    MSG_ID_NDPC_PACKET_REQ,
+    MSG_ID_NDPC_ACTIVATE_RSP,
+    MSG_ID_NDPC_DEACTIVATE_RSP,
+    MSG_ID_NDPC_IP_UP_IND,
+    MSG_ID_NDPC_IP_DOWN_IND,
+    MSG_ID_NDPC_PACKET_IND,
+    MSG_ID_NDPC_CODE_TAIL = MSG_ID_NDPC_CODE_BEGIN + 40,
+
+    MSG_ID_RNDIS_CODE_BEGIN,
+    MSG_ID_RNDIS_RELOAD_UL_BUFFER_REQ,
+    MSG_ID_RNDIS_START_HAD_REQ,
+    MSG_ID_RNDIS_START_DATA_PATH_REQ,
+    MSG_ID_RNDIS_STOP_DATA_PATH_REQ,
+    MSG_ID_RNDIS_DISCONNECTED_DEV_SHUTDOWN_REQ,
+    MSG_ID_RNDIS_CONNECTED_DEV_SHUTDOWN_REQ,
+    MSG_ID_RNDIS_CODE_TAIL = MSG_ID_RNDIS_CODE_BEGIN + 40,
+
+    MSG_ID_CCCI_TTY_CODE_BEGIN,
+    MSG_ID_CCCI_TTY_SESSION_INIT_REQ,
+    MSG_ID_CCCI_TTY_SESSION_DEINIT_REQ,
+    MSG_ID_CCCI_TTY_UL_DEQUEUE_REQ,
+    MSG_ID_CCCI_TTY_CODE_TAIL = MSG_ID_CCCI_TTY_CODE_BEGIN + 40,
+
+    MSG_ID_CCMNI_CODE_BEGIN,
+    MSG_ID_CCMNI_LINK_UP_REQ,
+    MSG_ID_CCMNI_LINK_DOWN_REQ,
+    MSG_ID_CCMNI_SESSION_INIT_REQ,
+    MSG_ID_CCMNI_SESSION_DEINIT_REQ,
+    MSG_ID_CCMNI_RETRY_UL_RELOAD_REQ,
+    MSG_ID_CCMNI_CODE_TAIL = MSG_ID_CCMNI_CODE_BEGIN + 40,
+
+	MSG_ID_MS_CODE_BEGIN,
+	MSG_ID_MS_CTRL_USB_SETUP_PKT,
+	MSG_ID_MS_CTRL_USB_CTRL_COMPLETED,
+	MSG_ID_MS_CTRL_USB_ATTACHED,
+	MSG_ID_MS_CTRL_USB_SUSPENDING,
+	MSG_ID_MS_CTRL_USB_RESUME,
+	MSG_ID_MS_CTRL_USB_DETACHING,
+	MSG_ID_MS_CTRL_USB_RESET,
+	MSG_ID_MS_CTRL_USB_SPEED_CHANGED,
+	MSG_ID_MS_CTRL_REINIT_REQ,
+	MSG_ID_MS_CTRL_UL_RELOAD_REQ,
+	MSG_ID_MS_DATA_RX_COMPLETED,
+	MSG_ID_MS_DATA_TX_COMPLETED,
+	MSG_ID_MS_BULKIN_EP_STALL,
+	MSG_ID_MS_BULKOUT_EP_STALL,
+	MSG_ID_MS_SET_USB_MODE_REQ,
+	MSG_ID_MS_RESET_DEVICE_REQ,
+	MSG_ID_MS_CODE_TAIL = MSG_ID_MS_CODE_BEGIN + 40,
+
+    MSG_ID_AOMGR_CODE_BEGIN,
+    MSG_ID_AOMGR_LINK_DOWN_IND,
+    MSG_ID_AOMGR_CODE_TAIL = MSG_ID_AOMGR_CODE_BEGIN + 40,
+
+    MSG_ID_USBCORE_CODE_BEGIN,
+    MSG_ID_USBCORE_SUSPEND_TO_IDLE,
+    MSG_ID_USBCORE_IDLE_NOTIFY_TO_L4,
+    MSG_ID_USBCORE_DUAL_OWNER_MSG_RECEIVE,
+    MSG_ID_USBCORE_CODE_TAIL = MSG_ID_USBCORE_CODE_BEGIN + 20,
+
+    MSG_ID_CDCECM_CODE_BEGIN,
+    MSG_ID_CDCECM_RELOAD_UPLINK_REQ,
+    MSG_ID_CDCECM_START_DATA_PATH_REQ,
+    MSG_ID_CDCECM_STOP_DATA_PATH_REQ,
+    MSG_ID_CDCECM_CODE_TAIL = MSG_ID_CDCECM_CODE_BEGIN + 20,
+
+    MSG_ID_ESL_COSIM_HIF_CODE_BEGIN,
+    MSG_ID_USBCLASS_USBCORE_ESL_ENTER_CONNECTED_STATE_REQ,
+    MSG_ID_HIF_IPCORE_ESL_ATTACH_DONE_IND,
+    MSG_ID_ESL_COSIM_HIF_CODE_TAIL = MSG_ID_ESL_COSIM_HIF_CODE_BEGIN + 10,
+
+    MSG_ID_UFPM_CODE_BEGIN,
+    MSG_ID_UFPM_EM_DUMP_CTX,
+    MSG_ID_UFPM_CODE_TAIL = MSG_ID_UFPM_CODE_BEGIN + 10,
+
+    MSG_ID_NCCMNI_CODE_BEGIN,
+    MSG_ID_NCCMNI_NETIF_UL_REQ,
+    MSG_ID_NCCMNI_NETIF_DL_REQ,
+    MSG_ID_NCCMNI_DATA_POLL_ALL_HIF_IND,
+    MSG_ID_NCCMNI_CODE_TAIL = MSG_ID_NCCMNI_CODE_BEGIN + 10,
+
+    MSG_ID_D2_NCCMNI_CODE_BEGIN,
+        MSG_ID_D2_NCCMNI_ESTABLISHPDN_REQ,
+        MSG_ID_D2_NCCMNI_ESTABLISHPDN_CNF,
+        MSG_ID_D2_NCCMNI_IFCHANGE_REQ,
+        MSG_ID_D2_NCCMNI_IFCHANGE_CNF,
+        MSG_ID_D2_NCCMNI_DISCONNECTPDN_REQ,
+        MSG_ID_D2_NCCMNI_DISCONNECTPDN_CNF,
+    MSG_ID_D2_NCCMNI_CODE_TAIL = MSG_ID_D2_NCCMNI_CODE_BEGIN + 10,
+
+MODULE_MSG_END( MSG_ID_HIF_MW_CODE_TAIL )
+
+#endif /* __INC_HIF_MW_MSGID_H */
diff --git a/mcu/interface/sap/mw/kpalv_msgid.h b/mcu/interface/sap/mw/kpalv_msgid.h
new file mode 100644
index 0000000..c820e88
--- /dev/null
+++ b/mcu/interface/sap/mw/kpalv_msgid.h
@@ -0,0 +1,70 @@
+/*****************************************************************************
+ *  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) 2012
+ *
+ *  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:
+ * ---------
+ *   kpalv_msgid.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *  Keep alive ILM messages
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ *
+ ****************************************************************************/
+
+#include "module_msg_range.h"
+
+#ifndef _KPALV_MSGID_H
+#define _KPALV_MSGID_H
+
+MODULE_MSG_BEGIN( MSG_ID_KPALV_MSG_CODE_BEGIN )
+/** from ATP->KPALV */
+MSG_ID_ATP_KPALV_KEEPALIVE_REQ = MSG_ID_KPALV_MSG_CODE_BEGIN,
+
+MODULE_MSG_END( MSG_ID_KPALV_MSG_CODE_TAIL )
+#endif  /* _KPALV_MSGID_H */
diff --git a/mcu/interface/sap/mw/ltecsr_msgid.h b/mcu/interface/sap/mw/ltecsr_msgid.h
new file mode 100644
index 0000000..579c17d
--- /dev/null
+++ b/mcu/interface/sap/mw/ltecsr_msgid.h
@@ -0,0 +1,358 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   ltecsr_msgid.h
+ *
+ * Project:
+ * --------
+ *   MOLY
+ *
+ * Description:
+ * ------------
+ *   IMX and LTECSR SAP message 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!
+ * 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!!
+ *============================================================================
+ ****************************************************************************/
+
+/* LTECSR INTERFACE */
+
+#include "module_msg_range.h"
+
+#ifndef _LTECSR_MSG_H
+#define _LTECSR_MSG_H
+
+MODULE_MSG_BEGIN( MSG_ID_LTECSR_CODE_BEGIN )
+
+/* FROM: IMC External */
+
+    MSG_ID_LTECSR_MEDIA_NEW=MSG_ID_LTECSR_CODE_BEGIN,
+    MSG_ID_LTECSR_MEDIA_DEL,
+    MSG_ID_LTECSR_MEDIA_UPDATE,
+    MSG_ID_LTECSR_MEDIA_ACTIVE,
+    
+    MSG_ID_LTECSR_DTMF_REQ, /* IN: cid, (sid), digit, in/out band, time:0-stop, non-zero: play, -1: periodically */
+
+    /* Handover event with ebi */
+    MSG_ID_LTECSR_HANDOVER_BEGIN,
+    MSG_ID_LTECSR_HANDOVER_END,
+
+/* FROM: MOD_L1SP */
+
+    MSG_ID_LTECSR_VOICE_UL_DATA_NOTIFY,
+    MSG_ID_LTECSR_VOICE_DL_DATA_NOTIFY,
+    MSG_ID_LTECSR_VOICE_UL_MUTE_NOTIFY,
+    MSG_ID_LTECSR_VOICE_DL_MUTE_NOTIFY,
+    MSG_ID_LTECSR_AV_SYNC_NOTIFY,
+
+/* LTECSR Internal */
+
+    /* media */
+    MSG_ID_LTECSR_MEDIA_START, /* IN: cid, sid OUT: result */
+    MSG_ID_LTECSR_MEDIA_STOP, /* IN: cid, sid OUT: result */
+
+    /* transmit mode */
+    MSG_ID_LTECSR_MEDIA_XMIT_MODE_SET, /* IN: cid, sid, xmit_mode */
+    MSG_ID_LTECSR_MEDIA_XMIT_MODE_GET, /* IN: cid, sid OUT: xmit_mode */
+
+    /* dtmf */
+    MSG_ID_LTECSR_DTMF_PLAY, /* IN: cid, (sid), digit, direction:0-local, 1-remote, duration:-1(infinite), 0(stop), others(ms) */
+    MSG_ID_LTECSR_DTMF_STOP, /* IN: cid*/
+
+    /* codec payload type */
+    MSG_ID_LTECSR_MEDIA_PT_SET, /* IN: cid, sid, codec, pt */
+    //MSG_ID_LTECSR_MEDIA_PT_GET, /* IN: cid, sid */
+
+    /* rtcp */
+    MSG_ID_LTECSR_RTCP_SEND_INTERVAL_SET, /* IN: cid, sid, rtcp send interval */
+    //MSG_ID_LTECSR_RTCP_SEND_INTERVAL_GET, /* IN: cid, sid OUT: cid, sid */
+
+/* LTECSR EPDG Handover */
+    MSG_ID_LTECSR_EPDG_HO_IND,
+
+    MSG_ID_LTECSR_WFC_SUPPORT_IND,
+
+    MSG_ID_LTECSR_RTP_SAMPLE_TIME_IND,
+    MSG_ID_LTECSR_RTP_SAMPLE_TIME_CNF,
+
+    MSG_ID_LTECSR_IMS_NOTIFY_IND,
+
+    MSG_ID_LTECSR_IMS_NOTIFY_REQ,
+
+/* L1C to LTECSR Latency Test Detection */
+    MSG_ID_LTECSR_L1C_LATENCY_TEST_DETECTION_IND,
+
+/*TC01 MUSESRVCC CIREPH - START*/
+#ifdef __TC01__
+    MSG_ID_LTECSR_SRVCC_HO_START_IND,
+    MSG_ID_LTECSR_SRVCC_HO_FAILURE_IND,
+#endif
+/*TC01 MUSESRVCC CIREPH - END*/
+
+/* IWLAN <---> LTECSR */
+    //MSG_ID_IWLAN_LTECSR_PKTINFO_CFG_REQ,
+    //MSG_ID_IWLAN_LTECSR_PKTINFO_CFG_CNF,
+    //MSG_ID_IWLAN_LTECSR_PKTINFO_RPT_IND,
+    MSG_ID_IWLAN_LTECSR_INFO_CFG_REQ,
+    MSG_ID_IWLAN_LTECSR_INFO_CFG_CNF,
+    MSG_ID_IWLAN_LTECSR_INFO_RPT_IND,
+
+    MSG_ID_IWLAN_LTECSR_INFO_QUERY_REQ,
+    MSG_ID_IWLAN_LTECSR_INFO_QUERY_CNF,
+    MSG_ID_IWLAN_LTECSR_INFO_QUERY_IND,
+
+/* LTECSR Self Profile(NVRAM) dump */
+    MSG_ID_LTECSR_PROFILE_DUMP,    
+
+/* ATP --> LTECSR*/
+    MSG_ID_ATP_LTECSR_ECFG_SET_REQ,
+    MSG_ID_ATP_LTECSR_ECFG_GET_REQ,
+    MSG_ID_ATP_LTECSR_DUMP_RUNTIME_PARA_REQ,
+    MSG_ID_ATP_LTECSR_IMS_AUDIO_SILENCE_IND_REQ,
+
+/* ERRC --> LTECSR */
+    MSG_ID_LTECSR_ERRC_DELAY_BUDGET_RPT_REQ,
+    MSG_ID_LTECSR_ERRC_DELAY_BUDGET_RESULT_IND,
+
+/*ANBR, LTECSR<--->UPCM*/
+    MSG_ID_LTECSR_UPCM_ANBRQ_CONFIG_IND,
+    MSG_ID_LTECSR_UPCM_ANBR_IND,
+    MSG_ID_LTECSR_UPCM_ANBRQ_REQ,
+    MSG_ID_LTECSR_UPCM_IPV4V6_REQ,
+
+/* NRRC --> LTECSR */
+    MSG_ID_NRRC_LTECSR_DELAY_BUDGET_REPORT_REQ,
+    MSG_ID_NRRC_LTECSR_DELAY_BUDGET_RESULT_HANDLE_REQ,
+
+/* LTECSR <-> IPC_ADAPTER */
+/* Response MSGs are in ipc_adapter_msg_id,
+ * maybe they should be put here.
+ * or IPCA can handle the GET request      */
+#if defined(__IPC_ADAPTER__)
+    MSG_ID_LTECSR_TITAN_BEGIN,
+    MSG_ID_LTECSR_TITAN_OPTION_GET = MSG_ID_LTECSR_TITAN_BEGIN, // NOT phase 1
+    MSG_ID_LTECSR_TITAN_OPTION_RSP,                             // NOT phase 1
+    MSG_ID_LTECSR_TITAN_OPTION_SET,
+    MSG_ID_LTECSR_TITAN_OPTION_NOTIFY,
+//  MSG_ID_LTECSR_TITAN_REFRESH_SESSION_GET,
+//  MSG_ID_LTECSR_TITAN_REGISTRATION_GET,
+    MSG_ID_LTECSR_TITAN_FRAME_TIME_GET,
+    MSG_ID_LTECSR_TITAN_FRAME_TIME_RSP,
+    MSG_ID_LTECSR_TITAN_FRAME_TIME_SET,
+    MSG_ID_LTECSR_TITAN_FRAME_TIME_NOTIFY,
+//  MSG_ID_LTECSR_TITAN_CP_STATE_GET,
+    MSG_ID_LTECSR_TITAN_ENGINE_SET,
+    MSG_ID_LTECSR_TITAN_TAIL,
+#endif
+
+MODULE_MSG_END( MSG_ID_LTECSR_CODE_TAIL )
+
+#endif  /* _LTECSR_MSG_H */
+
diff --git a/mcu/interface/sap/mw/med_msgid.h b/mcu/interface/sap/mw/med_msgid.h
new file mode 100644
index 0000000..9ad89c6
--- /dev/null
+++ b/mcu/interface/sap/mw/med_msgid.h
@@ -0,0 +1,181 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ *  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) 2003
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ *   med_msgid.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   Media task HAL related message identity 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+#include "module_msg_range.h"
+
+//kmoly
+#ifndef MED_MSG_H
+#define MED_MSG_H
+
+   /*------------------------MED_HAL_MSG_CODE_BEGIN ---------------*/
+MODULE_MSG_BEGIN( MSG_ID_MED_CODE_BEGIN )
+    MSG_ID_MED_STARTUP_REQ = MSG_ID_MED_CODE_BEGIN,
+    MSG_ID_MED_STARTUP_CNF,
+    MSG_ID_MEDIA_IN_PROC_CALL_REQ,
+    MSG_ID_MEDIA_IN_PROC_CALL_CNF,
+
+    MSG_ID_MEDIA_AUD_SET_AUDIO_MODE_REQ,
+    MSG_ID_MED_AUD_HAL_CODE_BEGIN = MSG_ID_MEDIA_AUD_SET_AUDIO_MODE_REQ,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_MODE_CNF,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_PROFILE_REQ,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_PROFILE_CNF,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_PROFILE_REQ,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_PROFILE_CNF,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_PARAM_REQ,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_PARAM_CNF,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_PARAM_REQ,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_PARAM_CNF,
+
+    MSG_ID_MEDIA_AUD_GET_VOLUME_REQ,
+    MSG_ID_MEDIA_AUD_GET_VOLUME_CNF,
+    MSG_ID_MEDIA_AUD_SET_VOLUME_REQ,
+    MSG_ID_MEDIA_AUD_SET_VOLUME_CNF,
+    MSG_ID_MEDIA_AUD_SET_DEVICE_REQ,
+    MSG_ID_MEDIA_AUD_SET_DEVICE_CNF,
+    MSG_ID_MEDIA_AUD_MUTE_REQ,
+    MSG_ID_MEDIA_AUD_MUTE_CNF,
+
+    MSG_ID_MEDIA_AUD_PLAY_BY_ID_REQ,
+    MSG_ID_MEDIA_AUD_PLAY_BY_ID_CNF,
+    MSG_ID_MEDIA_AUD_STOP_BY_ID_REQ,
+    MSG_ID_MEDIA_AUD_STOP_BY_ID_CNF,
+    MSG_ID_MEDIA_AUD_PLAY_BY_STRING_REQ,
+    MSG_ID_MEDIA_AUD_PLAY_BY_STRING_CNF,
+    MSG_ID_MEDIA_AUD_STOP_BY_STRING_REQ,
+    MSG_ID_MEDIA_AUD_STOP_BY_STRING_CNF,
+    MSG_ID_MEDIA_AUD_PLAY_BY_FILE_REQ,
+    MSG_ID_MEDIA_AUD_PLAY_BY_FILE_CNF,
+    MSG_ID_MEDIA_AUD_STOP_REQ,
+    MSG_ID_MEDIA_AUD_STOP_CNF,
+    MSG_ID_MEDIA_AUD_PLAY_FINISH_IND,
+
+    MSG_ID_MEDIA_AUD_EMSD_MONITOR_REQ,
+    MSG_ID_MEDIA_AUD_EMSD_CODE_BEGIN = MSG_ID_MEDIA_AUD_EMSD_MONITOR_REQ,
+    MSG_ID_MEDIA_AUD_EMSD_MONITOR_CNF,
+    MSG_ID_MEDIA_AUD_EMSD_SET_REQ,
+    MSG_ID_MEDIA_AUD_EMSD_SET_CNF,
+    MSG_ID_MEDIA_AUD_EMSD_PUSH_REQ,
+    MSG_ID_MEDIA_AUD_EMSD_PUSH_CNF,
+    MSG_ID_MEDIA_AUD_EMSD_PULL_IND,
+    MSG_ID_MEDIA_AUD_EMSD_HACK_IND,
+    MSG_ID_MEDIA_AUD_EMSD_LACK_IND,
+    MSG_ID_MEDIA_AUD_EMSD_SYNC_IND,
+    MSG_ID_MEDIA_AUD_EMSD_PSAP_MONITOR_REQ,
+    MSG_ID_MEDIA_AUD_EMSD_PSAP_MONITOR_CNF,
+    MSG_ID_MEDIA_AUD_EMSD_PSAP_PULL_REQ,
+    MSG_ID_MEDIA_AUD_EMSD_PSAP_PULL_CNF,
+    MSG_ID_MEDIA_AUD_EMSD_PSAP_DATA_IND,
+    MSG_ID_MEDIA_AUD_EMSD_CODE_END = MSG_ID_MEDIA_AUD_EMSD_PSAP_DATA_IND,
+
+    MSG_ID_MEDIA_AUD_SP_SET_MODE_REQ,
+    MSG_ID_MEDIA_AUD_SP_SET_MODE_CNF,
+    MSG_ID_MEDIA_AUD_SP_SET_FIR_COEFF_REQ,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_WB_INPUT_FIR_PARAM_REQ,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_WB_INPUT_FIR_PARAM_CNF,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_WB_OUTPUT_FIR_PARAM_REQ,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_WB_OUTPUT_FIR_PARAM_CNF,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_WB_MODE_PARAM_REQ,
+    MSG_ID_MEDIA_AUD_GET_AUDIO_WB_MODE_PARAM_CNF,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_WB_INPUT_FIR_PARAM_REQ,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_WB_INPUT_FIR_PARAM_CNF,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_WB_OUTPUT_FIR_PARAM_REQ,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_WB_OUTPUT_FIR_PARAM_CNF,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_WB_MODE_PARAM_REQ,
+    MSG_ID_MEDIA_AUD_SET_AUDIO_WB_MODE_PARAM_CNF,
+    MSG_ID_MEDIA_AUD_SP_SET_ENHANCE_MODE_REQ,
+
+    MSG_ID_MED_CODE_END = MSG_ID_MEDIA_AUD_SP_SET_ENHANCE_MODE_REQ,
+
+MODULE_MSG_END( MSG_ID_MED_CODE_TAIL )
+/*------------------------MED_HAL_MSG_CODE_END -----------------*/
+#endif  //MED_MSG_H
diff --git a/mcu/interface/sap/mw/ndis_msgid.h b/mcu/interface/sap/mw/ndis_msgid.h
new file mode 100644
index 0000000..6508564
--- /dev/null
+++ b/mcu/interface/sap/mw/ndis_msgid.h
@@ -0,0 +1,101 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   ndis_sap.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!
+ *
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#include "module_msg_range.h"
+
+#ifndef NDIS_MSG_H
+#define NDIS_MSG_H
+
+MODULE_MSG_BEGIN( MSG_ID_NDIS_MSG_CODE_BEGIN )
+/* RATDM INTERFACE */
+
+MSG_ID_NDIS_RATDM_DATA_ACTIVATE_IND=MSG_ID_NDIS_MSG_CODE_BEGIN,
+MSG_ID_NDIS_RATDM_DATA_ACTIVATE_RSP,
+MSG_ID_NDIS_RATDM_DATA_DEACTIVATE_IND,
+MSG_ID_NDIS_RATDM_DATA_DEACTIVATE_RSP,
+/* NDIS_RATDM_SAP */
+MODULE_MSG_END( MSG_ID_NDIS_MSG_CODE_TAIL )
+
+#endif //NDIS_MSG_H
diff --git a/mcu/interface/sap/mw/pfm_msgid_source.h b/mcu/interface/sap/mw/pfm_msgid_source.h
new file mode 100644
index 0000000..468ecbb
--- /dev/null
+++ b/mcu/interface/sap/mw/pfm_msgid_source.h
@@ -0,0 +1,10 @@
+MSG_ID_PFM_REGISTER_FILTER_REQ,
+MSG_ID_PFM_DEREGISTER_FILTER_REQ,
+MSG_ID_AP_STATUS_IND,
+MSG_ID_PFM_PCIE_STATE_CHANGE_IND,
+MSG_ID_PFM_ICMP_PING_REG_FILTER_REQ,
+MSG_ID_PFM_ICMP_PING_DEREG_FILTER_REQ,
+MSG_ID_PFM_UL_DISABLE_ALL_PACKETS_REG_FILTER_REQ,
+MSG_ID_PFM_UL_DISABLE_ALL_PACKETS_DEREG_FILTER_REQ,
+MSG_ID_PFM_UL_ICMP_PING_WHITELIST_REG_FILTER_REQ,
+MSG_ID_PFM_UL_ICMP_PING_WHITELIST_DEREG_FILTER_REQ,
diff --git a/mcu/interface/sap/mw/ps_public_ups_msgid.h b/mcu/interface/sap/mw/ps_public_ups_msgid.h
new file mode 100644
index 0000000..939b884
--- /dev/null
+++ b/mcu/interface/sap/mw/ps_public_ups_msgid.h
@@ -0,0 +1,108 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *  ps_public_ups_sap.h
+ *
+ * Project:
+ * --------
+ *  MAUI
+ *
+ * Description:
+ * ------------
+ *  This file is the common public SAP of module UPS. 
+ *
+ * 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!
+ *
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#include "module_msg_range.h"
+
+#ifndef _PS_PUB_UPS_MSG_H
+#define _PS_PUB_UPS_MSG_H
+
+/* ABM INTERFACE */
+
+MODULE_MSG_BEGIN( MSG_ID_UPS_PUBLIC_CODE_BEGIN )
+MSG_ID_ABM_RNDIS_ACTIVATE_REQ=MSG_ID_UPS_PUBLIC_CODE_BEGIN,
+MSG_ID_ABM_RNDIS_ACTIVATE_CNF,
+MSG_ID_ABM_RNDIS_DEACTIVATE_REQ,
+MSG_ID_ABM_RNDIS_DEACTIVATE_CNF,
+MSG_ID_ABM_RNDIS_DEACTIVATE_IND,
+/* RNDIS_ABM_SAP */
+
+/* TCPIP INTERFACE */
+MSG_ID_RNDIS_DATA_REQ,
+MSG_ID_RNDIS_DATA_IND,
+MSG_ID_RNDIS_STATISTICS_IND,
+/* RNDIS_TCPIP_SAP */
+MODULE_MSG_END( MSG_ID_UPS_PUBLIC_CODE_TAIL )
+
+#endif  //_PS_PUB_UPS_MSG_H
diff --git a/mcu/interface/sap/mw/ufpm_msgid_source.h b/mcu/interface/sap/mw/ufpm_msgid_source.h
new file mode 100644
index 0000000..63b5ec1
--- /dev/null
+++ b/mcu/interface/sap/mw/ufpm_msgid_source.h
@@ -0,0 +1,82 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   hif_mw_msgid.h
+ *
+ * Project:
+ * --------
+ *   TATAKA
+ *
+ * Description:
+ * ------------
+ *   UFPM message identity definition
+ *
+ * Author:
+ * -------
+ *
+ *==============================================================================
+ *                 HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
+ *------------------------------------------------------------------------------
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef __INC_UFPM_MSGID_H
+#define __INC_UFPM_MSGID_H
+
+MSG_ID_UFPM_NOTIFY_MD_BUS_EVENT_REQ,
+MSG_ID_UFPM_NOTIFY_MD_BUS_EVENT_RSP,
+
+MSG_ID_UFPM_SEND_MD_USB_EP0_REQ,
+MSG_ID_UFPM_SEND_MD_USB_EP0_RSP,
+MSG_ID_UFPM_SEND_MD_USB_EP0_IND,
+MSG_ID_UFPM_SEND_AP_USB_EP0_IND,
+
+MSG_ID_UFPM_ENABLE_MD_FAST_PATH_REQ,
+MSG_ID_UFPM_ENABLE_MD_FAST_PATH_RSP,
+MSG_ID_UFPM_DISABLE_MD_FAST_PATH_REQ,
+MSG_ID_UFPM_DISABLE_MD_FAST_PATH_RSP,
+MSG_ID_UFPM_DEACTIVATE_MD_FAST_PATH_REQ,
+MSG_ID_UFPM_DEACTIVATE_MD_FAST_PATH_RSP,
+MSG_ID_UFPM_DEACTIVATE_MD_FAST_PATH_IND,
+MSG_ID_UFPM_ACTIVATE_MD_FAST_PATH_REQ,
+MSG_ID_UFPM_ACTIVATE_MD_FAST_PATH_RSP,
+
+#endif /* __INC_UFPM_MSGID_H */
diff --git a/mcu/interface/sap/mw/ups_msgid.h b/mcu/interface/sap/mw/ups_msgid.h
new file mode 100644
index 0000000..14e6443
--- /dev/null
+++ b/mcu/interface/sap/mw/ups_msgid.h
@@ -0,0 +1,142 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   ups_sap.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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/* UPS INTERFACE */
+#include "module_msg_range.h"
+
+#ifndef _UPS_MSG_H
+#define _UPS_MSG_H
+
+MODULE_MSG_BEGIN( MSG_ID_UPS_MSG_CODE_BEGIN )
+MSG_ID_UPS_BATCH_STATE_IND=MSG_ID_UPS_MSG_CODE_BEGIN,
+
+/* UPS UT INTERFACE */
+MSG_ID_UPS_UT_UART_DATA_IND,
+MSG_ID_UPS_UT_UART_DATA_REQ,
+
+/* FLC2 INTERFACE */
+MSG_ID_UPS_FLC_DATA_RESUME_IND,
+MSG_ID_UPS_FLC_DATA_SUSPEND_IND,
+/* STACK_TIMER_SAP */
+
+/* UPS PORT ACTIVATION INTERFACE */
+MSG_ID_L4CUPS_PORT_ACTIVATE_REQ,
+MSG_ID_L4CUPS_PORT_ACTIVATE_CNF,
+MSG_ID_L4CUPS_PORT_DEACTIVATE_IND,
+
+/* MBIM INTERFACE */
+MSG_ID_MBIM_CLOSE_REQ,
+MSG_ID_MBIM_CLOSE_CNF,
+MSG_ID_MBIM_CONNECT_IND,
+MSG_ID_MBIM_DISCONNECT_IND,
+
+/* UPS_SAP */
+MODULE_MSG_END( MSG_ID_UPS_MSG_CODE_TAIL )
+
+#endif  //_UPS_MSG_H
diff --git a/mcu/interface/sap/mw/wtunnel_msgid.h b/mcu/interface/sap/mw/wtunnel_msgid.h
new file mode 100644
index 0000000..8e7b542
--- /dev/null
+++ b/mcu/interface/sap/mw/wtunnel_msgid.h
@@ -0,0 +1,19 @@
+#ifndef _WTUNNEL_MSG_ID_H
+#define _WTUNNEL_MSG_ID_H
+
+#include "module_msg_range.h"
+
+MODULE_MSG_BEGIN( MSG_ID_WTUNNEL_CODE_BEGIN )
+
+    MSG_ID_N3SAM_WT_WIFI_FILTER_ADD_REQ,        // no rsp
+    MSG_ID_N3SAM_WT_WIFI_FILTER_DELETE_REQ,     // no rsp
+    MSG_ID_N3SAM_WT_SA_ADD_REQ,
+    MSG_ID_N3SAM_WT_SA_MODIFY_REQ,
+    MSG_ID_N3SAM_WT_SA_DELETE_REQ,
+    MSG_ID_N3SAM_WT_SA_ADD_CNF,
+    MSG_ID_N3SAM_WT_SA_MODIFY_CNF,
+    MSG_ID_N3SAM_WT_SA_DELETE_CNF,
+
+MODULE_MSG_END( MSG_ID_WTUNNEL_CODE_TAIL )
+
+#endif  //_WTUNNEL_MSG_ID_H
